文章目录
- Qt Linguist
- 简介
- 使用流程
- 1. 使用tr包裹字符串
- 2. 生成翻译文件
- 3. 打开翻译文件,并翻译
- 4. 发布翻译
- 5. 加载语言文件
- 6. 动态切换语言
- 各国语言代码和名称表
Qt Linguist
简介
Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。
发布者:承担了全面发布应用程序的责任。通常他们协调开发者和翻译者的工作,可以是哟换那个lupdate工具同步源代码,进行翻译,使用lrelease同步工具为发布应用程序创建运行时使用的翻译文件。
翻译者:可以使用Qt Linguist 工具翻译应用程序的文本。当然,这必须要有专业的翻译知识。
开发者:必须创建Qt应用程序能够使用的翻译文本。也应该帮助翻译者识别短语出现的场景。
使用流程
1. 使用tr包裹字符串
#include "Widget.h"
#include <QApplication>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
Widget w;
w.resize(200, 200);
auto btn = new QPushButton(QObject::tr("pushButton"), &w);
w.show();
return a.exec();
}
2. 生成翻译文件
- 通过cmd命令生成
G:\qtproject\linguistTest>lupdate main.cpp widget.cpp widget.h -ts test_ch_ZN.ts test_en_GB.ts
这个地址是cmakelist所在地址
- 如果是带ui的项目cmd命令
G:\qtproject\linguistTest2>lupdate main.cpp widget.cpp widget.h widget.ui -ts linguistTest2_zh_CN.ts
3. 打开翻译文件,并翻译
- 打开Linguist
- 点文件>打开>进入G:\qtproject\linguistTest(你刚才的代码文件夹)>选中2个ts>打开
弹出来的选项点确定>语言选择简体中文>确定 - 选择pushButton
- 填上要翻译的文字,点黄色的问号打勾
- 点保存
4. 发布翻译
- 在G:\qtproject\linguistTest(代码文件夹)打开cmd命令
- 输入命令
lrelease test_ch_ZN.ts test_en_GB.ts
5. 加载语言文件
#include "Widget.h"
#include <QApplication>
#include <QPushButton>
#include <QTranslator>
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
QTranslator translator;
// 加载中文语言文件,如果是英文的就是test_en_GB,你自己在创建文件时定义的文件名
if (!translator.load("test_ch_ZN", "../../")) // 相对于debug文件夹的路径,可以不带.qm后缀
qDebug() << "翻译文件加载失败";
// 将加载的语言文件安装到应用程序
a.installTranslator(&translator);
Widget w;
w.resize(200, 200);
auto btn = new QPushButton(QObject::tr("pushButton"), &w);
w.show();
return a.exec();
}