Bootstrap

在VS中实现QT的多国语言翻译

QT的多国语法翻译非常的实用,可以将开发完成的软件,直接翻译成另外一种语言,而不需要更改代码,也就是说一次开发可以同时发布多个语言版本的软件。

  • 翻译过程
  1. 创建翻译文件:从代码中自动提取出能翻译的文本,生成中间ts文件。
  2. 翻译元素:编辑ts文件,手动翻译每一项。
  3. 发布(lrelease)翻译好的ts文件,生成qm文件。
  4. 使用qm文件,翻译相应的文本。
  • 注意:能被翻译得文本需要使用特殊标记
    1.使用QObject::tr()或者QApplication::translate()修饰。例如
label.setText(tr("label"));
pushButton->setText(QApplication::translate("QtDemo", "pushButton"));

翻译详细过程

  1. 创建新的翻译文件
    右击工程 - > create new translation file
    在这里插入图片描述
  2. 选择翻译成什么语言:这里从英文翻译到中文
    在这里插入图片描述
  3. 双击打开自动生成ts文件,翻译文本
    在这里插入图片描述
    在这里插入图片描述
  4. 发布翻译好的ts文件,自动生成.qm文件(默认在工程目录下)。
    在这里插入图片描述

在这里插入图片描述

  1. 使用.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
;