qt翻译国际化
一、简单一个例子,比如下面代码,使用tr()
来控制需要翻译的代码void MainWindow::on_Test_clicked()
{
QString a = tr("Do a test.");
qDebug() << a;
Dialog * aa = new Dialog();
aa->show();
}
二、对tr里面的内容进行翻译和发布
1、使用lupdate命令和lrelease命令进行转化
2、使用QT Creator进行可视化操作
如果使用第二种办法的话还需要更改.pro文件,增加以下代码TRANSLATIONS = zh_cn.ts
对生成的ts文件进行修改,内容是xml格式的,文本编辑器进行更改就可以,确认无误后就把translation里面的type标签去掉,然后就可以进行发布。
三、进行发布
修改main.cpp,大概结构如下,有两个需要注意的地方int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator tsor; //创建翻译器
/*
* 加载语言包,注意:
* a.如果是在IDE中调试的话就要把qm文件放到Makefie的同级目录
* b.如果是直接运行exe文件的话就要把qm文件放到exe的同级目录
*/
bool ret = tsor.load("zh_cn.qm");
qDebug() << ret;
a.installTranslator(&tsor); //安装翻译器
MainWindow w;
w.show();
return a.exec();
}