首先,你必須創建.ts
文件與翻譯的字符串。例如,如果我想創建翻譯爲俄語語言環境,我做的:
lupdate main.qml -ts your_project_ru_RU.ts
如果你有幾個QML文件,您可以在.pro
文件中指定:
lupdate_only {
SOURCES = main.qml \
foo.qml
}
和這麼寫:
lupdate your_project.pro -ts您_project_ru_RU.ts
該命令將爲俄語語言環境創建非翻譯文件,您必須使用QT語言學家翻譯來打開該翻譯文件。
可以在.pro文件中指定.ts
文件:
TRANSLATIONS += your_project_ru_RU.ts
所有你所編譯的文件(文件/在Qt語言編譯)之後。這將創建your_project_ru_RU.qm
。
最後,你必須在main.cpp
加載.qm
文件,例如:
QTranslator translator;
translator.load("your_project_" + QLocale::system().name());
app.installTranslator(&translator);
更新:
如果你需要Qt的國際化引擎的一些外表,但不提供qm
文件:
foo.qml
import QtQuick 2.4
import QtQuick.Window 2.2
import "i18n.js" as I18n
Window {
Text {
text: I18n.myTr("text-id");
anchors.centerIn: parent
}
}
i18n.js
var texts = {
"text-id": "Hello, World!",
"another-text-id": "Goodbye, World!"
}
function myTr(textid) {
return texts[textid] ? texts[textid] : "";
}
你加載生成的翻譯文件? – peppe
@peppe我認爲我們不會爲開發構建翻譯文件。我錯了嗎? – ramtheconqueror