QML 国际化

Strings in QML can be marked for translation using the qsTr(), qsTranslate(), QT_TR_NOOP (),和 QT_TRANSLATE_NOOP () 函数。

例如:

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 查看器 using the -translation option.

范例

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 .