Generating translation files (TS and QM) for a Qt Quick application.
When you run the example application, the QML runtime automatically loads a translation from the
i18n
subdirectory of the directory that contains the main .qml file, based on the system language.
在
qml-i18n.qml
file, use the
qsTr
command to mark UI text as translatable:
Text { text: qsTr("Hello")
在
main.cpp
file, use
QQmlApplicationEngine
to automatically load translation files from a subdirectory called
i18n
in the directory that contains the main QML file:
#include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine;
The translation file names in the
i18n
subdirectory must have the prefix
qml_
。例如,
qml_en_AU.ts
.
添加
LinguistTools
module as a value of the
find_package
command in the
CMakeLists.txt
文件:
find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml LinguistTools)
Define the translation files to generate in the qt_add_translations 命令:
qt_add_translations(qmli18n RESOURCE_PREFIX /qt/qml/translated/i18n TS_FILE_BASE qml TS_FILE_DIR i18n )
Build the application to generate TS and QM files.
注意: On Android, make sure to include the QM files as resources.
To create translations for new languages, copy i18n/base.ts to i18n/qml_<lang>.ts 。可以使用 Qt Linguist to translate the strings.