参考文章:http://blog.csdn.net/wuff1988/article/details/7093522
http://blog.csdn.net/wangxueang224/article/details/7802306
我的demo程序下载:http://download.csdn.net/detail/hailmy/8024907
1. *.pro 文件新增
TRANSLATIONS += trans/zh.ts \
trans/en.ts
2. 程序使用tr()来输出字符串
3. 使用QT自带工具 lupdate 生成ts文件(例如: lupdate demo.pro) 生成在 ./trans/
4. 使用QT自带工具 linguist 生成qm文件
5. 把生成的qm文件导入到工程里面
贴上切换代码
#define current_language "Chinese"
QTranslator *tor;
tor = new QTranslator();
if (current_language == "Chinese") {
tor->load(":/trans/zh.qm");
} else if (current_language == "English") {
tor->load(":/trans/en.qm");
}
qApp->installTranslator(tor);
this->ui->retranslateUi(this);
/*
语言选择
*/
void MainWindow::on_comboBox_3_activated(int index)
{
switch (index) {
case 0:
QApplication::removeTranslator(tor);
tor->load(":/trans/zh.qm");
qApp->installTranslator(tor);
this->ui->retranslateUi(this);
ui->comboBox_3->setCurrentIndex(0);
current_language = "Chinese";
break;
case 1:
QApplication::removeTranslator(tor);
tor->load(":/trans/en.qm");
qApp->installTranslator(tor);
this->ui->retranslateUi(this);
ui->comboBox_3->setCurrentIndex(1);
current_language = "English";
break;
default:
QApplication::removeTranslator(tor);
tor->load(":/trans/zh.qm");
qApp->installTranslator(tor);
this->ui->retranslateUi(this);
ui->comboBox_3->setCurrentIndex(0);
current_language = "Chinese";
break;
}
set_default_Form_conf();
}
主要注意的是,动态切换完毕后,需要对lineEdit等控件重新setText下初始值。