Table of Contents

Xliff Sync

Xliff Sync dient zur Pflege von .xlf Sprachdateien in der laufenden Entwicklung bzw. vor allem in der Weiterentwicklung von Extensions. Bei Anpassungen an bereits fertig übersetzten Extensions können neue Felder hinzukommen oder Felder entfallen.

Da der Compiler aber einfach eine neue .xlf Datei ohne Übersetzungen generiert, müssen die neu hinzugekommenen Felder in die bereits übersetzte .xlf Datei gemerged werden, damit die vorhandenen Übersetzungen erhalten bleiben. Ebenso müssen die Übersetzungen für entfallende Felder aus der übesetzten .xlf Datei entfernt werden.

Desweiteren bietet Xliff Sync die Möglichkeit Comments automatisch in Übersetzungen umzuwandeln und die vorhandenen Übersetzungen technisch zu validieren.

Installation und Konfiguration

Xliff Sync kann ganz einfach über den Extension Marketplace von VS Code bezogen werden und wird auch in den empfohlenen Extensions im Workspace aufgeführt.

Die Konfiguration ist bereits im unitop-apps Workspace vorgegeben und im Normalfall muss nichts weiter beachtet werden. Der Vollständigkeit halber, hier die notwendige Konfiguration:

    "xliffSync.copyFromSourceForSameLanguage": true,
    "xliffSync.baseFile": "",
    "xliffSync.needWorkTranslationRules": [
        "OptionMemberCount",
        "OptionLeadingSpaces",
        "Placeholders",
        "SourceEqualsTarget",
        "ConsecutiveSpacesConsistent"
    ],
    "xliffSync.autoCheckNeedWorkTranslations": true,
    "xliffSync.parseFromDeveloperNote": true,
    "xliffSync.autoCheckMissingTranslations": true

Eine ausführliche Entwicklungsrichtlinie aller Einrichtungsmöglichkeiten und Features findet sich im GitHub Repository der Extension.

Verwendung

Im Folgenden sind die für die AL Entwicklung hilfreichen Befehle aufgeführt. Jeder dieser Befehle kann über die Kommandopalette von VS Code ausgeführt werden.

Erstellung von Zieldateien

Befehl: XLIFF: Create New Target File(s)

Es folgt eine Abfrage nach der vom Compiler erzeugten globalen Sprachdatei <Name der Extension>.g.xlf. In der Regel findet Xliff Sync diese Datei selbstständig für die aktuell im Editor aktive Extension. Der Vorschlag muss dann nur noch bestätigt werden.
Im nächsten Schritt müssen die beiden Sprachcodes en-US und de-DE angehakt werden.

Merge der Sprachdateien

Befehl: XLIFF: Synchronize Translation Units

Bevor dieser Befehl ausgeführt wird, muss die gewünschte Extension kompiliert werden, damit die globale Sprachdatei alle aktuellen Änderungen enthält.
Bei der Ausführung dieses Befehls werden mehrere Prozesse in den .xlf Dateien gleichzeitig durchgeführt:

  • Entfallene Übersetzungen werden entfernt
  • Neue Texte werden hinzugefügt
  • Neu hinzugefügte Texte werden automatisch übersetzt (aus dem Comment oder der technischen Caption)
  • Fehlende Übersetzungen werden mit dem Status "needs-translation" gekennzeichnet
  • Fehlgeschlagene technische Validierungen werden mit dem Status "needs-adaptation" gekennzeichnet

Überprüfung von Sprachdateien

Befehl: XLIFF: Check for Missing Translations
Befehl: XLIFF: Check for Need Work Translations

Die Prüfungen auf fehlende Übersetzungen und die technische Validierung können mit diesen Befehlen auch manuell angestoßen werden.

Arbeiten innerhalb einer Sprachdatei

Befehl: XLIFF: Next Missing Translation
Befehl: XLIFF: Next Needs Work Translation

Um sich innerhalb einer Sprachdatei schnell zu bewegen, können diese Befehle verwendet werden. Damit springt der Editor jeweils zu der nächsten Übersetzung mit Handlungsbedarf. Dies ist sehr nützlich, wenn man mehrere in der Sprachdatei verteilte Übersetzungen bearbeiten möchte.

Hinweis

In Projekten hat es sich als nützlich herausgestellt, die Übersetzungen nicht in den Sprachdateien, sondern direkt in den AL Objekten anzupassen und anschließen neu zu synchronisieren. So gehen keine Arbeiten verloren (oder werden überschrieben), wenn jemand die Sprachdateien neu aufbaut.