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