|Internet media type||
(5 August 2014)
XLIFF (XML Localisation Interchange File Format) is an XML-based format created to standardize the way localizable data are passed between tools during a localization process and a common format for CAT tool files. XLIFF was standardized by OASIS in 2002. Its current specification is v2.0 released on 2014-08-05.
The specification is aimed at the localization industry. It specifies elements and attributes to store content extracted from various original file formats and its corresponding translation. The goal was to abstract the localization skills from the engineering skills related to specific formats such as HTML.
XLIFF forms part of the Open Architecture for XML Authoring and Localization (OAXAL) reference architecture.
Description (XLIFF 1.2)
An XLIFF 1.2 document is composed of one or more
<file> elements. Each
<file> element corresponds to an original file or source (e.g. database table). A
<file> contains the source of the localizable data and, once translated, the corresponding localized data for one, and only one, locale.
Localizable data are stored in
<trans-unit> elements. The
<trans-unit> element holds a
<source> element to store the source text, and a
<target> element to store the latest translated text. The
<target> elements are not mandatory.
<trans-unit id="1"> <source xml:lang="en">Cannot find the file.</source> <target xml:lang="fr">Fichier non trouvé.</target> </trans-unit>
The example below shows an XLIFF document storing text extracted from a Photoshop file (PSD file) and its translation in Japanese:
<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="email@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>
The XLIFF Technical Committee is currently at work on XLIFF 2.0. Much feedback has been gathered from XLIFF's user community which will be synthesized and implemented into the next version of the standard. Two of the primary methods include compiling a list of extensions used by XLIFF toolmakers, and compiling a list of XLIFF features supported in each XLIFF tool.
- Makers of XLIFF tools have taken advantage of XLIFF's extensibility mechanism in order to implement a number of features. By collecting a list of these extension points, and analyzing them for common tasks, the XLIFF TC hopes to improve the XLIFF 2.0 Specification to include mechanisms that will enable the toolmakers to support these features without using extensibility.
- Makers of XLIFF tools have supported different sets of features in the XLIFF 1.2 Specification. By compiling a list of these features the XLIFF TC hopes to identify areas where the XLIFF 2.0 Specification can be improved to enable toolmakers to more widely support the specification.
On August 6, 2014 the XLIFF 2.0 specification became an OASIS Standard
Example of XLIFF 2.0 document:
<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>
File manipulation and checking tools
- The Okapi Framework provides multiple filters that generate XLIFF documents and various components that use XLIFF.
- Translate Toolkit converts various file formats to XLIFF and provides checking, filtering and manipulation tools for the format.
- XLIFFChecker is an open source cross-platform tool that verifies the validity of XLIFF files against XML grammars and specifications.
- Xliff to HTML Converter converts XLIFF files to HTML to facilitate proofreading.
- The Okapi XLIFF Toolkit is an open-source library to create, read, manipulate, validate and write XLIFF 2.0 document.
- The Okapi Lynx-Web page allows you to validate XLIFF 2.0 documents online.
- SDL Trados Studio - SDLXLIFF is its native format
- OmegaT (with Benten) - a cross-platform and open source CAT tool.
- Pootle - a Web-based localisation platform.
- Swordfish Translation Editor - an XLIFF-based cross-platform CAT tool.
- Virtaal - an open source CAT tool.
- Weblate - Web-based translation tool.
- XTM-CAT is a Web server based CAT environment with extensive support for XLIFF (1.0 through to 1.2) as well as an implementation of the OASIS OAXAL architecture.
- MateCat - MateCat supports XLIFF files both as an input and output format. SDLXLIFF files are supported as input files.
- memoQ is using MQXLIFF for interoperability and supports several flavours of XLIFF.
- Memsource - MXLIFF is its native format
- CafeTran Espresso
- Transit NXT
- Xliffie - an XLIFF editor designed for developer, runs on Mac.
- OASIS XLIFF 2.0 specifications
- Bert Esselink (2003). The Evolution of Localization (PDF). Guide to Localization. Multilingual Computing and Technology.
Does the popularity of XLIFF signal a trend? Throughout the 1990s, the localization industry tried to turn translators into semi-engineers. Is it now expecting them to just translate again? It certainly looks that way.
- OASIS XLIFF 1.2 specification
- XLIFF 2.0 Development pages
- 60-day Public Review for XLIFF Version 2.0 Candidate OASIS Standard announcement
- Candidate OASIS Standard 01
- Announcement of XLIFF 2.0 becoming an OASIS Standard
- Okapi filters
- Okapi components using XLIFF