XLIFF

XLIFF（XML Localisation Interchange File Format，即XML本地化交换文件格式）是一种基于XML的交换格式，旨在标准化本地化过程中在工具之间传递可本地化数据的方式，是CAT工具中常用的一种文件格式。XLIFF由结构化资讯标准促进组织（OASIS）于2002年标准化，目前规范为2014年8月5日发布的v2.0。

该规范针对本地化行业，规范了用何种元素和属性存储从各种原始文件格式中提取的内容与相应翻译。其目标是抽象化本地化技能，使人们从HTML等特定格式的相关工程技术中抽身。

XLIFF格式是“开放架构”的XML创作与本地化（OAXAL）参考架构的一部分。

## 描述 (XLIFF 1.2)

一份XLIFF 1.2文档由一个或多个`&lt;file>`元素组成。每个`&lt;file>`元素对应一个原始文件或来源（例如数据库表）。`&lt;file>`包含可本地化数据的源数据，并且每个区域只有一份的本地化数据。

本地化数据存储在`&lt;trans-unit>`元素里。`&lt;trans-unit>`元素有一个`&lt;source>`元素来存储源文本，并有一个`&lt;target>`元素存储最新的已翻译文本。`&lt;target>`元素非强制性。

```xml
<trans-unit id="1">
 <source xml:lang="en">Cannot find the file.</source>
 <target xml:lang="fr">Fichier non trouvé.</target>
</trans-unit>
```

下面的例子展示一个XLIFF文档，它存储了从Photoshop文件（PSD文件）提取的文本，以及日文译文。

```xml
<xliff version="1.2">
 <file original="Graphic Example.psd"
  source-language="en-US" target-language="ja-JP"
  tool="Rainbow" datatype="photoshop">
  <header>
   <skl>
    <external-file uid="3BB236513BB24732" href="Graphic Example.psd.skl"/>
   </skl>
   <phase-group>
    <phase phase-name="extract" process-name="extraction"
     tool="Rainbow" date="20010926T152258Z"
     company-name="NeverLand Inc." job-id="123"
     contact-name="Peter Pan" contact-email="ppan@example.com">
     <note>Make sure to use the glossary I sent you yesterday.
      Thanks.</note>
    </phase>
   </phase-group>
  </header>
  <body>
   <trans-unit id="1" maxbytes="14">
    <source xml:lang="en-US">Quetzal</source>
    <target xml:lang="ja-JP">Quetzal</target>
   </trans-unit>
   <trans-unit id="3" maxbytes="114">
    <source xml:lang="en-US">An application to manipulate and 
     process XLIFF documents</source>
    <target xml:lang="ja-JP">XLIFF 文書を編集、または処理
     するアプリケーションです。</target>
   </trans-unit>
   <trans-unit id="4" maxbytes="36">
    <source xml:lang="en-US">XLIFF Data Manager</source>
    <target xml:lang="ja-JP">XLIFF データ・マネージャ</target>
   </trans-unit>
  </body>
 </file>
</xliff>
```

## XLIFF 2.0

2014年5月6日，XLIFF 2.0规范转移到OASIS标准候选。

2014年8月6日，XLIFF 2.0规范成为OASIS标准

XLIFF 2.0文档示例：

```xml
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0"
 srcLang="en-US" trgLang="ja-JP">
 <file id="f1" original="Graphic Example.psd">
  <skeleton href="Graphic Example.psd.skl"/>
  <unit id="1">
   <segment>
    <source>Quetzal</source>
    <target>Quetzal</target>
   </segment>
  </unit>
  <unit id="2">
   <segment>
    <source>An application to manipulate and process XLIFF documents</source>
    <target>XLIFF 文書を編集、または処理 するアプリケーションです。</target>
   </segment>
  </unit>
  <unit id="3">
   <segment>
    <source>XLIFF Data Manager</source>
    <target>XLIFF データ・マネージャ</target>
   </segment>
  </unit>
 </file>
</xliff>
```

## 相关工具

### 文件操作和检查工具

- Okapi Framework：提供了多个生成XLIFF文档的过滤器以及使用XLIFF的各种组件。
- Translate Toolkit：可将多种文件格式转换为XLIFF，并提供该格式的检查、过滤和操作工具。
- XLIFFChecker：一个开源的跨平台工具，用于验证XLIFF文件是否符合XML语法和规范。
- Xliff to HTML Converter：将XLIFF文件转换为HTML以便于校对。
- Okapi XLIFF Toolkit：一个开源库，用于创建、读取、操作、验证和编写XLIFF 2.0文档。
- Okapi Lynx-Web page：可用于在线验证XLIFF 2.0文档。

### 编辑器

名称｜操作系统｜免费｜描述

CafeTran Espresso｜Windows、macOS、Linux｜限制记忆和词汇大小

MateCat｜Web｜MateCat支持XLIFF文件作为输入与输出格式。输入文件支持SDLXLIFF

MemoQ｜Windows｜北安大略｜使用MQXLIFF完成互操作性和多种XLIFF的支持

Memsource｜Web、Windows、macOS、Linux｜限制2个文件｜MXLIFF是其原生格式

OmegaT (with Benten)｜Windows、macOS、Linux｜跨平台和开源CAT工具

Pootle｜Web｜基于Web的本地化平台

塔多思 Studio｜Windows｜北安大略｜SDLXLIFF是其原生格式

SmartCAT｜Web｜云翻译环境

Swordfish Translation Editor｜Windows、macOS、Linux｜北安大略｜基于XLIFF的跨平台CAT工具

Transifex｜Web｜北安大略

Transit NXT｜Windows｜北安大略

Virtaal｜Windows、macOS、Linux｜开源CAT工具

Weblate｜Web｜基于Web的翻译工具

Wordfast｜Windows、macOS｜北安大略

### 程序库

2015年11月11日，Microsoft XLIFF 2.0对象模型在GitHub上开源，其是一个.NET库，可以用来构建本地化工具、平台和系统。

## 外部链接

- OASIS XLIFF技术委员会网站
- XLIFF邮件列表： TC List , Comments to TC List , Users List
- XML in localisation: Use XLIFF to translate documents
- An Introduction to XLIFF 2.0 (Multilingual article June-2014)
- Multilingual App Toolkit （MAT），微软出品

## 基本资料

- 扩展名：.xlf
- mime：2.0前：application/x-xliff+xml，2.0及之后：application/xliff+xml
- 最新版本：2.0
- 最新版本：2014年8月5日
- 扩展自：XML