-
1、需要翻译的文本
在编写QT程序的时候,对于要翻译的文本,应当使用tr()包含起来。
我们先来看看tr函数的原型,这是一个静态函数。
QString QObject::tr(const char * sourceText, const char * disambiguation = 0, int n = -1)
备注:因为Qt中的类都继承自QObject类,所以这里直接使用了tr,如果不是在继承自QT的类中使用,应该用Object::tr(…)来调用 -
2、lupdate更新翻译
先说一下lupdate的使用格式:
lupdate [选项] [项目文件]…
lupdate [选项] [源文件 | 路径 | @ lst 文件]…-ts ts 文件 | @ lst 文件
生成ts文件
1)直接通过指令生成,这个方式会忽略掉pro文件中指定要生成的翻译文件
2)通过配置Pro生成
在pro文件中添加:TRANSLATIONS = MyTest.ts
-
3、linguits翻译文本
更新需要翻译的文本也是有两种方式:
1)直接打开上面生成的.ts文件
2)通过linguits工具翻译
-
4、lrelease发布翻译
1)直接通过lrelease命令生成qm文件
lrelease MyTest.ts -qm MyTest.qm
2)通过QtCreator生成qm文件
-
4、在程序中使用翻译文件
在QT程序中要使用翻译文件,需要使用到类QTranslation。现在来修改main.cpp.
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator; //定义翻译器变量
if (translator.load("MyTest.qm")) //加载翻译文件
{
a.installTranslator(&translator); //安装翻译器
}
return a.exec();
}