看到一个文档,关于Qt4Design使用的,其中一部分关于国际化的,很有价值。一直还没做到这块,看了之后,才知道上一篇tr()的作用。。
详细请看附件文档。
六、QT国际化(i18n)
要使得应用程序支持多种 语言,并且能够灵活切换,就需要添加QT的国际化支持。
打开QTDemo.pro,添加如下语句:
TRANSLATIONS += en.ts zh_CN.ts zh_TW.ts
然后在命令行窗口中输入 以下命令:
lupdate QTDemo.pro
这样就生成了3个语言文件:en.ts,zh_CN.ts,zh_TW.ts,分别存放英文、中文、繁体中
文的字符串。en.ts的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1">
<context>
<name>Form</name>
<message>
<location filename="form1.ui" line="13"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="form1.ui" line="25"/>
<source>Exit</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
这是一个XML文件,其中存放了所有工程中涉及到的字符串。
用linguist(在QT安装目录下的bin目录中)打开zh_CN.ts,选择“编辑”->“翻译文件设置…”,选择
Chinese/China:
选中某一个字符串,在译文文本框中输入对应于中文的字符串:
在翻译完成后一定要记得点击一下字符串前面的“?”,使其变成一个“√”:
最 后选择“文件”->“另外发布为…”,将语言文件发布为zh_CN.qm文件
用同样的方法生成zh_TW.qm文件,唯一不同的地方就是翻译文件设置中应该选择Chinese/Taiwan。
对于en.ts 文 件,不需要翻译,直接发布为en.qm即可。
下面在程序中添加对国际 化的支持,将main.cpp修改为如下内容:
#include <QApplication>
#include <QTranslator>
#include "MyDlg.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QTranslator translator;
translator.load(QString(argv[1]));
app.installTranslator(&translator);
MyDlg *mydlg = new MyDlg;
return mydlg->exec();
}
重新执行make命令,生成可执行程序。
在运行程序时通过传递命 令行参数指定所使用的语言,注意不需要指定扩展名.qm,例
如:
QTDemo zh_CN
这样运行程序时界面就编 程中文的了,是不是很简单啊~