QT入门学习(二):QT国际化

前言

接下来学习下QT的国际化,QT国际化主要依赖于QTranslator类来实现的。

首先让我们概括的看下步骤:

  1. 在项目的pro文件中引入ts文件
  2. 写代码引用翻译
  3. 点击QT Createor 菜单栏中的工具 -》 外部 -》Qt语言家 -》更新翻译,这样会在项目目录自动生成ts文件(如果存在就更新该文件)
  4. 使用Linguist工具来编辑ts文件
  5. 使用Linguist工具发布ts文件,将ts文件编译成qm文件

假如添加新的国际化字符串,需要从2开始重复操作。

pro 引入翻译

在项目的pro文件中添加一行:

1
2
TRANSLATIONS = chinese.ts \
english.ts

可以写多个ts文件,每个ts文件对应一种语言。

代码引入翻译

在代码的入口添加一下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "mainwindow.h"

#include <QApplication>
#include <QTranslator>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//加载翻译类,必须在窗口之前创建
QTranslator* trans = new QTranslator;
//加载qm文件
trans->load("E:/QT/Linguist_learning/english.qm");
//安装翻译
a.installTranslator(trans);


MainWindow w;
w.show();
//使用翻译
//QCoreApplication::translate 的参数说明:
// 第一个参数:指的是上下文,也可以把它理解成命名空间
// 第二个参数:指的是原文
// 返回值:翻译后的文字
qDebug()<< QCoreApplication::translate("QObject", "hello_msg");
qDebug() <<QCoreApplication::translate("main", "main_tr");
return a.exec();
}

这样的话,QT会根据代码自动在ts文件中添加这两个翻译,下一步我们使用linguist.exe进行修改。

创建或更新翻译

然后选择更新翻译。这样就生成了ts文件,如果存在ts文件就会更新它。

编辑ts文件

打开linguist.exe,选择ts文件。我选择的是english.ts文件。

编辑完之后,点击文件=》发布,就把ts文件编译成qm文件了。

运行程序

可以发现应用程序输出了对应的翻译文字

评论