目的
就是想让QT编的软件支持中英文。
情况
1、首先配置项目的pro文件:
这样就会生成相应的翻译配置文件,当前是:
translate1_cn.ts:中文的配置文件,因为一般默认就是中文,所以一般中文的翻译文件是不需要的
translate1_en.ts:英文的配置文件
2、lupdate 生成ts文件
通过执行如下命令:
lupdate imageAnalyse.pro
生成:
translate1_cn.ts、translate1_en.ts这两个文件。
之后,更改了代码,添加了需要翻译的字符,可以直接用这一个命令进行更新
如图所示:
3、通过Linguist进行翻译
4、通过lrelease ts文件 生成 压缩的qm文件
5、代码中引用翻译文件进行翻译工作
void Translate::translate(QApplication &app)
{
qDebug("enter function Translate::translate");
QString lang = this->getLanguage();
QString langFile;
if(lang == "zh_cn")
{
langFile = QString(":/translate/translate1_cn.qm");
}
else if(lang == "en_us")
{
langFile = QString(":/translate/translate1_en.qm");
}
else
{
langFile = QString(":/translate/translate1_cn.qm");
}
bool res = m_trans->load(langFile);
if(!res)
{
QString error = langFile+" load error!";
qWarning(error.toStdString().c_str());
}
app.installTranslator(m_trans);
qDebug("exit function Translate::translate lang=%s", lang.toStdString().c_str());
}
效果
英文配置的情况:
中文配置的情况:
总结
中英文对应,就是中英文一一对应,并不是我一开始想的自动翻译,这就好像键值对一样,就是这么的简单。
相应代码链接:https://download.csdn.net/download/maokexu123/89658658