1、在main函数中注册
QString lanQm = QString(“:/qm/widget_lan_zh.qm”);
QTranslator translator;
translator.load(lanQm);
app.installTranslator(&translator);
2、重写changeEvent,在translator.load(lanQm);的时候,会捕获这个消息
void widget::changeEvent(QEvent *evt)
{
switch (evt->type()) {
case QEvent::LanguageChange:
translateUI();
break;
default:
QWidget::changeEvent(evt);
break;
}
}
3、将所有需要切换语种皮肤的地方,使用tr标注起来,这样Linguist就可以识别,哪些语种切换的对象。
void widget::translateUI()
{
this->setWindowTitle(tr(“main widget”));
m_pBtn->setText(tr(“setting”));
}
4、*.pro中添加TRANSLATIONS,这一步什么皮肤文件的名称
TRANSLATIONS = Resource/widget_lan_zh.ts
Resource/widget_lan_en.ts
5、第四步设置好之后,按照以下步骤生成对应皮肤文件
工具->外部->Qt语言家->更新翻译(lupdate)
6、在Linguist中修改不同的皮肤即可,如图所示
7、在QtCreater中发布,生成*.qm文件,步骤如下:
工具->外部->Qt语言家->发布翻译(lrelease)
8、下图是生成的文件