編寫一個應用程序可以用到多個國家語言,感覺很好把!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與發行版應用程序放在一起就可以實現程序的翻譯了