Qt之国际化

来源:互联网 发布:java画图api 编辑:程序博客网 时间:2024/05/16 14:22
Qt中的国际化的方法有很多,常用的有使用QTextCodec类和使用tr()函数。前者将编码名称写到代码里面,除非你使用Unicode编码,否则国际化依然是一个问题;后者就不会有这个问题,并且这也是Qt推荐的做法。因此,我们主要来说使用tr()函数的方法进行应用程序的国际化。接下来讲解一下Qt国际化实现步骤:一、创建一个QMainWindow用来测试,界面只有两个按钮,很简单!

创建一个QMainWindow

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

.pro工程文件中添加需要创建的翻译文件

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

lupdate atlanguage.pro
注意:如果此时提示命令不存在,请注意将Qt的bin目录添加到环境变量中。此时,如果更新的数目,说明ts文件创建成功。
如果你有兴趣的话,可以用记事本打开这个ts文件,这个文件实际上是一个XML文件,结构很清晰。不过,我们要使用专业的翻译工具进行翻译。

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

在Qt Creator中使用QtLinguist
打开Qt Linguist后,能够发现跳出了一个对话框(在Linux下测试的时候未发现,window中有这个功能),需要选择源语言和目标翻译语言!
选择翻译的语言
Qt Linguiget使用方法
全部翻译完成
完全翻译完成后保存文件,然后在文件菜单下有个“发布”。点击这个按钮,工程目录下会有一个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();}

翻译后的效果如下所示:
翻译后的界面

2 0
原创粉丝点击