Qt 5.10 多语言动态翻译
Qt5.10 多语言动态翻译
Qt 多语言动态翻译功能,在5.10之前切换语言,要么重启应用程序,要么所有的文本重新set一遍。
5.10终于可以不重启、不手动set 了。
效果如下:
翻译步骤整理
qml 中使用qsTr 标记要翻译的文本
-
在pro中添加翻译文件ts,例如:
TRANSLATIONS += I18n_zh.ts \
I18n_en.ts 使用lupdate (通过命令行,或者qtcreator->Tools->External->Linguist->lupdate),会在源码路径下生成ts文件
使用linguist (Qt5.10.0/5.10.0/gcc_64/bin/linguist)导入ts文件,进行翻译
-
使用lrelease,(通过命令行,qtcreator 或者 linguist),生成qm文件。
ts文件是xml格式的文本,qm文件是对其压缩过的二进制格式。两者都可以使用linguist导入
qm文件放入运行路径,或者加入qrc资源
使用QTranslator加载qm文件并安装到QCoreApplication
在需要切换语言的地方,切换Translator,并触发QQmlEngine::retranslate
QCoreApplication::removeTranslator
QCoreApplication::installTranslator
参考代码链接:
https://github.com/wentaojia2014/I18n