Qt多语言切换

本篇文章主要记录Qt多语言切换的方法及需要注意的点。

步骤描述

Qt中英文切换主要包含8步,分别为:
(1)在pro文件中增加需要生成的ts文件(根据需求增加中文、英文或其他语言)
Qt多语言切换_第1张图片
(2)在UI文件中添加窗口上需要的控件(默认英文显示(当然也可以默认中文)在其他文章中看到最好界面默认使用中文,否则可能会乱码,这点有待验证,因为我没有出现这个问题)。
Qt多语言切换_第2张图片
(3)由于在类中new的控件多语言切换方式会有不同,所以此步骤在cpp文件中new一个对象添加到窗口中。
Qt多语言切换_第3张图片
(4)点击QtCreator工具栏更新翻译。点击后,会在工程目录下生成以pro文件中增加的两个文件名为名称的ts文件。
Qt多语言切换_第4张图片
更新完毕后控制台会有提示完成
Qt多语言切换_第5张图片

Qt多语言切换_第6张图片

(5)打开window所有应用,找到Qt-Linguist (本人使用的MinGW编译器),单击打开
Qt多语言切换_第7张图片
(6)选择中文的ts文件打开(由于界面默认使用的英文显示,所以只对中文文件进行翻译),然后逐个对英文字符串翻译成中文。全部填写完成后点击保存按钮,再点击发布按钮,会在工程目录下生成对应的qm文件。
注意:英文ts文件打开后直接点击发布按钮生成qm文件即可。
Qt多语言切换_第8张图片
Qt多语言切换_第9张图片
打开文件后的界面
Qt多语言切换_第10张图片
Qt多语言切换_第11张图片
Qt多语言切换_第12张图片
生成的qm文件
Qt多语言切换_第13张图片
(7)在exe文件所在目录下新建文件夹translator并将两个qm文件移入
Qt多语言切换_第14张图片
(8)添加代码
注意:通过代码可以发现切换英文有两种方法。
第一种和切换中文方式相同,加载英文的qm文件
第二种由于我们界面默认为英文显示,所以切换为英文时只需要将之前设置的中文移除后再更新界面即可。
头文件
Qt多语言切换_第15张图片
源文件
Qt多语言切换_第16张图片

效果图

点击中文按钮

Qt多语言切换_第17张图片
点击英文按钮
Qt多语言切换_第18张图片

注意点:

1.在cpp中new的控件,必须在切换语言后重新setText()
2.在cpp中new的控件,setText()时必须加tr(“”)。只有增加了tr,生成的ts文件中才会存在此字符串,才可进行翻译
3.进行多语言切换的类的头文件中必须增加Q_OBJECT,否则不能翻译成功
4.ui->retranslateUi(this); 对于QWidget,多语言切换后必须调用此句,但对于QML,不需要。

转载请注明出处哦!

你可能感兴趣的:(qt,开发语言)