编写一个应用程序可以用到多个国家语言,感觉很好把!QT可以很容易的将编写的程序翻译到其他国家语言,下面就来叙述使用的过程;
先写一小段程序:
#include <QApplication>
#include <QLabel>
#include <QTextCodec>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QLabel *label = new QLabel ;
QTranslator translator ;
translator.load("test") ;
app.installTranslator(&translator);
label->setText(QObject::tr("hello everybody!"));
label->setWindowTitle(QObject::tr("hello world!"));
label->resize(200,100);
label->show();
return app.exec();
}
QTranslator的方法load用于装载翻译的各种配置,translator会去寻找test.qm,这个文件中包含了要翻译的语言,如果不提供这个文件,那么程序将按原来的语言执行。这里要注意只有在QObject::tr包围着的语句才能被翻译;
在你的工程配置文件中添加翻译配置:
TRANSLATIONS +=test.ts
然后执行
lupdate -verbose test.app
这样生成test.ts
文件
使用linguist test.ts翻译
然后使用lrelease test.ts
生成test.qm
将test.qm与发行版应用程序放在一起就可以实现程序的翻译了