728x90
반응형
# QT Version : 5.12
# QT Creatpr Version : 4.11
# Project name : project01
1. 빈 프로젝트 생성
간단하게 빈 프로젝트를 만들고 중간에 글자를 넣어 준다.
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Text {
id: txt01
x : 300
y : 200
font.pixelSize: 40
text: qsTr("Text")
}
}
2. .ts 파일 생성
먼저 .pro 파일에 .ts 파일을 정의한다.
TRANSLATIONS += '파일이름' 형식으로 추가하는데, 보통 뒤에 국가 코드를 넣는다.
QT += quick
CONFIG += c++14
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
RESOURCES += qml.qrc
# ts file 추가
TRANSLATIONS += lang_kr.ts \
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
그런 다음
Tools - External - Linguist - Update Translations (lupdate) 순으로 실행한다.
그럼 프로젝트 폴더에 ts 파일이 생성된다.
3. 번역 적용
Linguist 를 실행하고, 생성한 lang_kr.ts 파일을 열어준다.
파일을 열면 국가를 선택하는게 뜬다. 한국어로 설정!
그럼 코드에서 번역을 적용할 수 있는 항목들이 나타난다.
Text를 '테스트'로 적용
적은 후 체크를 눌러준다.
텍스트 앞에 체크가 붙으면 저장한 뒤, 파일 - 배포 순으로 진행한다.
그럼 프로젝트에 qm 파일이 생성된다.
.pro에 qm 파일을 추가한다.
QT += quick
CONFIG += c++14
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
RESOURCES += qml.qrc
# ts file 추가
TRANSLATIONS += lang_kr.ts \
# qm file 추가
OTHER_FILES += lang_kr.qm
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
4. 소스 적용
main 함수에서 로드
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QTranslator>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QTranslator* translator = new QTranslator();
translator->load("D:\\Qt\\QTranslation\\lang_kr.qm");
app.installTranslator(translator);
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
성공~!!
728x90
반응형
'Programming > QT&QML' 카테고리의 다른 글
[QT, QML] Signals Slots 사용하기 (0) | 2020.04.12 |
---|---|
[QT, QML] QML Component anchor (0) | 2020.04.06 |
[QT, QML] QML Component load 순서 (0) | 2020.03.31 |
[QT, QML] button, loader 사용 (0) | 2020.03.29 |
[QT, QML] Empty Project (0) | 2020.03.27 |