这里讲一讲我实现中英文切换的过程。。。
目录
一、国际化准备——pro文件
这个步骤是为了生成翻译文件,格式为ts后缀的。
先在pro文件中添加如下的代码。
TRANSLATIONS += language/tr_zh.ts \
language/tr_en.ts
然后,点击工具——>外部——>Qt语言家——>更新翻译,生成ts文件。
最后,你在相应的文件夹下,就会看到生成的.ts文件。
二、国际化准备——开始名词翻译
首先,打开Linguist翻译文件编辑软件。注意:有时候你安装的Qt版本较多,比如我。。。需要选择可以正常使用的版本打开ts文件,否则软件会崩溃。这个没关系,一个个试就行
然后,用软件打开ts文件,软件使用非常简洁明了,很容易上手,具体用到的页面功能如图。
先选文件,后选需要翻译的字符串,再进行翻译就行。当全部√都是绿色,说明能翻译的全翻译完了。
当然,没翻译完也可以使用。只是没翻译的不会切换语言而已。
如图,在翻译中输入你的译文,然后把那个问号点击为√,这是告诉软件这个字符串已经翻译过了。
最后,点击如图的发布,就会生成我们需要的翻译文件.qm格式。
三、国际化准备——添加qm文件
在Qt中添加资源,再把qm文件添加进去。如下右图就是添加后的状态。(这步好像是必须的)
四,国际化应用
经过验证,只需要如下几句话即可实现翻译。_zh是翻译为中文,_en是翻译为英文。两者都需要,否则切换不回来了,哈哈。
切换为中文,就是把中文再复制一遍就行,机械复制,过程相同。
注意:一定要确保导入翻译文件那里地址正确,这个地址是相对于资源文件而言的。如果你后面始终搞不对,最笨的方法就是按照我前面的文件结构构件资源目录。
//.h头文件中包含如下
#include <QTranslator>
QApplication *App;
//cpp文件中
// 槽函数:切换中文
void MainWindow::OnChange2ChineseLanguage(void)
{
QTranslator translator;
//导入翻译文件zh结尾是从英文切换为中文的
translator.load(":/language/tr_zh.qm");
App->installTranslator(&translator);
//更新界面
ui->retranslateUi(this);
}