• Documentation
  • File formats



File conversion to XLIFF format is only available on the Growth plan and up.

  • File extensions: .xliff, .xlf, .xml
  • i18n type: XLIFF

The XLIFF format is an industry standard format to exchange localization files (XML Localisation Interchange File Format).

Transifex currently supports a certain subset of the features XLIFF provides:

  • The <group>, <context-group>, <context>, <trans-unit>, <source>, <note> and <target>; elements are handled.
  • Any context data are handled.
  • Developer comments are supported the following way:
<note from="developer">TRANSLATORS: please limit the page width to 79
    characters here.

and appear in the Web Editor as Developer Notes.

  • Character limits are also supported
<trans-unit id="1" maxwidth="30" size-unit="char"></trans-unit>

where the attribute maxwidth should be a positive number and the site-unit must be set to char.

  • References are also supported where each reference is mapped to two <context> elements, one specifying the source file (context-type attribute set to sourcefile) and the other representing the location in the source file ( context-type attribute set to linenumber). Each reference is in addition grouped in a <context-group> element, with the name attribute set to a value that must be unique within the enclosing <file> element and the purpose attribute set to location
<context-group name="po-reference-2" purpose="location">
  <context context-type="sourcefile">simple.c</context>
  <context context-type="linenumber">5</context>

They appear as Occurrences in the Web Editor.

  • Approved attribute is also supported. It indicates whether a translation is final or has passed its final review.
      <trans-unit approved="yes" id="1" xml:space="preserve">
        <target>Nom d'utilisateur</target>
      <trans-unit approved="no" id="2" xml:space="preserve">
        <source>Email address</source>
        <target>Adresse de courriel</target>

After uploading such a translation file where the approved attribute is included, the parser will behave as follows:

  1. Entries with approved="yes" will be marked as translated in Transifex having the translation text available in the translation string's area.
  2. Entries with approved="no" will remain untranslated in Transifex. However, the text inside the <target> elements will be considered a user suggestion and it will be available under the suggestions tab in the editor.



Plural Support

Plural data are handled in the following manner:

      <group restype="x-gettext-plurals">
       <trans-unit id="1[0]" xml:space="preserve">
       <source>Your trial ends in 1 day</source>
       <trans-unit id="1[1]" xml:space="preserve">
       <source>Your trial ends in %@ days</source>

For more information on how plurals are represented in the web-editor, consult our documentation guide here.

The following features are not supported:

  • Attributes of the above elements.
  • The <alt-trans> element.
  • Binary elements, like <bin-unit>, <bin-source>; and <bin-target>.
  • The <glossary> elements.
  • Any other minor elements.

How To Distinguish Between a Source File and a Translation File

XLIFF is a universal standard for translating across various systems. If a translation agency is supplying translations from their TMS so that you can upload them into Transifex you need to ensure that the source file is uploaded into Transifex first. A source file is different than a translation file. The translation file contains <Target> references, whereas a source file does not. For example:

  • The following header belongs to a source file:
<file datatype="plaintext" original="en.lproj/Localizable.txt" source-language="en">
  • The following header belongs to a translation file:
<file datatype="plaintext" original="en.lproj/Localizable.txt" source-language="en" target-language="fr">

In the example above, notice that the translation file contains a target-language whereas the source file does not. Please note that an XLIFF file can contain multiple entries of this type.

  • The following XLIFF entry represents an untranslated string. Only untranslated strings can be found in a source file:
<trans-unit datatype="html" id="576413276e4ee299f9a138e749b71e2f5b0d3ed5">

        <source>Confirm email address</source>

  • The following XLIFF entry represents a translated string. Translated strings can only be found in a translation file:
<trans-unit datatype="html" id="576413276e4ee299f9a138e749b71e2f5b0d3ed5">
        <source>Confirm email address</source>
        <target>Confirmez l'adresse courriel</target>