Qml動態語言切換
阿新 • • 發佈:2019-02-12
此方法需要在Qt5.10或更高版本實現, 在Qt5.10或更高版本實現, 在Qt5.10或更高版本實現
重要的事情說三遍
首先在工程檔案.pro中加入TRANSLATIONS = zh_CN.ts en_US.ts
兩個翻譯檔案, 支援中英文兩種語言切換
在工程目錄下 cmd 執行
lupdate main.qml -ts zh_CN.ts
lupdate main.qml -ts en_US.ts
執行完後在程式碼目錄裡就可以看到生成了 zh_CN.ts, en_US.ts 兩個翻譯檔案
接下來用Qt的Linguist分別開啟和編輯ts檔案
然後點選各個源文中的項, 並在下面的譯文中填寫與語言對應的文字就行了.
全部填寫完成, 再執行選單 檔案->釋出就會生成對應的.qm檔案. 這個檔案就是我們程式在實際執行中需要載入的翻譯檔案了.
程式碼中的載入過程:
void QmlLanguage::setLanguage(int nLanguage)
{
QTranslator translator;
if (nLanguage == 0)
{
translator.load(":/en_US.qm");
}else{
translator.load(":/zh_CN.qm");
}
m_app->installTranslator(&translator);
m_engine->retranslate();
}
重點的是這句 m_engine->retranslate(); Qt5.10的新方法, 使Qml介面全部動態重新翻譯