此方法须要在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现
重要的事情说三遍git
首先在工程文件.pro中加入TRANSLATIONS = zh_CN.ts en_US.ts
两个翻译文件, 支持中英文两种语言切换github
在工程目录下 cmd 执行web
lupdate main.qml -ts zh_CN.ts
lupdate main.qml -ts en_US.ts
执行完后在代码目录里就能够看到生成了 zh_CN.ts, en_US.ts 两个翻译文件
接下来用Qt的Linguist分别打开和编辑ts文件app
而后点击各个源文中的项, 并在下面的译文中填写与语言对应的文字就好了.
所有填写完成, 再运行菜单 文件->发布就会生成对应的.qm文件. 这个文件就是咱们程序在实际运行中须要加载的翻译文件了.svg
代码中的加载过程:ui
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界面所有动态从新翻译.net
须要完整代码请访问QtQuickExamples翻译
做者 | 郑天佐 |
---|---|
278969898 | |
主页 | http://www.camelstudio.cn/ |
邮箱 | camelsoft@163.com |
博客 | http://blog.csdn.net/zhengtianzuo06/ |
github | https://github.com/zhengtianzuo |
QQ群 | 199672080 |