查看完整版本: [-- zhengtianzuo系列-Qml动态语言切换 --]

QTCN开发网 -> Qt代码秀 -> zhengtianzuo系列-Qml动态语言切换 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

zhengtianzuo 2017-11-16 14:10

zhengtianzuo系列-Qml动态语言切换

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



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




需要完整代码请访问 QtQuickExamples

zzzzzzhuzhu 2017-11-16 16:43
哥哥 5.10怎么下载呢。。

zhengtianzuo 2017-11-16 21:34
zzzzzzhuzhu:哥哥 5.10怎么下载呢。。 (2017-11-16 16:43) 

http://download.qt.io/development_releases/qt/5.10/5.10.0-beta4/single/qt-everywhere-src-5.10.0-beta4.zip

zzzzzzhuzhu 2017-11-17 14:34
zhengtianzuo:http://download.qt.io/development_releases/qt/5.10/5.10.0-beta4/single/qt-everywhere-src-5.10.0-beta4.zip (2017-11-16 21:34) 

谢谢

zzzzzzhuzhu 2017-11-17 15:11
有没有旋转菜单的qml例子呢,动画很好看的那种,像3d的那种

zhengtianzuo 2017-11-17 16:09
zzzzzzhuzhu:有没有旋转菜单的qml例子呢,动画很好看的那种,像3d的那种 (2017-11-17 15:11) 

有样例吗? 我可以考虑做一个例子出来~

九重水 2017-11-17 16:39
每次都是一个小功能啊。
可不可以,做一个列表,放在一楼,指明小功能的作用,以及链接;
其它楼放这些小功能,方便大家查找。

例如:
一、动态语言切换,传送门:http://www.qtcn.org/bbs/read-htm-tid-65237.html
二、XXXXXXXXXX,传送门:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
三、……

或者弄个大的程序,

zhengtianzuo 2017-11-17 16:49
九重水:[表情] 每次都是一个小功能啊。
可不可以,做一个列表,放在一楼,指明小功能的作用,以及链接;
其它楼放这些小功能,方便大家查找。
例如:
....... (2017-11-17 16:39) 

好主意~~ Github上readme我就写了列表的啊

zzzzzzhuzhu 2017-11-20 12:59
能不能弄一个3D的汽车仪表盘呢,,,很炫的那种,,

zzzzzzhuzhu 2017-11-20 13:03
zhengtianzuo:有样例吗? 我可以考虑做一个例子出来~ (2017-11-17 16:09) 

能不能留个qq啊,我发给你

zhengtianzuo 2017-11-20 13:34
zzzzzzhuzhu:能不能留个qq啊,我发给你 (2017-11-20 13:03) 

直接发样例图吧 我看看能不能做

big_mouse 2020-04-23 09:23


查看完整版本: [-- zhengtianzuo系列-Qml动态语言切换 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled