Tool, um XLF-Übersetzungs-Dateien zu erzeugen

XLIFF

XML Localization Interchange File Format

 

Zitat Wikipedia:
Das XML Localization Interchange File Format […], abgekürzt XLIFF, ist ein XML-Format zur Darstellung hierarchisch strukturierter Inhalts-Daten in CAT-Werkzeugen. Das Format ist speziell für den verlustarmen Austausch von Übersetzungsdaten und den dazugehörigen Kontextinformationen gedacht. Es ist XML-basiert und damit erweiterbar. 

Typo3 und XLIFF

In Typo3-Extensions, die auf Extbase basieren, werden eben solche Dateien verwendet. Im Ordner Resources/Private/Language/ befinden sich die Dateien, die erst einmal in der Standardsprache (en) vorliegen. Möchte man nun eine Übersetzung erstellen, kopiert man die entsprechenden Dateien, setzt vor dem Dateinamen das Länderkürzel (aus locallang.xlf wird z.B. de.locallang.xlf) und fügt das Attribut target-language mit dem Wert des Länderkürzels in den file-Knoten ein. Anschließend müssen in den trans-unit-Knoten die source-Knoten gegen target-Knoten ausgetauscht werden. Danach können die target übersetzt werden.

Etwas anschaulicher in der Codebase.

Das Mini-Tool auf dieser Seite

… erledigt das Setzen des target-language-Attributs und das Erstellen der target-Knoten. Wenn man mag, kann man die source-Knoten entfernen lassen. Entweder man lädt die XLF-Datei (z.B. locallang.xlf) hoch oder trägt den Inhalt der XLF-Datei in das Eingabefeld ein. Ausgegeben wird der Inhalt für die Übersetzungs-Datei (z.B. de.locallang.xlf).

Nachtrag: Mit CDATA-Inhalten kommt das Tool leider noch nicht klar. Inhalte, die ein &, < oder > enthalten, werden nun als CDATA ausgegeben.

Vorher:

Der Grundaufbau von in Typo3 verwendeten XLIFF-Dateien ist wie folgt:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
  <file source-language="en" target-language="cz" datatype="plaintext" original="messages" date="2013-03-25T16:00:23Z" product-name="my_ext">
    <header/>
    <body>
      <trans-unit id="loading">
        <source>Loading …</source>
      </trans-unit>
      <trans-unit id="more">
        <source>more</source>
      </trans-unit>
    </body>
  </file>
</xliff>

Nachher:

Nach der Umwandlung sieht die XML-Datei so aus:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xliff version="1.0">
  <file source-language="en" datatype="plaintext" original="messages" date="2013-03-25T16:00:23Z" product-name="my_ext" target-language="de">
    <header/>
    <body>
      <trans-unit id="loading">
        <source>Loading …</source>
        <target>Loading …</target>
      </trans-unit>
      <trans-unit id="more">
        <source>more</source>
        <target>more</target>
      </trans-unit>
    </body>
  </file>
</xliff>