gtx-cli@2.10.0
概述
gtx-cli 2.10.0 新增了对 JSON 和 YAML 翻译文件中键级元数据的支持。这是一种针对每个键的翻译说明,让你能够更细粒度地控制各个字符串的翻译方式。
此前,以键组织的文件的翻译上下文仅在项目级别生效。样式控制、术语表条目以及 locale 特定规则都会统一应用到所有内容上。键级元数据让你可以更进一步,将具体的翻译提示直接附加到文件中的各个键上。
形式如下
你需要创建一个与源文件并列的配套元数据文件,并保持与源文件相同的键结构。在叶子节点这一层,你提供的不再是字符串,而是包含翻译说明的元数据对象:
{
"nav": {
"home": "Home",
"bank": "Bank",
"save": "Save"
},
"alerts": {
"new_lead": "You have a new lead!"
}
}{
"nav": {
"home": {
"context": "Baseball term — home plate on a diamond. NOT a house."
},
"bank": {
"context": "Riverbank — the side of a river. NOT a financial institution."
},
"save": {
"context": "Sports term — a goalkeeper preventing a goal. NOT saving data.",
"maxChars": 12
}
},
"alerts": {
"new_lead": {
"context": "Sales/CRM context. A 'lead' is a potential customer.",
"maxChars": 30
}
}
}配套文件必须与源文件位于同一目录中,并遵循命名约定 {name}.metadata.json (YAML 文件则为 .metadata.yaml) 。当你运行 npx gt translate 时,CLI (命令行界面) 会自动读取该文件。
借助针对每个键提供的上下文,"Bank" 会被翻译为 "Ribera" (河岸) ,而不是可能的 "Banco" (金融机构) ;"Save" 会变成 "Parada" (守门员的扑救) ,而不是 "Guardar" (存储) 。对于已经没有歧义的字符串,你根本不需要提供元数据——只需为能从中受益的键添加条目。
支持的字段
我们目前支持三个元数据字段:
context— 针对特定字符串的翻译说明。这是影响最大的字段:可用它来消除歧义、指定领域术语,或澄清意图。maxChars— 翻译结果的最大字符数限制。这是尽力而为的:引擎会使用更短的同义词和更简洁的措辞来适配,但不会将翻译截断到不可行的长度。sourceCode— 字符串周围的源代码上下文。它可让你向引擎展示该字符串在代码库中的使用位置和方式,从而帮助它在语气、术语和措辞上做出更恰当的判断。
所有字段都可以按键单独选择是否填写。有关各字段的完整说明和示例,请参阅 键级元数据参考。
YAML 支持
同样的方法也适用于 YAML 文件。创建一个键结构相同的配套 .metadata.yaml 文件:
ui:
buttons:
save:
context: "Sports term — a goalkeeper's save. NOT saving data."
draft:
context: "Beer on tap, as in 'draft beer'. NOT a document version."
labels:
date:
context: "The edible fruit of the date palm. NOT a calendar date."
chips:
context: "British English: hot fried potato strips (french fries). NOT crisps or microchips."