- 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:
<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. </note>
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> </context-group>
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"> <source>username</source> <target>Nom d'utilisateur</target> </trans-unit> <trans-unit approved="no" id="2" xml:space="preserve"> <source>Email address</source> <target>Adresse de courriel</target> </trans-unit>
After uploading such a translation file where the approved attribute is included, the parser will behave as follows:
- Entries with approved="yes" will be marked as translated in Transifex having the translation text available in the translation string's area.
- 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 data are handled in the following manner:
<group restype="x-gettext-plurals"> <trans-unit id="1" xml:space="preserve"> <source>Your trial ends in 1 day</source> </trans-unit> <trans-unit id="1" xml:space="preserve"> <source>Your trial ends in %@ days</source> </trans-unit> </group>
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.
- Binary elements, like
- Any other minor elements.
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> </trans-unit>
- 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> </trans-unit>