Programming/qt

qt5 다국어 지원 테스트

구차니 2026. 4. 28. 11:38

+

2026.05.12

프로젝트 파일에 원하는 국가 코드를 추가하고

TRANSLATIONS += \
    uitest_ko_KR.ts \
    uitest_en_US.ts \
    uitest_el_GR.ts \
    uitest_fr_FR.ts \
    uitest_es_ES.ts \
    uitest_pt_PT.ts \
    uitest_sk_SK.ts \
    uitest_ru_RU.ts

CONFIG += lrelease
CONFIG += embed_translations

 

이거.. 넣었던가.. 자동으로 다국어 지원한다고 하면 들어갔던가 기억이 안나네..

#include <QTranslator>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTranslator translator;
    const QStringList uiLanguages = QLocale::system().uiLanguages();
    for (const QString &locale : uiLanguages) {
        const QString baseName = "prjname_" + QLocale(locale).name();
        if (translator.load(":/i18n/" + baseName)) {
            a.installTranslator(&translator);
            break;
        }
    }
    MainWindow w;

    w.show();
    return a.exec();
}

 

qt creator 에서

tools - external - linguist - update translation 하면 ts 확장자를 가진 파일들이 생성된다.

 

+

2026.05.12

그리고 나서 프로젝트에서 파일을 수동으로 추가해야한다. (신규언어 추가시)

 

그리고 그걸 linguist 에서 복수의 파일을 ctrl 누르고 열면 다음과 같이 나오는데

하나의 메시지(원본 텍스트)에 대해서 American(en_US 파일), 한국어(ko_KR 파일) 에 대해서 번역을 진행하고

 

linguist - 파일 - 모두 배포를 눌러주면 확장자가 qm인 파일이 배포되고

 

빌드를 한 후,

아래와 같이 하면 언어 "영어"로 선택되서 실행된다.

LANG=en_US ./prjname
LC_ALL=en_US ./prjname