您的位置:首页 > 编程语言 > Qt开发

Qt之国际化

2016-07-04 09:29 253 查看
Qt中的国际化的方法有很多,常用的有使用QTextCodec类和使用tr()函数。前者将编码名称写到代码里面,除非你使用Unicode编码,
否则国际化依然是一个问题;后者就不会有这个问题,并且这也是Qt推荐的做法。因此,我们主要来说使用tr()函数的方法进行应用程序的国际化。
接下来讲解一下Qt国际化实现步骤:

一、创建一个QMainWindow用来测试,界面只有两个按钮,很简单!




二、在项目工程文件.pro中添加TRANSLATIONS += qtlanguage.ts,ts是我们需要创建的翻译文件,这个文件的名字是任意的,不过后缀名需要是ts!




三、然后我们打开命令提示符,进入到工程所在目录,比如我的是D:\Workpace\Qt-Workspace\qtLanguageTest,也就是pro文件所在的文件夹,
然后输入命令lupdate qtlanguage.pro




注意:如果此时提示命令不存在,请注意将Qt的bin目录添加到环境变量中。此时,如果更新的数目,说明ts文件创建成功。

如果你有兴趣的话,可以用记事本打开这个ts文件,这个文件实际上是一个XML文件,结构很清晰。不过,我们要使用专业的翻译工具进行翻译。

四、使用翻译工具翻译ts文件,Qt提供了一个工具:Qt Linguist,你可以在开始菜单的Qt项下面的Tools中找到,
或者在安装目录的bin中找到。用它可以打开我们的ts文件,然后进行我们的翻译工作:




打开Qt Linguist后,能够发现跳出了一个对话框(在Linux下测试的时候未发现,window中有这个功能),需要选择源语言和目标翻译语言!







完全翻译完成后保存文件,然后在文件菜单下有个“发布”。点击这个按钮,工程目录下会有一个atlanguage.qm文件,

这就是我们翻译得到的文件。Qt的qm文件实际上是二进制格式的,因此它经过了高度的优化,体积很小。

四、在mian函数中使用翻译文件atlanguage.qm:


#include <QtGui/QApplication>
#include "qtlanguagetest.h"
#include <QTranslator>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QTranslator qtTranslator;
qtTranslator.load("qtlanguage.qm");
qApp->installTranslator(&qtTranslator);

QtLanguageTest w;
w.show();

return a.exec();
}


翻译后的效果如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 国际化