Qml动态语言切换

此方法须要在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翻译

联系方式:


做者 郑天佐
QQ 278969898
主页 http://www.camelstudio.cn/
邮箱 camelsoft@163.com
博客 http://blog.csdn.net/zhengtianzuo06/
github https://github.com/zhengtianzuo
QQ群 199672080

捐赠

以为分享的内容还不错, 就请做者喝杯咖啡吧~~