Qt6 国际化(支持多语言特性)

一、参考链接

Qt中,软件多语言国际化翻译的方法与步骤 - 知乎 (zhihu.com)

QT 避坑指南:如何优雅的使用 QtCreator 格式化代码 - 墨天轮 (modb.pro)

二、Qt 国际化支持

1. Qt 项目(CMake)设置国际化支持_qt cmake 国际化-CSDN博客

#生成ts文件的文件夹
set(TS_DIR "${CMAKE_SOURCE_DIR}")

set(TS_FILES
    "${TS_DIR}/qt3_en_US.ts"
    #"${TS_DIR}/aidiapp.ts"
    #"${TS_DIR}/aidi_zh_CN.ts"
    #"${TS_DIR}/aidi_zh_TW.ts"
    #"${TS_DIR}/aidi_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()

 2. 在源代码和UI上,添加“中文字符串”;

3. 主界面菜单 -> 构建 -> 执行CMake

4. 修改 qt3_en_US.ts 文件,完成翻译

5. 在 Qt Creator 中的 Terminal 控制台中,执行:lrelease qt3_en_US.ts,生成或更新 'qt3_en_US.qm';

6. 在 Qt Creator 中,添加 qrc 资源文件,在资源文件中,添加前缀 “/i18n”,在前缀中,添加文件 “qt3_en_US.qm”;

7. 编译并运行程序即可;

代码:translator.load(":/i18n/" + baseName)

可能需要安装 VulkanSDK

注意:

也可以直接使用(不创建资源文件):

translator.load("qt3_en_US.qm") 

但需要保证正确生成 qt3_en_US.qm 

三、Qt 国际化后,按钮自动适配字符串长度

在 Qt 设计师中,设置 QPushButton 的 SizePolicy 水平策略属性为 Preferred 即可;

四、如何正确获取 “lupdate 需要的字符串”

  • tr(""):适用于 类内部;
  • QCoreApplication::translate:适用于 类外部

例如:

#define STR_Arch tr("进程架构") (这样 tr 调用出错)

也可以表示为:

#define STR_Arch QCoreApplication::translate("YourContext", "进程架构")

"YourContext" 应该被替换成一个合适的上下文名,这通常是与翻译字符串相关的类名。如果您不在类中,您可以使用任何适当的字符串来区分不同的翻译上下文。

五、CMakeLists.txt 末尾添加以下代码自动调用 lupdate

set(TS_FILES
    "./qt3_en_US.ts"
    # 其他 .ts 文件...
)

file(GLOB_RECURSE SOURCES "*.cpp" "*.h" "*.ui")

find_program(LUPDATE_EXECUTABLE lupdate)

if(NOT LUPDATE_EXECUTABLE)
    message(SEND_ERROR "lupdate tool not found")
endif()

foreach(_ts_file ${TS_FILES})
    execute_process(
        COMMAND ${LUPDATE_EXECUTABLE} ${SOURCES} -ts ${_ts_file}
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    )
endforeach()

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt Installer Framework 是一个用于创建跨平台安装程序的工具。它是由 Qt 公司开发的,可用于构建 Windows、macOS 和 Linux 上的安装程序。Qt Installer Framework 允许开发者创建自定义的安装界面,支持包括自动更新和卸载在内的高级功能,使得应用程序的安装和升级变得更加方便。此外,Qt Installer Framework 还提供了强大的脚本语言和插件系统,以便开发者可以轻松地添加自己的定制功能。 ### 回答2: Qt Installer Framework是一个开源的安装包框架,用于创建跨平台的安装程序。它是由Qt官方社区开发的,用于帮助开发人员轻松地制作各种类型的安装程序。 Qt Installer Framework具有很多强大的特性。首先,它支持主流操作系统,包括Windows、macOS和Linux。这使得开发人员可以使用相同的框架来创建针对不同平台的安装程序,极大地简化了开发和维护的工作。 其次,Qt Installer Framework提供了一个灵活的界面,开发人员可以轻松地定制安装程序的界面。他们可以选择添加自定义的图标、背景图像和品牌标志等来打造与自己应用程序一致的安装体验。 此外,Qt Installer Framework还支持自定义安装组件,开发人员可以将安装的内容分组到不同的组件中,根据用户需求进行选择性安装。这对于大型应用程序来说非常有用,因为用户可以根据自己的需求选择安装哪些组件,从而减少不必要的空间占用。 另一个重要的特性Qt Installer Framework支持安装程序的自动升级。开发人员可以配置安装程序,使其能够检测并下载更新,并在用户同意的情况下自动升级程序。这可以确保用户始终使用最新版本的应用程序,提供更好的用户体验以及安全性。 综上所述,Qt Installer Framework是一个功能强大且易于使用的安装包框架,可以帮助开发人员轻松创建跨平台的安装程序。它的灵活性和可定制性使得开发人员可以根据自己的需求创建出符合用户期望的安装体验。 ### 回答3: Qt Installer Framework(简称QtIFW)是一个创建安装程序的开源工具集,用于在Windows、Mac和Linux等操作系统上安装Qt应用程序。 Qt Installer Framework提供了一个易于使用的图形界面,允许开发者自定义安装向导和界面。它支持各种高级功能,如自动更新和升级、安装前检查依赖项、注册表设置、缓存管理等。 Qt Installer Framework的核心概念是组件。开发者可以将应用程序划分为多个组件,并在安装时选择安装哪些组件。这样,用户可以自定义安装过程,只选择需要的功能和资源,减少安装空间和时间。 Qt Installer Framework还支持语言安装,用户可以选择在安装过程中使用哪种语言,提供了灵活的国际化功能。 此外,Qt Installer Framework还支持数字签名验证和认证,确保安装程序的完整性和可信性。 对于开发者来说,Qt Installer Framework提供了灵活的定制选项,可以自定义安装界面和过程,满足特定需求。开发者可以通过简单的脚本语言,定义安装程序的行为。 总的来说,Qt Installer Framework是一个功能强大、易于使用的工具集,为开发者提供了创建跨平台安装程序的便利,提升了用户体验和应用程序的可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值