XLIFF#
备注
Weblate 当前支持 XLIFF 1.2。XLIFF 2.0 不受支持且不向后兼容 XLIFF 1.2。
基于 XML 的格式,为标准化翻译文件而生,但最终它也只是这个领域的 众多标准 之一。
XML Localization Interchange File Format (XLIFF) 通常用作双语言格式,但 Weblate 也支持其作为单语言格式。
Weblate 支持数种变体的 XLIFF:
- XLIFF 1.2 翻译文件
简单的 XLIFF 文件,其中元素的内容存储为纯文本(所有 XML 元素都被转义)。
- `支持 placeables 的 XLIFF 1.2 `
标准 XLIFF 支持可放置对象和其他 XML 元素。
- 带 gettext 扩展的 XLIFF 1.2
XLIFF 使用 XLIFF 1.2 Gettext PO 表示指南 进行丰富,以支持复数。
参见
XML Localization Interchange File Format (XLIFF) 规范,XLIFF 1.2 Gettext PO 呈现指南, XLIFF 的维基百科条目, XLIFF
翻译状态#
文件中的 state
属性在 Weblate 中被部分处理并映射为 “Needs edit” (需要编辑)的状态(如果出现目标的话,后面的状态用于将字符串标记为需要编辑: new
、 needs-translation
、 needs-adaptation
、 needs-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 规范的 maxwidth
和 font
属性:
<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 标准没有涉及到这一点——它没有对此属性施加任何唯一性限制。
示例文件#
示例 XLIFF 文件:
<?xml version='1.0' encoding='UTF-8'?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1">
<file>
<body>
<trans-unit weblate-flags="c-format, max-length:100">
<source xml:space="preserve">Hello, world!
</source>
</trans-unit>
<trans-unit>
<source xml:space="preserve">Orangutan has %d banana.
</source>
</trans-unit>
<trans-unit>
<source xml:space="preserve">Try Weblate at <https://demo.weblate.org/>!
</source>
</trans-unit>
<trans-unit>
<source>Thank you for using Weblate.</source>
</trans-unit>
</body>
</file>
</xliff>
Weblate 配置#
用于双语言 XLIFF 的典型 Weblate 部件配置 |
|
---|---|
文件掩码 |
|
单语言译文模版语言文件 |
空 |
新语种的翻译模版 |
|
文件格式 |
XLIFF 翻译文件 |
用于单语言 XLIFF 的典型 Weblate 部件配置 |
|
---|---|
文件掩码 |
|
单语言译文模版语言文件 |
|
新语种的翻译模版 |
|
文件格式 |
XLIFF 翻译文件 |