【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程

目录

一、环境

二、具体步骤

1、QT项目中,.pro文件内添加如下代码

2、用tr()在所有需要中英文翻译的源代码处修改格式

3、生成并修改.ts翻译文件

4、通过.ts文件生成.qm文件

5、将.qm文件以【添加资源文件】的形式加入qt项目中

6、在main.cpp中载入翻译文件


一、环境

linux + qt

二、具体步骤

1、QT项目中,.pro文件内添加如下代码

TRANSLATIONS    +=  test_zh.ts

test_zh是自己起的名字,名字部分可以修改(一般中文为zh,英文为en)

.ts是后缀,后缀不能改

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第1张图片

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语言家】--【更新翻译】

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第2张图片

此时在项目文件夹下会生成一个.ts结尾的翻译文件

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第3张图片

 2)修改.ts文件

在项目文件夹中双击.ts结尾的文件,会进入linguist语言家编辑界面,这里会识别出项目里所有你用tr()形式需要翻译的地方,在下图红框里填入对应的中文即可

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第4张图片

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第5张图片

 改好所有翻译之后保存,ctrl+s保存也可,左上角点击保存也行

4、通过.ts文件生成.qm文件

qt 里,工具栏选择【工具】--【外部】--【Qt语言家】--【发布翻译】

注意:刚才生成.ts文件选择的是更新翻译,不要弄混

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第6张图片

点击发布翻译后,项目文件里会生成一个.qm结尾的文件,是以.ts文件为基础生成的

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第7张图片

5、将.qm文件以【添加资源文件】的形式加入qt项目中

添加资源文件过程不做赘述,添加后项目目录如图

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第8张图片

6、在main.cpp中载入翻译文件

    QTranslator translator;
    translator.load(":/test_zh.qm");
    a.installTranslator(&translator);

注意:翻译文件加载的位置必须在界面实例化之前完成;

而且注意加载资源文件的路径,路径一定要对,不然无法加载正确翻译

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第9张图片

 至此,已经可以将英文翻译为中文

翻译前:

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第10张图片

 翻译后:

【linux】QT QTranslator 中英文翻译linguist语言家 翻译过程_第11张图片

 参考:

QT---之QTranslator【界面语言翻译】及QT-Linguist的用法_锥子A的博客-CSDN博客

Qt中QTranslator中的翻译文件*.ts文件是如何生成的?_Just do it-CSDN博客_qt 生成ts文件

你可能感兴趣的:(Qt,qt)