Translation File Formats: Introduction to XLIFF

As the localization industry began to flourish in the 80s and 90s, companies were writing custom tools to handle many different translation file formats. When the XLIFF standard was first introduced, it aimed to tackle this problem by establishing one file format for localizable data.

XLIFF (XML Localization Interchange File Format) is an XML-based file translation file format used for sharing content between a developer and a translation company. By converting your application or database to XLIFF, translators can translate your text without any loss of information or formatting.

There are many benefits of using XLIFF as a standard translation file format, but here are a few of the big ones:

  • Translate documents of all types with a single file format

  • Formatting is removed from the localization process

  • Fluid transfer of data between different tools

What an XLIFF document looks like:

`<file>`:

 Each XLIFF document contains one or more files. Each file element corresponds to a source text, usually a file or a database table. Within each file element are a collection of trans-units.

`<trans-unit>`:

 Each trans-unit contains a source tag and can optionally contain a target tag:

“`

<source>Hello!</source>

<target>Bonjour!</target>

“`

It is also possible to use alt-trans elements within a trans-unit to leverage the power of translation memory and pre-populate terms that you have seen before.

“`

<alt-trans>

 <source>Hello!</source>

 <target>Bonjour!</target>

</alt-trans>

“`

Below is an example of a document in XLIFF 1.2 translation file format:

“`

<?xml version=”1.0″ encoding=“UTF-8″?>

<xliff xmlns=”urn:oasis:names:tc:xliff:document:1.2″ xmlns:okp=”okapi-framework:xliff-extensions” xmlns:its=”http://www.w3.org/2005/11/its” xmlns:itsxlf=”http://www.w3.org/ns/its-xliff/” xmlns:xliff=”urn:oasis:names:tc:xliff:document:1.2″ version=”1.2″ its:version=”2.0″>

 <file original=”text.html” source-language=”en” target-language=”fr” datatype=”html”>

   <body>

     <trans-unit id=”tu1″>

       <source xml:lang=”en”>hello</source>

       <target xml:lang=”fr”>bonjour</target>

       <alt-trans>

         <source xml:lang=”en”>hello</source>

         <target xml:lang=”fr”>salut</target>

       </alt-trans>

     </trans-unit>

     <trans-unit id=”tu2″>

       <source xml:lang=“en”>goodbye</source>

       <target xml:lang=“fr”>au revoir</target>

     </trans-unit>

   </body>

 </file>

</xliff>

“`

At VerbalizeIt, we use XLIFF as the standard translation file format to simplify the localization process. By extracting documents into XLIFF and rebuilding them once the translation is complete, we are able to provide translators with a consistent workspace while maintaining the original formatting. XLIFF allows us to treat .docx, .txt, .xlsx, .strings, .srt, or any other file type as if they were one and the same.

Further Resources:

Interested in learning more about the XLIFF specification and how you can start converting files to XLIFF? Here are a couple resources of to get you going:

XLIFF specification: http://docs.oasis-open.org/xliff/xliff-core/xliff-core.html

XLIFF Committee homepage: https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xliff

Open source tool for extracting XLIFF: http://okapi.opentag.com/help/applications/tikal/

Do you use XLIFF for localization? Let us know how you are using it in the comments!

Leave a Reply

Your email address will not be published. Required fields are marked *