一、概述
qt在编写多国际化软件时,一般采用多语言的方式,既先用英文字符串写代码,后期再进行翻译为其他语言的版本。
二、多语言翻译方法
2.1在c++文件中多语言方法
在c++文件中,需要翻译的多语言字符串需要用tr()方法将字符串进行标记。既使用tr("英文字符串")(注意:因为Qt中的类都继承自QObject
类,所以这里直接使用了tr
,如果不是在继承自QT的类中使用,应该用Object::tr(...)
来调用。)来对字符串进行标记,告诉qt这个字符串是需要被翻译为多种语言的字符串。如下图所示。
2.2在qml中多语言方法
在qml文件中和c++略有不同,qml文件中,需要使用qsTr()方法将字符串进行标记。既使用qsTr("英文字符串")来对字符串进行标记。如下图所示。
需注意,在c++中用tr()函数后就可以进行下一步更新翻译的步骤了,但是qml中使用qsTr()函数后还需要在pro文件中添加翻译路径,如下图所示,路径具体为要翻译的qsTr所在qml文件在Sources文件中的路径。
2.3更新翻译
在上面,需要翻译为多种语言的相关字符串已经使用tr()
函数或qsTr()函数包装起来了。现在要做的就是更新这些要翻译的字符串到ts
文件。更新翻译(lupdate)
就是用于扫描qml中被qsTr()包裹的字符串和
c++文件中被tr()包裹的
起来的字符串生成到ts文件中,ts文件就是记录这些字符串翻译信息的文件。
具体步骤:
①在pro文件中添加ts文件(如下图,ts文件的名字可以任意取),在更新翻译后,如果原本不存在这个ts文件则会在自动在工程文件目录下生成这个ts文件。
②进行更新翻译,点击工具-外部-QT语言家-更新翻译(lupdate)如下图:
2.4翻译对应字符串
①使用QT自带的的Linguist软件打开之前在pro文件中指定的ts文件,ts文件路径一般为工程文件的根目录下。
②点击菜单栏编辑-翻译文件设置,对要翻译的目标语言进行设置。如下图
③进行字符串翻译如下图:
2.5发布翻译
翻译完成后进行发布翻译,即将ts文件转化为qt能够识别的qm二进制文件。步骤:点击工具-外部-QT语言家-发布翻译(release),完成后重新编译运行即可。
标签:文件,翻译,qt,qsTr,tr,ts,软件,字符串,编写 From: https://www.cnblogs.com/tgc-3/p/16984563.html