Qt 5.10 多语言动态翻译

Qt5.10 多语言动态翻译

Qt 多语言动态翻译功能,在5.10之前切换语言,要么重启应用程序,要么所有的文本重新set一遍。
5.10终于可以不重启、不手动set 了。
效果如下:

Qt 5.10 多语言动态翻译_第1张图片

翻译步骤整理

  1. qml 中使用qsTr 标记要翻译的文本

  2. 在pro中添加翻译文件ts,例如:

    TRANSLATIONS += I18n_zh.ts \
    I18n_en.ts

  3. 使用lupdate (通过命令行,或者qtcreator->Tools->External->Linguist->lupdate),会在源码路径下生成ts文件

  4. 使用linguist (Qt5.10.0/5.10.0/gcc_64/bin/linguist)导入ts文件,进行翻译

  5. 使用lrelease,(通过命令行,qtcreator 或者 linguist),生成qm文件。

    ts文件是xml格式的文本,qm文件是对其压缩过的二进制格式。两者都可以使用linguist导入

  6. qm文件放入运行路径,或者加入qrc资源

  7. 使用QTranslator加载qm文件并安装到QCoreApplication

  8. 在需要切换语言的地方,切换Translator,并触发QQmlEngine::retranslate

QCoreApplication::removeTranslator

QCoreApplication::installTranslator
参考代码链接:
https://github.com/wentaojia2014/I18n

你可能感兴趣的:(Qt)