Qt的翻译分为三步:
1.运行lupdate,从应用程序中提取所有经tr()标识过的字符串。生成一个后缀为*.ts的文件。即lupdate filename.pro
2.使用Qt Linguist翻译这个*.ts。然后用其生成*.qm(也可以手动编辑ts文件进行翻译)。
3.在应用程序中用QTranslator这个类加载*.qm文件。
要用lupdate生成后缀为*.ts的文件就要先在应用程序的工程文件*.pro中加入这一句:
TRANSLATIONS = orbitEditor_zh_CN.ts
文件名可以自己定。然后在命令行中运行lupdate -verbose 工程名.pro,程序执行完后,就会生成一个*.ts文件了。
用Qt Linguis打开*.ts这个文件(或者在终端执行linguist *.ts )。如图:
从图片中可以看到Context这一栏,这一栏是根据你程序中的类列出来的。然后旁边的Strings这一栏就是要翻译的语句了。翻译时注意 Sources and Forms这一栏,和Warnings这一栏就行了。前一栏可以看到要翻译的语句的出处,后一栏可以看到警告信息。警告信息还是很有用的。每翻译完一句, 点工具栏上的那个有绿色勾的图标,就可以完成翻译,并跳到下一句。完全正确的那句就会出现绿色的小勾,有警告信息的就会变成黄色的勾,还没有翻译的就还是问号。
翻译完后,点File–>Release就可以生成*.qm文件了(也可以用lrelease file.ts生成二进制pm文件)。
在main.cpp中用如下语句加载:
QTranslatorqtTranslator;
qtTranslator.load("orbitEditor_zh_CN.qm",":/");
a.installTranslator(&qtTranslator);
当然记得把*.qm加入资源文件*.qrc。根据路径的不同,自己修改上面load那句。
这样翻译完后,可能会出现两个问题:
1.Qt的内部类比如QMessageBox,QDialog等中的语句没有翻译成中文。对于这个问题,再加载一个翻译文件就行。Qt已经为我们准备好 了,在"安装目录\translations中。我用的就是qt_zh_CN.ts这个文件,Qt已近为我们翻译好了。只要将它导出为*.qm文件就可以 加载了。
2.翻译成中文后,中文的文字很小,得很努力看才看得清。。。这个最简单的方法就是设置下全局的文字大小。
所以,最后在main.cpp中所有的加载语句是:
QApplicationa(argc,argv);
//加载中文翻译
//加载本软件的翻译
QTranslator qtTranslator;
qtTranslator.load(“orbitEditor_zh_CN.qm”,“:/”);
a.installTranslator(&qtTranslator);
//加载Qt其他类,比如QDialog的翻译
QTranslator qtGloble;
qtGloble.load(“qt_zh_CN.qm”,“:/”);
a.installTranslator(&qtGloble);
//设置全局文字大小
QFont font = a.font();
font.setPointSize(12);
a.setFont(font);
当软件中添加文字需要汉化的时候,就可以直接执行lupdate project.pro更新ts文件,用文本编辑器或者linguist进行翻译,然后通过linguist的发布或者lrelease ts文件生成qm文件。
PS:如果安装qt后没有默认安装linguist,需要安装qt4-dev-tools包。
参考:
QT-Linguist使用方法简单介绍
http://blog.163.com/bingcaihuang@126/blog/static/198942122010103115655557/
