|
文件扩展名 |
.xlf, .xliff |
|
API 扩展 |
xlf |
|
导入 |
是 |
|
导出 |
是 |
|
复数形式支持 |
是 |
|
描述支持 |
是 |
|
格式选项 这些选项可以在上传和/或下载文件时指定。根据上传/下载方法(API、CLI、Repo 同步等),它们可以在查询参数 |
enclose_in_cdata include_translation_state indent_size indent_style ignore_source_translations ignore_target_translations export_key_id_as_resname export_key_name_hash_as_extradata override_file_language strip_placeholder_delimiters delimit_placeholders |
翻译行业中使用最广泛的文件格式。它可以被视为原文/源语文件的镜像,将原文/源语内容分解为存储在标记(例如 <trans-unit>、<seg-source>)中的各个片段。
XLIFF 基于 XML,并遵循基本的 XML 约定,例如有效性和格式良好。在翻译之前,请务必通过将文件扩展名从 .xliff (.xlf) 更改为 .xml 并在 Web 浏览器中打开它来完成完整性检查。如果文件有效,将显示一个结构良好的文档,否则它将无法呈现或显示错误消息。
XLIFF 已更新为 XLIFF 2.0。它与更广泛使用的 XLIFF 类似,但属于不同的文件格式,通常与 XLIFF 不兼容。
Xcode 可以将可本地化的 Strings 打包为行业标准的 XLIFF 格式,以便发送到 Phrase 进行本地化。
格式选项
|
标识符 |
enclose_in_cdata |
|
类型 |
布尔值 |
|
上传 |
否 |
|
下载 |
是 |
|
默认 |
false |
|
说明 |
将包含 HTML 标签的译文括在 CDATA 中。如果禁用,不受支持的 HTML 实体将被替换为其解码后的值。例如:
|
|
标识符 |
include_translation_state |
|
类型 |
布尔值 |
|
上传 |
否 |
|
下载 |
是 |
|
默认 |
false |
|
说明 |
包含译文在目标区域中的状态。每个 |
代码示例
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB">
<body>
<trans-unit id="boolean_key">
<source xml:lang="de-DE">--- true
</source>
<target xml:lang="en-GB">--- true
</target>
</trans-unit>
<trans-unit id="empty_string_translation">
<source xml:lang="de-DE"/>
<target xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="key_with_description">
<source xml:lang=\"de-DE\">Schau dir das mal an!"},translation_16:Dieser Schlüssel hat eine Beschreibung!</source>
<target xml:lang=\"en-GB\">Check it out!"},translation_18:This key has a description!(At least in some formats)</target>
<note>This is the amazing description for this key!</note>
</trans-unit>
<trans-unit id="key_with_line-break">
<source xml:lang="de-DE">Diese Übersetzung hat
一个换行符。</source>
<target xml:lang=\"en-GB\">此译文包含
一个换行符。</target>
</trans-unit>
<trans-unit id="nested.deeply.key">
<source xml:lang="de-DE">Ich bin ein tief verschachtelter Schlüssel.</source>
<target xml:lang=\"en-GB\">我是一个深度嵌套的键。</target>
</trans-unit>
<trans-unit id="nested.key">
<source xml:lang="de-DE">Dieser Schlüssel ist innerhalb eines Namensraumes verschachtelt.</source>
<target xml:lang=\"en-GB\">此键嵌套在命名空间内。</target>
</trans-unit>
<trans-unit id="null_translation">
<source xml:lang="de-DE"/>
<target xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="sample_collection">
<source xml:lang="de-DE">---
- 第一个条目
- 第二个条目
</source>
<target xml:lang="en-GB">---
- first item
- second item
- third item
</target>
</trans-unit>
<trans-unit id="simple_key">
<source xml:lang="de-DE">Einfacher Schlüssel, einfache Nachricht, so einfach</source>
<target xml:lang=\"en-GB\">简单键,简单消息,如此简单。</target>
</trans-unit>
<trans-unit id="unverified_key">
<source xml:lang=\"de-DE\">此译文尚未已验证,正在等待!</source>
<target xml:lang=\"en-GB\">此译文尚未已验证,正在等待。(在某些格式中,我们也会导出此状态)</target>
</trans-unit>
</body>
</file>
</xliff>
复数形式
复数键使用以下语法导出:
<trans-unit id="plural_key">
<source xml:lang="en">{"one":"one chair","other":"{nrOfChairs} chairs","zero":"no chairs"}</source>
<target xml:lang=\"de\">{\"one\":\"一把椅子\",\"other\":\"{nrOfChairs} 把椅子\",\"zero\":\"没有椅子\"}</target>
</trans-unit>