Qt多语言开发--Qt语言专家
Qt强的的功能之一就是支持多语言切换,本文主要介绍如何去支持多语言开发。
Qt多语言开发主要流程如下:
1、Qt tr()和qsTr()标记待翻译字符串
2、Pro文件中,添加生成ts的代码
3、Qt语言专家更新ts文件
4、Qt语言专家打开ts文件,填写对应的翻译
5、Qt语言专家将翻译后的ts文件生成qm文件
6、QTranslator加载qm语言文件
7、qApp->installTranslator() 安装语言文件
1、标记待翻译内容
Qt代码包括c++代码和qml代码,不同风格的代码标记字符串的函数不同。C++代码中,使用tr()函数标记字符串;QML代码中,使用qsTr()函数。具体使用方法如下:
C++代码:
int ShowConnectState()
{ui->label->setText(tr("Wired device is disconnected"));return 0;
}
或者
int ShowConnectState()
{QString showInfo = tr("Wired device is disconnected");ui->label->setText(showInfo);return 0;
}
qml代码:
Text {id: stringInfotext: isChinese ? qsTr("Chinese") : qsTr("English")color: "black"anchors.fill: parenthorizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenterfont.bold: truefont.pixelSize: 30
}
2、在pro文件中添加命令
TRANSLATIONS = language_zh_EN.ts \language_zh_CN.ts
在pro文件最后面添加上面两行命令,重新编译运行,会自动生成上面的两个ts文件。其中EN代表英文,CN代表中文。如果有其他国家,建议新增其他国家的ts文件。
3、Qt语言专家更新ts文件
点击更新翻译后,会自动将代码中的标识字符串更新到ts文件中。当代码中字符串有修改或者添加时,记得先运行更新翻译。
4、Qt语言专家打开ts文件并填写翻译
Qt语言专家是Qt自带的一种软件工具,在安装QtCreator时就默认已经安装了,下面从windows和linux两个平台教大家运行语言专家:
4.1 linux平台:
打开命令行,输入lin然后tab键自动补全,会出现linguist,然后回车会自动打开语言专家。
root@Xubuntu18:~$ linguist
然后File->open,选择要打开的ts文件
4.2 windows平台
在windows平台,推荐大家使用everything工具去搜索,下面给出常用软件的连接:
程序员提高工作效率的利器(不看你会后悔的)
用everything搜索“linguist”,单机打开对应的exe,注意下你用的是64位编译还是32位编译。
4.3 打开ts文件填写对应的翻译
左侧栏是对应的文件,字符串栏对应识别出来的字符串
选择原文字符串,然后在下面填写对应的翻译
翻译成功后,单机原文的❓,让其变成√
将所有的文件中的字符串翻译完成后保存,并关闭ts文件。
5、Qt语言专家将翻译后的ts文件生成qm文件
在ts目录下会生成同名的qm文件
6、加载和安装qm语言文件
在main函数中,加载qm文件
QTranslator translator;
if (translator.load(":/language/language_zh_CN.qm")) {qApp->installTranslator(&translator);
}
初始化完成后会显示当前加载的语言。
7、页面语言刷新
动态切换语言,例如页面有一个切换语言的按钮,触发按钮后,如何刷新所有的语言?下面分两部分来介绍。
7.1、 QWidget 刷新语言
每个Widget窗口或页面都需要通过UI 调用命令:
ui->retranslateUi(this);
7.2、 QML刷新语言
engine->retranslate();
关于qml刷新,详情可以看 这里
Qt多语言开发--Qt语言专家相关推荐
- c开发 易语言支持库,易写易库-用易语言开发易语言支持库.pdf
易写易库-用易语言开发易语言支持库 易写易库(EXEK)用户手册 版本:0.2 作者:liigo,/liigo 时间:2008.10 概述 EXEK EXEK "易写易库(EEXXEEKK) ...
- “易写易库(EXEK)”项目启动,用易语言开发易语言支持库
"易写易库"(EXEK,E Xie E Ku)项目已经启动,用易语言开发易语言支持库.我(liigo)准备用一个月左右的业余时间,完成本项目的一期工程. 用易语言开发易语言支持库, ...
- linux下软件多语言开发,Qt,多语言软件,开发流程【总结】
环境 系统版本:ubuntu Qt版本:Qt 5.12 开始 步骤1:先编写一段Qt代码 如下,这个意思就是创建一个Qlabel.其内容 要写成 tr("hello111"),tr ...
- 使用Go语言开发Qt界面
Go 的 UI 库 Go 语言本身是没有 UI 库的,不过有许多第三方的库支持将 Go 语言绑定到其他 UI 库,比如 Qt.GTK.参考地址 环境搭建 非 windows 或者需要参数说明的可以参考 ...
- qt开发linux界面软件,利用Qt Designer开发Qt界面
因为这篇文章主要是告诉大家如何利用QT Design来达到快速学习QT的.,所以您最也要做到:您需要有一台可以跑Linux的电脑或者Microsoft Windows的电脑足够的RAM和HardDis ...
- t2c用什么语言编程,MC96F8316应用及C语言开发环境.pdf
MC96F8316应用及C语言开发环境,c语言开发环境,ubuntuc语言开发环境,c语言开发环境搭建,c语言集成开发环境,macc语言开发环境,c语言的开发环境,linuxc语言开发环境,c语言开发 ...
- PySide是Python语言的Qt框架的一个绑定。PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6、2.7和3.x版本下可用。
PySide是Python语言的Qt框架的一个绑定.PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6.2.7和3.x版本下可用. 在开始使用PySide之前,需要在你的机器上安 ...
- Qt中,软件多语言国际化翻译的方法与步骤
Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...
- Qt Quick的多国语言翻译
一.翻译Qt Quick应用软件 1.对所有用户界面中的文字字符串使用qsTr() QML中的字符串可以使用qsTr().qsTranslate().qsTrId().QT_TR_NOOP().QT_ ...
- c语言代码大全_从学生到专家,C语言开发必读的8本书
本号总结了在C语言实际开发中必读的8本书,当然这8本书并不能囊括开发的方方面面,但就作者亲身体验来看,这8本书确实每个C语言开发者都必须要读的书,并且是应该深入精读的书. C程序设计语言 相信大家都学 ...
最新文章
- Tachyon 0.7.1伪分布式集群安装与测试
- SQL Server Profiler (SQL跟踪器)的简单使用
- 如何删除需要管理员权限才能删除的文件夹
- 科学小世界,婚姻大殿堂
- js/jquery循环提取table单元格值
- 暴跌300亿,“撤离”中国!乔布斯12年前憋的大招,又把一个巨头逼下神坛
- 玩转 SpringBoot 2 快速整合 Filter 注解版
- 绝对不能错过!计算机视觉Polygon Mesh Processing读书笔记——4微分几何中的曲线
- Tomcat 部署多个项目出现错误
- 账龄分析表excel模板_这种高端表格模板你会做吗?Excel制作带照片的员工信息查询表...
- 浅谈软件需求分析中的参与者
- Python图像处理库PIL的基本概念介绍
- [每日一氵] openCV resize函数直接按比例缩放
- 福师大 1309 计算机应用基础 在线作业答案二,福师大 1309 计算机应用基础 在线作业答案二...
- 国内云通讯渗透率不足3% 容联云SaaS业务迈入高速发展期
- python按指定概率抽样_python:抽样和抽样方法
- BM开发出量子计算机,迄今错误率最低量子比特面世,有望推进量子计算机研发工作...
- WIN10恢复旧版edge(原版edge)
- 扬州二手机器人_扬州靠谱的智能维修机器人,正规的abb机器人电源维修
- Http请求工具类:Get/Post
热门文章
- svn 分支上新增文件合并发生冲突_windows 下svn 创建分支 合并分支 冲突
- 360 os3.0 android7.1,【360 N6 Pro】360OS安卓7.1系统V3.0.087付费纯净版ROOT刷机包
- 《OpenCV3编程入门》毛星云编著
- java实现AES密钥生成
- keil5写c语言的步骤,keil5使用C51的详细步骤讲述
- 斗鱼主播后台礼物数据爬取
- si4438+efm32g210f128
- 易语言高级表格如何右击选择当前项,再弹出右击菜单?
- 图文详解YUV420数据格式
- MT4跟单系统如何查询交易品种的合约规格?