Beinsearch
7/26/2017 - 2:52 AM

QT多国语言国际化

QT多语言使用流程:

1、修改pro文件

在pro文件添加并编译:

TRANSLATIONS = language/en.ts \
               language/la.ts \
               language/zh.ts \
               language/ko.ts
其中en、la、zh、ko是ISO标准中语言的简写形式。

2、创建、翻译和部署语言文件
依次使用lupdate、Linguist(Qt语言家),生成、翻译和部署语言文件,将生成的qm文件添加到

工程的res。

3.1、如需要启动就翻译,那么在main函数里添加如下命令:
QApplication a(argc, argv);
QTranslator translator;
translator.load(QString(":/language/zh.qm"));
a.installTranslator(&translator);

3.2、界面完全由UI编辑器生成,详见demo1,基本原理如下:
建立翻译button,槽函数为:
void Dialog_Language::on_btn_lan_chinese_clicked()  
{
	translator.load(":/language/zh.qm");  
	qApp->installTranslator(&translator);  
	ui->retranslateUi(this);  
}

3.3、界面中如果有setText方式显示的文字,需要单独写刷新Ui函数,然后添加到翻译函数里:
void Dialog_Language::updateUI()  
{  
	ui->lbl_text_info->setText(tr("System Information"));  
}  

void Dialog_Language::on_btn_lan_chinese_clicked()  
{
	trans.load(":/language/zh.qm");  
	qApp->installTranslator(&trans);  
	ui->retranslateUi(this);  
	updateUI();
}


注意事项:
1、建立UI时尽量用英文名;
2、代码写的setText,必须加入tr前缀,如:label->setText(tr("Hello World!"))。