当前位置: 首页 > news >正文

qt 中英文翻译 如何配置和使用

qt 中英文翻译 如何配置和使用

1. 在.pro文件中添加TRANSLATIONS

在你的 .pro 文件(比如 HYAC_AAF_HOST.pro)中添加:

TRANSLATIONS +\= zh\_CN.ts en\_US.ts

image

这会告诉Qt项目你要支持中文和英文。

2. 提取可翻译文本(生成ts文件)

在项目根目录下打开Qt命令行(或Qt Creator自带终端),运行:

lupdate HYAC_AAF_HOST.pro

image

这会自动扫描所有tr()和.ui文件,把可翻译的内容提取到zh_CN.ts和en_US.ts。

image

3. 编辑翻译(用Qt Linguist)

用Qt Linguist(Qt自带的图形工具)打开zh_CN.ts和en_US.ts,把每条中文/英文都翻译好,然后保存。

就这么选择就好

image

image

image

4. 生成qm文件

在命令行运行:

lrelease HYAC_AAF_HOST.pro

或者

点击Qt Linguist发布

image

这会把zh_CN.ts和en_US.ts编译成zh_CN.qm和en_US.qm,这两个文件就是程序运行时用的语言包。

5. 放置qm文件

把zh_CN.qm和en_US.qm放到你的可执行文件同目录,或者你代码里指定的路径。

如果不知道路径,可以用下面的代码得知具体路径

qDebug() << "Current dir:" << QDir::currentPath();
qDebug() << "App dir:" << QCoreApplication::applicationDirPath();

6.添加如下代码

比如我是用comboBox_language来切换中英文的。我只用了en_us.qm作为翻译成英文

/*中英文翻译*/connect(ui->comboBox_language, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this](int index) {if (index == 0) { // 中文qDebug() << "切换为中文";qApp->removeTranslator(&translator);translator.load("zh_CN.qm", "");qApp->installTranslator(&translator);} else { // 英文qDebug() << "Current dir:" << QDir::currentPath();qDebug() << "App dir:" << QCoreApplication::applicationDirPath();qDebug() << "切换为英文";qApp->removeTranslator(&translator);bool ok = translator.load("en_US.qm", "");qDebug() << "load qm:" << ok;qApp->installTranslator(&translator);}ui->retranslateUi(this); // 让界面刷新为新语言});
http://www.lryc.cn/news/590008.html

相关文章:

  • AR智能巡检:电力行业数字化转型的“加速器”
  • 二分查找法
  • 力扣面试150(31/150)
  • 坐标系和相机标定介绍,张正友标定法原理,opencv标定
  • C++:现代 C++ 编程基石,C++11核心特性解析与实践
  • NLP:LSTM和GRU分享
  • NO.6数据结构树|二叉树|满二叉树|完全二叉树|顺序存储|链式存储|先序|中序|后序|层序遍历
  • 从零开始的云计算生活——番外4,使用 Keepalived 实现 MySQL 高可用
  • PyTorch 损失函数详解:从理论到实践
  • 《通信原理》学习笔记——第二章
  • Qt小组件 - 7 SQL Thread Qt访问数据库ORM
  • qt udp接收时 丢包
  • FreeRTOS学习笔记之任务调度
  • 《机器学习数学基础》补充资料:标准差与标准化
  • 《Qt信号与槽机制》详解:从基础到实践
  • Qt中实现文件(文本文件)内容对比
  • 若依框架下前后端分离项目交互流程详解
  • ScratchCard刮刮卡交互元素的实现
  • MR 处于 WIP 状态的WIP是什么
  • Django+Celery 进阶:Celery可视化监控与排错
  • 手撕Spring底层系列之:IOC、AOP
  • hadoop 集群问题处理
  • gem install报错解析
  • mac电脑无法阅读runc源码
  • UE5多人MOBA+GAS 24、创建属性UI(一)
  • 从 “洗澡难” 到 “洗得爽”:便携智能洗浴机如何重塑生活?
  • RK3566-EVB开发板如何新建一个产品分支
  • Jetpack Compose 中 Kotlin 协程的使用
  • 基于Hadoop与LightFM的美妆推荐系统设计与实现
  • Chrome紧急更新,谷歌修复正遭活跃利用的关键零日漏洞