本页内容

使用 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的API调用情况下,注入元字符串ID建议。因此,翻译调用会被标注为'//~ 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>' 指定了ID的调用),请跳过自动生成(C++):

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.