QT库对国际化的支持:语言翻译。
主要利用Qt提供的lupdate、linguist、和lrelease工具。这些工具在Qt安装目录里有。
主要步骤:
-
修改工程的.pro文件,添加如下代码:TRANSLATIONS = XXXX.ts。然后编译,一定要编译。代码示例:
TRANSLATIONS = InternationalDemo.ts
-
打开Qt x.xx.xx for Desktop(MinGW x.x.x 32
bit),首先进入工程目录下,然后执行命令:lupdate XXX.pro。上述XXX.pro就是第一步中修改的.pro文件。这样工程目录下就生成了XXX.ts文件。但是最终需要不是.ts,而是.qm,所以继续。
-
在Qt命令行中输入Linguisit或者直接运行Linguist应用,打开Linguist。
-
文件->打开,打开工程目录下生成的.ts文件,然后设置源语言和目标语言,默认源语言是任意国家语言,目标语言是中文。
.ts已经提取了代码中的字符串,我们只需要选中源文,在下面写对应的译文。每写完一项源文,点击上方图标
,表示该项源文已经译完,进行下一项。
所有源文译完,保存一下,然后文件->发布。
-
最后修改源代码,在main函数或者合适的地方添加如下代码:
QTranslator *translator = new QTranslator; translator->load("D:/Documents/QtProjects/InternationalDemo/InternationalDemo.qm"); a.installTranslator(translator);
需要引用头文件#include <QTranslator>。
tr参数
函数原型为:
[static] QString QObject::tr(const char *sourceText, const char *disambiguation = Q_OBJECT, int n = Q_OBJECT)
- sourceText:就是需要的源字符串。
- disambiguation:不同的字符串可能相同,为了消除歧义和区分,给相同的字符串添加不同的描述,默认为0。
- n:用于存在复数的情况,具体怎么回事不晓得。