翻译

翻译 XLIFF 1.2 文件

XLIFF 将源文本和翻译并排放置,中间夹杂着内联标签。移动或删除一个标签就会导致应用程序中的占位符或链接丢失。KAERIS 会保留这些标签,并在丢失时通知您。

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

XLIFF 1.2 文件的构建方式

每个 <trans-unit> 包含一个 <source> 和一个 <target>。文本内部,<x/>、<g> 和 <ph> 代表变量和标记。Angular 的 messages.xlf 就是这种格式。

源文件messages.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" target-language="de" datatype="plaintext" original="app">
    <body>
      <trans-unit id="welcome">
        <source>Welcome back, <x id="1" ctype="x-name"/>!</source>
      </trans-unit>
      <trans-unit id="terms">
        <source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
      </trans-unit>
    </body>
  </file>
</xliff>

在 XLIFF 翻译中需要注意的事项

实际运行:翻译为德语并进行检查

一次实际运行,27 October 2026,未手动编辑任何内容:kaeris translate messages.xlf --langs de,使用 kaeris 0.2.35,耗时 1.9 秒,模型为 google/gemini-2.5-flash-lite,免费套餐的默认模型。下方是它生成的德语文件以及 kaeris check 的检查结果。

德语结果de/messages.xlf
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file original="app" source-language="en" target-language="de" datatype="plaintext">
    <body>
      <trans-unit id="welcome">
        <source>Welcome back, <x id="1" ctype="x-name" />!</source>
        <target state="translated">Willkommen zurück, <x id="1" ctype="x-name" />!</target>
      </trans-unit>
      <trans-unit id="terms">
        <source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
        <target state="translated">Ich akzeptiere die <g id="2" ctype="x-link">Nutzungsbedingungen</g>.</target>
      </trans-unit>
    </body>
  </file>
</xliff>
kaeris 检查exit code 0
$ kaeris check --source messages.xlf --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

KAERIS 的处理方式

分三步运行

  1. 安装 CLI

    运行 pip install kaeris。

  2. 翻译文件

    运行 kaeris translate src/locale/messages.xlf --langs de,ja。

  3. 检查结果

    打开免费检查页面并上传翻译后的文件。包含源文本和目标文本的单个字符串目录会被单独检查。

pip install kaeris
kaeris translate src/locale/messages.xlf --langs de,ja --verify

问题

支持 XLIFF 2.0 吗?

不。版本 1.2 是支持的;版本 2.0 文件将被拒绝并显示相应消息。

内嵌标签会保留吗?

它们被保留为原始标记,并在翻译后与源进行比较。在上面的实际运行中,<x/> 和 <g> 标签以相同的 ID 返回,检查没有任何报告;如果丢失一个,则会报告。

免费吗?

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

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

是的。pip install kaeris,然后 kaeris translate src/locale/messages.xlf --langs de,ja。另请参阅 Angular。GitHub Action 在拉取请求中运行相同的翻译。CLI 文档 · GitHub Action

继续

CLI 参考 · 检查参考 · 在浏览器中翻译 · 免费检查 · 格式转换 · 伪本地化

其他格式:JSON · YAML · .po · ARB · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML