Qml动态语言切换

作者: zhengtianzuo | 来源:发表于2018-11-29 20:37 被阅读0次

此方法需要在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文件

image.png

然后点击各个源文中的项, 并在下面的译文中填写与语言对应的文字就行了.
全部填写完成, 再运行菜单 文件->发布就会生成对应的.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界面全部动态重新翻译

show.gif

需要完整代码请访问QtQuickExamples

相关文章

  • Qml动态语言切换

    此方法需要在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现重要的事情说...

  • QML Loader 使用注意事项

    QML 的 Loader 元素经常被用来动态加载 QML 组件。可以使用 source 属性或者 sourceCo...

  • QML Book 第十三章 动态 QML

    13.动态 QML(Dynamic QML) 本章的作者:e8johan ** 注意: **最新的构建时间:201...

  • QtQuick/Qml自定义控件(9)-Quick组件管理

    Qml开发中经常需要使用大量的动态创建的对象, 并且需要进行管理. qml可以通过Qt.createCompone...

  • ASP.NET MVC5多语言简单实现方案

    功能 实现动态切换语言,Demo做了三种语言库可以切换,包括资源文件的定义,实体对象属性设置,后台代码Contro...

  • app内动态切换语言

    设置context的语言 重置语言相关静态属性 http header:"Accept-Language"其他属性...

  • 初识QML

    简述 前言: QML(Qt Modelling Language)是一种描述性的脚本语言,文件格式以.qml结尾。...

  • Antd-vue 表单动态修改错误提示语

    Antd-vue Form表单在表单出现错误提示语后,动态切换多语言导致提示语不能动态更新为相应的语言! Form...

  • iOS国际化支持

    iOS国际化支持 一、背景 最近一个项目中需要使用到不同国家语言的切换,包括UI控件的语言切换,最好是能够实现动态...

  • Qml调用插件

    创建一个带Qml窗体的动态库, 接口文件如下: 通过调用接口来加载和显示qml文件 调用方加载和调用插件中的接口函...

网友评论

    本文标题:Qml动态语言切换

    本文链接:https://www.haomeiwen.com/subject/mjlqcqtx.html