1、QT项目中,.pro文件内添加如下代码
TRANSLATIONS += test_zh.ts
test_zh是自己起的名字,名字部分可以修改(一般中文为zh,英文为en)
.ts是后缀,后缀不能改
2、用tr()在所有需要中英文翻译的源代码处修改格式
用tr("XXX") 替换 "XXX"
1)翻译前:
QMessageBox::information(this, "消息框", "this is a content");
2)翻译后:
QMessageBox::information(this, "消息框", tr("this is a content"));
3、生成并修改.ts翻译文件
1)生成.ts文件
点击qt的【工具】--【外部】--【Qt语言家】--【更新翻译】
此时在项目文件夹下会生成一个.ts结尾的翻译文件
2)修改.ts文件
在项目文件夹中双击.ts结尾的文件,会进入linguist语言家编辑界面,这里会识别出项目里所有你用tr()形式需要翻译的地方,在下图红框里填入对应的中文即可
改好所有翻译之后保存,ctrl+s保存也可,左上角点击保存也行
4、通过.ts文件生成.qm文件
qt 里,工具栏选择【工具】--【外部】--【Qt语言家】--【发布翻译】
注意:刚才生成.ts文件选择的是更新翻译,不要弄混
点击发布翻译后,项目文件里会生成一个.qm结尾的文件,是以.ts文件为基础生成的
5、将.qm文件以【添加资源文件】的形式加入qt项目中
添加资源文件过程不做赘述,添加后项目目录如图
6、在main.cpp中载入翻译文件
QTranslator translator; translator.load(":/test_zh.qm"); a.installTranslator(&translator);
注意:翻译文件加载的位置必须在界面实例化之前完成;
而且注意加载资源文件的路径,路径一定要对,不然无法加载正确翻译
至此,已经可以将英文翻译为中文
翻译前:
翻译后:
参考:
QT---之QTranslator【界面语言翻译】及QT-Linguist的用法_锥子A的博客-CSDN博客
Qt中QTranslator中的翻译文件*.ts文件是如何生成的?_Just do it-CSDN博客_qt 生成ts文件