QT自己提供了一种国际化方案,而不是采用INI配置文件的方式,在QT中提供了tr()函数,而翻译好后的资源以“.qm”命名。
概念
通常在QT中利用QString()、QTranslator等类和tr()函数能够很好的完成加入国际化的支持,具体如下:
1.使用QString对象表示所有用户可见的文本。
2.使用tr()函数获取所有需要翻译的文本,在Qt的翻译机制下,QObject::tr()函数可以获取翻译之后的文本。
3.利用QTranslator::load()和QcoreApplication::installTranslator()读取对应的翻译之后的文件。
“.qm”文件的生成
主要利用Qt提供的工具lupdate、linguist和lrelease来完成翻译并生成最后所需的“.qm”文件。
1.利用lupdate工具从源码中扫描并提取需要翻译的字符串,生成“.ts”文件。运行lupdate时也需要制定一个“.pro”的文件,
只需要定义好`TRANSLATIONS`
2.利用linguist工具来协助完成翻译工作,既打开前面用lupdate生成的“.ts”文件,对其中的字符串逐条进行翻译并保存。由于“.ts”文件采用了XML格式,也可以通过其他工具打开并翻译。
3.利用lrelease工具处理翻译好的“.ts”文件,生成“.qm”文件。
举例
1.新建一个GUI工程,在UI界面添加三个按钮
2.修改“.pro”文件,添加如下代码
TRANSLATIONS = zh_CN.ts\
en_CN.ts
3.编译,生成“.ts”文件
4.编译完成后,用linguist打开“.ts”文件,逐条翻译。
5.翻译完成后保存,选择文件->发布。即可生成“.qm”文件。
6.把“.qm”文件添加到资源文件就可以通过相对路径应用了。
7.Demo下载