此方法需要在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界面全部动态重新翻译

需要完整代码请访问QtQuickExamples
网友评论