QT的多国语法翻译非常的实用,可以将开发完成的软件,直接翻译成另外一种语言,而不需要更改代码,也就是说一次开发可以同时发布多个语言版本的软件。
- 翻译过程
- 创建翻译文件:从代码中自动提取出能翻译的文本,生成中间ts文件。
- 翻译元素:编辑ts文件,手动翻译每一项。
- 发布(lrelease)翻译好的ts文件,生成qm文件。
- 使用qm文件,翻译相应的文本。
- 注意:能被翻译得文本需要使用特殊标记
1.使用QObject::tr()
或者QApplication::translate()
修饰。例如
label.setText(tr("label"));
pushButton->setText(QApplication::translate("QtDemo", "pushButton"));
翻译详细过程
- 创建新的翻译文件
右击工程 - > create new translation file
- 选择翻译成什么语言:这里从英文翻译到中文
- 双击打开自动生成ts文件,翻译文本
- 发布翻译好的ts文件,自动生成.qm文件(默认在工程目录下)。
- 使用.qm文件,翻译文本。
QTranslator *translator = NULL;
translator = new QTranslator;
if (translator->load("qtdemo_zh.qm"))
{
qApp->installTranslator(translator);
}
翻译完成之后还需要从新绘制界面
void QtDemo::changeEvent(QEvent *e)
{
if(e->type() == QEvent::LanguageChange)
{
ui.retranslateUi(this