翻译

翻译 Angular $localize 文件,然后检查每一行

ng extract-i18n 默认会写入 XLIFF,其中插值作为 <x> 标签,复数形式在内部。删除标签会导致 ng build --localize 失败。KAERIS 会为每个单元写入一个 <target> 并保留每个标签和 id。

KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文

插值保留为 <x> 标签

每个标签的 equiv-text 都被保留,因此构建过程仍然知道 {{ name }} 是什么。

之前src/locale/messages.xlf
<trans-unit id="welcome" datatype="html">
  <source>Welcome back, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</source>
</trans-unit>
<trans-unit id="save" datatype="html">
  <source>Save changes</source>
</trans-unit>
之后src/locale/messages.de.xlf
<trans-unit id="welcome" datatype="html">
  <source>Welcome back, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</source>
  <target>Willkommen zurück, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</target>
</trans-unit>
<trans-unit id="save" datatype="html">
  <source>Save changes</source>
  <target>Änderungen speichern</target>
</trans-unit>

KAERIS 的处理方式

问题

它也读取 --format json 吗?

是的。ng extract-i18n --format json 写入的 JSON 会逐个键进行翻译,包括 ICU 块。

支持 XLIFF 2.0 吗?

暂不支持。Angular 的默认 xlf 是 XLIFF 1.2,它是可以工作的。

免费吗?

是的,无需账户:每个文件 10,000 个字符,每次运行最多 8 种语言。免费的 API 密钥可将文件限制提高到 50,000 个字符。一次性付费 79 美元,使用您自己的 OpenRouter 密钥;月度套餐起价为 19 美元。价格

我可以在终端或 CI 中运行它吗?

可以。pip install kaeris,然后使用您的文件和 --langs de,ja 运行 kaeris translate。当有新密钥时,GitHub Action 会打开一个 pull request。文档