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 翻译文件 |