XLIFF

XML Localization Interchange File Format

File Extensions.xlf, .xliff
API Extensionxlf
Format Optionsenclose_in_cdata, include_translation_state, ignore_source_translations, ignore_target_translations
ImportYes
ExportYes
Pluralization supported?No
Descriptions supported?Yes

Example

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
  <file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB">
    <body>
      <trans-unit id="boolean_key">
        <source xml:lang="de-DE">--- true
</source>
        <target xml:lang="en-GB">--- true
</target>
      </trans-unit>
      <trans-unit id="empty_string_translation">
        <source xml:lang="de-DE"/>
        <target xml:lang="en-GB"/>
      </trans-unit>
      <trans-unit id="key_with_description">
        <source xml:lang="de-DE">Schau dir das mal an! Dieser Schlüssel hat eine Beschreibung!</source>
        <target xml:lang="en-GB">Check it out! This key has a description! (At least in some formats)</target>
        <note>This is the amazing description for this key!</note>
      </trans-unit>
      <trans-unit id="key_with_line-break">
        <source xml:lang="de-DE">Diese Übersetzung hat
einen Zeilenumbruch.</source>
        <target xml:lang="en-GB">This translations contains
a line-break.</target>
      </trans-unit>
      <trans-unit id="nested.deeply.key">
        <source xml:lang="de-DE">Wow, dieser Schlüssel ist noch tiefer verschachtelt.</source>
        <target xml:lang="en-GB">Wow, this key is nested even deeper.</target>
      </trans-unit>
      <trans-unit id="nested.key">
        <source xml:lang="de-DE">Dieser Schlüssel ist innerhalb eines Namensraumes verschachtelt.</source>
        <target xml:lang="en-GB">This key is nested inside a namespace.</target>
      </trans-unit>
      <trans-unit id="null_translation">
        <source xml:lang="de-DE"/>
        <target xml:lang="en-GB"/>
      </trans-unit>
      <trans-unit id="sample_collection">
        <source xml:lang="de-DE">---
- erstes Item
- zweites Item
</source>
        <target xml:lang="en-GB">---
- first item
- second item
- third item
</target>
      </trans-unit>
      <trans-unit id="simple_key">
        <source xml:lang="de-DE">Nur ein einfacher Schlüssel mit einer einfachen Nachricht.</source>
        <target xml:lang="en-GB">Just a simple key with a simple message.</target>
      </trans-unit>
      <trans-unit id="unverified_key">
        <source xml:lang="de-DE">Diese Übersetzung ist noch nicht bestätigt und wartet drauf!</source>
        <target xml:lang="en-GB">This translation is not yet verified and waits for it. (In some formats we also export this status)</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Format Options

OptionTypeUploadDownloadDefaultDescription
enclose_in_cdatabooleanclosecheckfalseEncloses translations containing html tags in CDATA
include_translation_statebooleanclosecheckfalseInclude state of translations in the target locale
ignore_source_translationsbooleancheckclosefalseIf set to true translations of the source language will not be imported.
ignore_target_translationsbooleancheckclosefalseIf set to true translations of the target language will not be imported.

Note

Xcode can package your localizable strings into the industry standard XLIFF format to send off for localization with Phrase.


Further Reading