在本页

使用 ltext2id

ltext2id 命令行工具可将使用基于文本翻译的项目转换为使用基于 ID 的翻译。它会扫描项目树,更新源代码以调用基于 ID 的翻译 API,并相应调整相关的TS 文件。如果转换失败,源代码将在失败位置标注//ltext2id error:

注意: 运行ltext2id 之前,请做好完整备份(或在干净的 Git 分支上运行)。该工具会修改源文件和TS 文件。

为获得最佳效果,请将源文件和TS 文件都包含在传递给工具的项目根目录中,以便代码和翻译之间的更新保持一致。

ltext2id 语法

ltext2id [options] [project-root]

其中:

  • options 指一个或多个ltext2id 选项
  • project-root 是要递归处理的目录。

要查看最新帮助,请输入

ltext2id -help

ltext2id 选项

选项操作
-help显示最新帮助信息并退出。
-no-labels不为基于 ID 的翻译生成标签。默认情况下,消息上下文被用作标签,以便条目在Qt Linguist 中保持相似的可视化效果。
-sort-messages在 TS 文件中按上下文字母顺序排列信息。
-source-utf16将源文件视为 UTF-16 编码(默认:false)。
-quiet抑制进度输出。
-only-meta-id只通过插入元字符串建议 ID;执行基于 ID 调用的实际转换。
-no-auto-id缺少元字符串 ID 时,不自动生成 ID。没有元 ID 的翻译函数调用将被忽略。
-version显示ltext2id 的版本并退出。

示例

将项目转换为基于 ID 的翻译

在项目根目录下运行该工具。该目录下的源代码和TS 文件将就地更新。

ltext2id path/to/project

只生成 ID 建议(不修改代码)

使用-only-meta-id 注入元字符串 ID 建议,而无需重写对基于 ID 的 API 的调用。因此,翻译调用会以'//~ meta-id <id>'(cpp)元字符串注释,指定建议的 ID(元 ID)。

ltext2id -only-meta-id path/to/project

禁用标签生成

如果不想在Qt Linguist 中将上下文镜像为标签,则应阻止标签生成:

ltext2id -no-labels path/to/project

避免自动生成 ID

对于缺少元 ID 的调用,即已经使用元字符串"//~ meta-id <id>"(cpp)指定了 ID 的调用,跳过自动生成:

ltext2id -no-auto-id path/to/project

处理 UTF-16 源文件

如果您的源文件是 UTF-16 编码,请启用该选项:

ltext2id -source-utf16 path/to/project

退出状态

ltext2id 会在失败时(例如,在转换文件时遇到无法恢复的错误)返回一个非零的退出代码。检查标有//ltext2id error: 的就地源代码注释,修复其余问题。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.