MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

QML Internationalization

Strings in QML can be marked for translation using the qsTr(), qsTranslate(), QT_TR_NOOP(), and QT_TRANSLATE_NOOP() functions.

For example:

 Text { text: qsTr("Pictures") }

These functions are standard QtScript functions; for more details see QScriptEngine::installTranslatorFunctions().

QML relies on the core internationalization capabilities provided by Qt. These capabilities are described more fully in:

You can test a translation with the QML Viewer using the -translation option.

Example

First we create a simple QML file with text to be translated. The string that needs to be translated is enclosed in a call to qsTr().

hello.qml:

 import QtQuick 1.0

 Rectangle {
     width: 200; height: 200
     Text { text: qsTr("Hello"); anchors.centerIn: parent }
 }

Next we create a translation source file using lupdate:

 lupdate hello.qml -ts hello.ts

Then we open hello.ts in Linguist, provide a translation and create the release file hello.qm.

Finally, we can test the translation:

 qmlviewer -translation hello.qm hello.qml

You can see a complete example and source code in the QML Internationalization example.