翻译 XLIFF 1.2 文件
XLIFF 将源文本和翻译并排放置,中间夹杂着内联标签。移动或删除一个标签就会导致应用程序中的占位符或链接丢失。KAERIS 会保留这些标签,并在丢失时通知您。
KAERIS 翻译了此页面,并通过回译检查了每一行。尚未经过母语人士审阅。 英文原文
XLIFF 1.2 文件的构建方式
每个 <trans-unit> 包含一个 <source> 和一个 <target>。文本内部,<x/>、<g> 和 <ph> 代表变量和标记。Angular 的 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 翻译中需要注意的事项
内联标签即占位符
<x id="1"/>是一个变量,<g>…</g>包裹着链接或强调。它们被保留为原始标记,并与源文本进行比较。一个文件,两种语言
target-language属性和每个<target>都必须匹配。检查工具单独读取字符串目录,因此一个文件就足够了。仅支持 1.2 版本
XLIFF 2.0 的结构不同(
<unit><segment>)。它会被拒绝并显示一条消息,而不是被部分读取。不要翻译标签属性
ctype和id属性是结构,而不是文本。
实际运行:翻译为德语并进行检查
一次实际运行,27 October 2026,未手动编辑任何内容:kaeris translate messages.xlf --langs de,使用 kaeris 0.2.35,耗时 1.9 秒,模型为 google/gemini-2.5-flash-lite,免费套餐的默认模型。下方是它生成的德语文件以及 kaeris check 的检查结果。
<?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 check --source messages.xlf --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
KAERIS 的处理方式
保留标签
内联标签被保留为原始 XML,免费检查会报告缺失的标签。
写入状态
每个翻译的
<target>都会写入state="translated"。此格式免费检查
在 /check 上的免费检查可以读取此格式,无需密钥或账户即可运行。终端命令
kaeris check也可以读取它:自 kaeris 0.2.35 起,它支持所有 13 种格式,规则相同,且不会将任何内容发送到任何地方。
分三步运行
安装 CLI
运行
pip install kaeris。翻译文件
运行
kaeris translate src/locale/messages.xlf --langs de,ja。检查结果
打开免费检查页面并上传翻译后的文件。包含源文本和目标文本的单个字符串目录会被单独检查。
pip install kaeris kaeris translate src/locale/messages.xlf --langs de,ja --verify
问题
支持 XLIFF 2.0 吗?
不。版本 1.2 是支持的;版本 2.0 文件将被拒绝并显示相应消息。
免费吗?
是的,无需账户:每个文件 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