QT国际化之tr()使用

在正式简绍之前先说点题外话,刚接触qt时,部分功能需要查询网络资料,现在回过头来看有一点非常让人意外,就是网络上对tr()使用的介绍,之前看了网上有大量类似下面这样的用法:
tr("系统设置")
了解之后可以很负责任的分享给新入坑的同学,tr()中包含中文,完全是坑爹的误导,如果再代码中出现,首先可以肯定的是作者根本不知道tr()的用法。借着这个背景我们开始分享QT国际化。

所谓国际化就是让同一软件服务于不同语言的使用人员,比如中文、英文。这种场景下有没有可能只编写一个版本的程序实现呢?答案是肯定的,qt提供了这样的机制,那就是正确使用tr().

qt提供了一个翻译机制,只要是代码中用tr()包含起来的文本,程序可以额外提供一个翻译文件(*.ts),有了这个翻译文件我们可以将tr()中包含的文本人为翻译为任何语言,这样对于不用语言的使用者,只需要选择自己使用的语言,程序界面就会自动完成语言转换。

编码阶段具体该如何做呢?下面开始介绍:

步骤

1、创建应用程序;
2、创建应用程序翻译文件;
3、更新翻译文件;|
4、手动翻译;
5、发布翻译文件;

创建应用程序

这一步不需要过多的介绍,按照常规创建项目的步骤创建即可

创建应用程序翻译文件

有两种情况:1、还未创建项目;2、已经有项目;

对于情况1,只需要在创建项目的时候按向导提示创建翻译文件即可,如下图:

对于情况2,手动在.pro文件中加入

TRANSLATIONS = $$PWD/resource/language/VideoClient_Chinese.ts

我这里项目名称是VideoClient,所以命名为“VideoClient_Chinese.ts”,用于在页面中将tr()中文本翻译为中文。

更新翻译文件

在qtcreator中,依次点击“工具”-》“外部”-》“Qt语言家”-》更新翻译,这一步执行后qtCreator会自动去更新上一步创建的*.ts文件;

手动翻译

使用qtLinguist打开上一步更新后的ts文件,如下图中源文中是代码tr()中的内容,译文中为界面上显示的内容。

 发布翻译

在qtcreator中,依次点击“工具”-》“外部”-》“Qt语言家”-》发布翻译。

猜你喜欢

转载自blog.csdn.net/heibao111728/article/details/123367820
今日推荐