我的理解:
可以实现语言的转换。
需要对要进行语言转换的文字加tr()
m_pBtnChangeLanguage->setText(tr("Change Language")); //这里要用tr包起来,不然语言家无法识别
ui->label->setText(tr("label1"));
ui->label_2->setText(tr("label2"));
ui->label_3->setText(tr("label3"));
在.pro文件中加
TRANSLATIONS += language/langEnglish.ts \
language/langChinese.ts
之后要生成对应的两个.ts文件
有博文是这样做的:
但我的环境不行,出现了如下错误,我解决不了。。。
之后在另一篇文章中
(1条消息) 使用lupdate生成Qt的ts翻译文件_qt生成翻译文件_皮牙子快跑的博客-CSDN博客
找到了方法。
使用命令行lupdate xxx.pro
(这样就生成.ts文件了)(可能需要配置环境变量:便于寻找lupdate.exe)
在qt语言家中打开.ts文件
手动进行译文的写入
之后发布全部,就生成对应的.qm文件了。
在程序中的使用:
QTranslator *m_pTranslator;
QTranslator类为文本输出提供国际化支持 。
QTranslator最常见的用途是:加载翻译文件,并使用QCoreApplication::installTranslator()
安装它。
必须在应用程序的小部件之前创建translator。
connect(m_pBtnChangeLanguage, &QPushButton::clicked, this, [=]{
m_bDisplayChinese = !m_bDisplayChinese;
if (m_bDisplayChinese)
{
m_pTranslator->load(":/language/langChinese.qm");
} else {
m_pTranslator->load(":/language/langEnglish.qm");
}
qApp->installTranslator(m_pTranslator);
retranslateUi();
});
参考文章:(1条消息) Qt 翻译之多语言文件.qm的生成和使用_艾米莉亚糖的博客-CSDN博客