QT 로 어플리케이션을 제작할 때 글로벌 타켓이 될 경우, UI에 표시되는 언어를 다국어가 표시 될 수 있도록
지원해야 될 경우가 발생합니다.
이를 위해서 QT 에서는 liguist 라는 패키지를 제공합니다.
1. 프로젝트 파일(*.pro) 에 TRANSLATIONS 키워드로 언어리소스 파일을 아래와 같이 추가 합니다.
TRANSLATIONS = lang/en_us.ts \
lang/kr.ts
영어 와 한국어 2개의 파일을 생성할 예정이니 2개를 선언 합니다.
2. 해당 프로젝트 파일이 있는 위치의 lang 디렉토리를 생성합니다. (만일 lang 디렉토리가 없다면 ts 파일 생성이 되지 않습니다)
3. 프로젝트 를 연 상태에서 QT Creator 메뉴에서 Tools >> External >> linguist >> Update Translations(lupdate) 메뉴를 선택합니다.
이 단계가 위에서 선언한 en_us.ts 파일과 kr.ts 파일을 생성하는 단계 입니다.
4. linguist 툴을 이용하여 en_us.ts 파일을 열고 원하는 내용으로 번역 작업을 수행합니다.
linguist 실행 파일은 자신의 QT 설치된 디렉토리의 bin 에 위치합니다.
/tools/Qt5.14.2/5.14.2/gcc_64/bin/linguist ./en_us.ts
파일이 열리면 아래와 같이 묻는 창이 나옵니다. en_us 파일은 영어로 작업할 것이기 때문에 아래와 같이 수정해 줍니다.
생성한 UI 에 컨트롤들이 자동으로 인식되어 원본 텍스트로 인식되는 것을 확인할 수 있습니다.
위 이미지와 같이 Translation to Amerian English 에 번역 내용을 추가 하면 됩니다.
사실 저같은 경우 기본 원본 텍스트를 영어로 작업하였기 때문에 이 작업이 안되어 있을 경우 원본 텍스트가 보여지게 됩니다.
번역 작업이 완료 되면 linguist 메뉴 >> 배포 를 선택합니다.
ts 파일이 있던 위치에 아래와 같이 qm 파일이 생성이 됩니다.
5. 코드 추가 및 실행 확인 방법
main 함수에서 아래와 같이 사용할 qm 파일을 로딩한다.
QTranslator* translator = new QTranslator();
translator->load("kr.qm");
QApplication::installTranslator(translator);
<주의사항>
생성된 qm 파일은 별도로 어플리케이션과 같은 디렉토리에 복사를 해야 합니다.
'Development > QT' 카테고리의 다른 글
[QT] UI 에서 한글 깨짐 문제 (0) | 2024.02.26 |
---|---|
[QT] 실행 시간 측정 방법 (성능 확인) (0) | 2022.07.15 |
QT QWidget Mouse Event 처리 하기 (0) | 2022.02.18 |
qt_static_metacall(QObject*, ... ERROR (0) | 2021.11.17 |
QT Int to String 방법 (0) | 2021.07.02 |
댓글