实战Qt开发WordBN笔记软件#05 实现国际化多语言功能;生成和编辑ts文件,发布qm文件

01 背景

【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用Qt Quick(QML)开发语言。

本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言,从零开始开发一套真正的程序,包括国际化、版本发布、安装包制作等项目实战技巧。

本课程重点不是教你如何开发一个笔记软件,而是教你如何利用Qt/QML+C++开发一个完整的程序,整套课程规划有40+章节,敬请关注!


本章内容《#05 实现国际化多语言功能;生成和编辑ts文件,发布qm文件》

02 课程目标

  • 修改CMakeLists.txt使自动生成ts文件。
  • 学会使用Qt语言家工具,翻译ts文件,发布qm文件。
  • 加载qm多语言文件,实现中文界面功能。

03 知识点

  • .ts文件:.ts 文件通常与翻译(Translation)和国际化(Internationalization)相关,.ts 文件是Qt的翻译源文件(Translation Source file),它们包含了应用程序中用于翻译的字符串。
  • .qm文件:.qm文件是Qt国际化过程中生成的二进制翻译文件,用于存储已翻译的文本字符串。
  • Qt Linguist工具:Qt Linguist是Qt开发框架中的一个强大工具,专门用于开发人员在编写多语言应用程序时进行本地化和翻译。在Windows下工具名称是linguist.exe。

04 编辑CMakeLists.txt文件,使能自动生成ts翻译文件

  • 在YourWordBN文件夹下,新建resource/translations文件夹:
  • 修改CMakeLists.txt文件,添加以下代码生成ts翻译文件:
# 生成ts文件的文件夹
set(TS_DIR "${CMAKE_SOURCE_DIR}/resource/translations")
set(TS_FILES
    "${TS_DIR}/zh_CN.ts"
    "${TS_DIR}/zh_TW.ts"
    "${TS_DIR}/en_US.ts"
)
# 模拟更新和发布的命令代码
find_program(LUPDATE_EXECUTABLE lupdate)
find_program(LRELEASE_EXECUTABLE lrelease)
# 生成ts和qm文件
foreach(_ts_file ${TS_FILES})
    execute_process(
        COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_SOURCE_DIR} -ts ${_ts_file})
    execute_process(
        COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file})
endforeach()
  • 每次有新增需要翻译文本,重新执行CMake,自动生成ts翻译文件:

  • 生成翻译文件列表:

05 翻译ts文件,生成zh_CN.qm文件

  • 因为界面上默认使用英文文本,所以只需要翻译中文文本。
  • 使用Qt语言家程序(linguist.exe)打开zh_CN.ts文件,找到指定条目进行翻译,如下图例子:

  • 保存,点击发布,生成qm文件。

06 程序加载zh_CN.qm文件

  • 修改CMakeLists.txt文件,在 qtaddqml_module 位置添加以下代码:
RESOURCES resource/translations/zh_CN.qm
  • 使用QTranslator加载qm文件,并注册到qApp,核心加载语言文件代码如下:
#include <QTranslator>
#include <QApplication>

static QTranslator theTranslator;

QCoreApplication::instance()->removeTranslator(&theTranslator);
theTranslator.load(":/YourWordBN/resource/translations/zh_CN.qm");
QCoreApplication::instance()->installTranslator(&theTranslator);
  • 最终程序执行中文效果:

07 课后练习

  • 增加更多菜单顶,重新生成ts文件,翻译文本和发布生成新qm文件。

 

-End-

#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。

本人小杨哥:

超20年C++开发经验;著名开源产品高并发C++应用服务器MYCP作者;开源企业即时通讯软件Entboost首席架构师;开发有WordBN字远笔记等共享软件产品。

长期招收C++开发学员,欢迎关注咨询。

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天恩软件工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值