Skip to content

Xliff Connector

The xliff connector will export your translation jobs into XLIFF format, which is an industry standard conversion format for translations.

There are a few different formats/ways to generate a XLIFF file and depending on your Translation service you might need to change these settings.

xliff settings

Settings

Settings Format Default Note
Folder All /media/xliff_translations location on disk xliff translations are stored. You can download xliff translations directly from the back office but if you need to grab them from disk they will be stored here.
Format All Xliff 2.0 There are two main formats xliff 1.2 and xliff 2.0 - Xliff 2.0 is more flexible and allows for better splitting of HTML and text in translation
Extension All xlf File extension format.
Split HTML v2.0 True Split the html blocks into individual translation elements, removes the need for the translators to maintain the majority of your html structure during the translation
Overwrite Blank Targets All False When a file is returned with missing target elements, this setting will use the value in the source element as the target value
Remove Blank Values v2.0 False If there are blank values in the translation source (for example from empty properties) then this setting will exclude them from the generated xliff file.

Troubleshooting

Occasionaly when Xliff files are returned from a translator/translation service there can be issues.

Missing Target

The most common issue we see is missing target items which might be reported in an message similar to below:

Cannot find text for item p (#/f=f1/g=g3/g=g5/g=u3-g/u=u3-1) file might be missing translated values for some content (no <target> value) - [Line: 23] [Id:u3-1]

within an Xliff file there are two main tags, source and target when Translation Manager generates an xliff file it will populate the source values:

Example Source xliff

<group id="g4" name="2048|title">
<unit id="u2" name="2048|Umbraco.TextBox">
    <segment>
        <source>My Super awesome website</source>
    </segment>
</unit>
</group>

The translator/service should then add the translated content to the the target value and return the file

returned translation

<group id="g4" name="2048|title">
<unit id="u2" name="2048|Umbraco.TextBox">
    <segment>
        <source>My Super awesome website</source>
        <target>Mon site Web super génial</target>
    </segment>
</unit>
</group>

throughout an xml file there will be many source/target pairs, if any are missing then the Xliff connector will return an error - and in later versions will try to indicate on what line of hte xliff file the missing target is found.

n.b if there are multiple missing targets then the first one will be returned.

Translation in source

Sometimes we see issues where the translated content has been placed in the source values of the file.

The most likely reason is that translator has treated the xliff file as an xml file and their translation tool has simply replaced the text in the file with the translated values.

The Overwrite Blank Targets setting will allow you to import such a file but it should be treated with caution. if the file has been treated as xml it is possible that other non translatable elements (such is the ID values in teh file) have been translated too, and the content may not be correctly imported as part of the process.