XLIFF#

基于 XML 的格式,为标准化翻译文件而生,但最终它也只是这个领域的 众多标准 之一。

XML Localization Interchange File Format (XLIFF) 通常用作双语言格式,但 Weblate 也支持其作为单语言格式。

Weblate 支持数种变体的 XLIFF:

XLIFF 翻译文件

简单的 XLIFF 文件,其中元素的内容存储为纯文本(所有 XML 元素都被转义)。

支持可放置对象的 XLIFF

标准 XLIFF 支持可放置对象和其他 XML 元素。

带 gettext 扩展的 XLIFF

XLIFF 使用 XLIFF 1.2 Gettext PO 表示指南 进行丰富,以支持复数。

翻译状态#

在 3.3 版本发生变更: 3.3 版本前的 Weblate 忽略 state 属性。

文件中的 state 属性在 Weblate 中被部分处理并映射为 “Needs edit” (需要编辑)的状态(如果出现目标的话,后面的状态用于将字符串标记为需要编辑: newneeds-translationneeds-adaptationneeds-l10n )。如果应该省略 state 属性,只要 <target> 元素存在,那么字符串被认为需要翻译。

如果翻译字符串具有 approved="yes",那么它还将作为“Approved”(已核准)导入 Weblate,其他的将作为 “Waiting for review”(待审校)导入(符合 XLIFF 规范)。

当存储时,Weblate 如无必要不会添加其它属性:

  • state 属性只在字符串标记为需要编辑的情况下添加。

  • approved 属性只在字符串已审校的情况下添加。

  • 在其它情况下不添加属性,但在它们出现的情况下更新。

这意味着在使用 XLIFF 格式时,强烈推荐打开 Weblate 审校过程,以便查看和更改字符串的核准状态。

相似地在导入这样的文件时(在上传表单中),应该选择 处理需要编辑的字符串 之下的 导入为已翻译

XLIFF 中的空格和换行符#

通常空格的类型和数量和在 XML 格式中的一样对待。如果想要保留,必须将 xml:space="preserve" 标记添加到字符串中。

例如:

    <trans-unit id="10" approved="yes">
        <source xml:space="preserve">hello</source>
        <target xml:space="preserve">Hello, world!
</target>
    </trans-unit>

指定翻译标记#

还可以通过使用 weblate-flags 属性指定附加的翻译标记(请参见 使用标记定制行为)。Weblate 还理解来自 XLIFF 规范的 maxwidthfont 属性:

<trans-unit id="10" maxwidth="100" size-unit="pixel" font="ubuntu;22;bold">
   <source>Hello %s</source>
</trans-unit>
<trans-unit id="20" maxwidth="100" size-unit="char" weblate-flags="c-format">
   <source>Hello %s</source>
</trans-unit>

解析 font 属性用于字体集、尺寸和粗细,上面的示例显示了全部,尽管只需要字符集。字符集中的任何空格被转换为下划线,所以 Source Sans Pro 变成 Source_Sans_Pro,当命名字符集时请记住这些请参见 管理字型)。

字符串键#

Weblate 通过 resname 属性(如果有的话)识别 XLIFF 文件中的单元,并会回退到 id (如果有的话,则与 file 标签一起)。

resname 属性被认为是人类友好的单元标识符,这也使其比 id 更适合 Weblate 显示。在整个 XLIFF 文件中 resname 必须是唯一的。这是 Weblate 的要求,XLIFF 标准没有涉及到这一点——它没有对此属性施加任何唯一性限制。

Weblate 配置#

用于双语言 XLIFF 的典型 Weblate 部件配置

文件掩码

localizations/*.xliff

单语言译文模版语言文件

新翻译的翻译模版

localizations/en-US.xliff

文件格式

XLIFF 翻译文件

用于单语言 XLIFF 的典型 Weblate 部件配置

文件掩码

localizations/*.xliff

单语言译文模版语言文件

localizations/en-US.xliff

新翻译的翻译模版

localizations/en-US.xliff

文件格式

XLIFF 翻译文件