Qt Quick I18N#

../_images/qml-i18n-example.png

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.

Marking Text as Translatable#

In the qml-i18n.qml file, use the qsTr command to mark UI text as translatable:

Enabling Translation#

In the main.cpp file, use QQmlApplicationEngine to automatically load translation files from a subdirectory called i18n in the directory that contains the main QML file:

The translation file names in the i18n subdirectory must have the prefix qml_. For example, qml_en_AU.ts.

Creating Translation Files#

Add the LinguistTools module as a value of the find_package command in the CMakeLists.txt file:

Define the translation files to generate in the qt_add_translations command:

Build the application to generate TS and QM files.

Note

On Android, make sure to include the QM files as resources.

Adding Translations#

To create translations for new languages, copy i18n/base.ts to i18n/qml_<lang>.ts. You can use Qt Linguist to translate the strings.

Example project @ code.qt.io