You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

qt_create_translation未更新.ts文件也未生成.qm文件问题

问题原因与解决方案

核心原因

你的qt_create_translation调用参数格式错误,CMake无法正确识别要更新的TS文件和扫描的源文件,导致lupdate(提取翻译字符串)和lrelease(生成QM文件)两个步骤都没有被正确触发。

修正步骤

修改CMakeLists.txt中的翻译相关代码,使用CMake关键字明确区分源文件和TS文件,并将生成的QM文件关联到可执行目标:

find_package(Qt6 REQUIRED LinguistTools)

# 正确配置翻译提取与QM生成
qt_create_translation(QM_FILES
    SOURCE_FILES ${PROJECT_SOURCE_DIR}/main.cpp  # 指定要扫描的源文件,也可用${PROJECT_SOURCE_DIR}扫描整个目录
    TS_FILES ${PROJECT_SOURCE_DIR}/translation_ru.ts
)

# 将QM文件添加到目标依赖,确保构建时自动生成
target_sources(TestQtWidgetsProject PRIVATE ${QM_FILES})

额外说明

  1. 更新TS文件:运行构建后,lupdate会自动扫描指定的源文件,提取QApplication::tr包裹的字符串并写入translation_ru.ts,无需手动编辑TS文件内容。
  2. 触发手动更新:如果需要单独更新TS文件而不构建整个项目,可以执行CMake的update_translations目标(例如终端运行make update_translations,或在IDE中找到该目标执行)。
  3. 扫描目录范围:若要扫描整个项目目录的源文件,将${PROJECT_SOURCE_DIR}/main.cpp替换为${PROJECT_SOURCE_DIR}即可,CMake会自动遍历目录下的相关源文件。

内容的提问来源于stack exchange,提问作者AvidCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:05:24