【问题标题】:run lupdate and lrelease command from qt creator in linux在 linux 中从 qt creator 运行 lupdate 和 lrelease 命令
【发布时间】:2020-08-03 07:24:13
【问题描述】:

我想在构建时从 qtcreator 运行 lupdate 和 lrelease 命令。 是否可以? 如果是那怎么办?

注意:我正在使用来自 linux 终端的 lupdate 和 lrelease 命令,它工作正常,但我想在构建时从 qt creator 运行这些命令。

【问题讨论】:

    标签: qt qml qt-creator


    【解决方案1】:

    假设您使用的是 qmake,您应该使用 TRANSLATIONS 变量:

    https://doc.qt.io/qt-5/qmake-variable-reference.html#translations

    This页面有一些例子:

    HEADERS         = main-dlg.h \
                      options-dlg.h
    SOURCES         = main-dlg.cpp \
                      options-dlg.cpp \
                      main.cpp
    FORMS           = search-dlg.ui
    TRANSLATIONS    = superapp_dk.ts \
                      superapp_fi.ts \
                      superapp_no.ts \
                      superapp_se.ts
    

    Hello tr() Example 更详细地解释了该过程:

    请注意,文件扩展名是 .ts,而不是 .qm。 .ts 翻译 源格式设计用于在应用程序的 发展。程序员或发布经理运行 lupdate 程序 使用提取的源文本生成和更新 TS 文件 从源代码。翻译人员使用读取和更新 TS 文件 Qt Linguist 添加和编辑他们的翻译。

    [...]

    翻译完成后,lrelease 程序将用于 将 TS 文件转换为 QM Qt 消息文件格式。 QM 格式 是一种紧凑的二进制格式,旨在提供非常快速的查找 表现。 lupdate 和 lrelease 都读取了项目的所有源码 和头文件(在 HEADERS 和 SOURCES 行中指定) 项目文件)并提取出现在 tr() 函数中的字符串 来电。

    lupdate 用于创建和更新消息文件(hellotr_la.ts 在这种情况下)以使它们与源代码保持同步。这是安全的 随时运行 lupdate,因为 lupdate 不会删除任何信息。 比如可以放在makefile里面,那么TS文件就是 每当源更改时更新。

    【讨论】:

    • 是的,您上面的建议是正确的。但这不是我所期待的。我的期望是从 qt creator 而不是分别从 linux 终端运行命令行工具 lupdate 和 lrelease。在构建时,我希望这些命令行工具能够运行并生成 .ts 和 .qm 文件。有可能吗??
    • 听起来和您所期望的完全一样。你试过了吗?我已经用另一个文档页面的引用更新了答案,该页面更详细。
    【解决方案2】:

    在您的 Qt Creator 中,转到 Projects > Build Steps 在那里,您可以使用命令 lupdatelrelease

    添加两个自定义流程步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2018-02-16
      • 2020-07-06
      • 2012-02-01
      • 2011-01-10
      相关资源
      最近更新 更多