4D unterstützt den XLIFF Standard zum Lokalisieren von Oberflächentext und Titeln. Diese Technologie wird für 4D Anwendungen intern verwendet. 4D Entwickler sowie Plug-In Entwickler können die Vorteile dieser neuen Funktionalität für ihre eigenen Anwendungen und Plug-Ins nutzen.
Die Vorgehensweise für Oberflächen von 4D Anwendungen, die dynamisch lokalisiert werden, ist folgende: Alle Elemente, die auf Sprache basieren, wie Text, Bezeichnungen und Bilder, werden als Dateien außerhalb der Anwendung im Ordner mit Namen Resources gespeichert. Die Bezeichnungen und Bilder werden in Formularen, Menüs, etc. als Referenzen gespeichert. Diese Elemente werden beim Ausführen der Anwendung je nach Sprache dynamisch über die externen Dateien angezeigt. Der XLIFF Standard vereinheitlicht die Referenzierung und Anzeige von Bezeichnungen.
Hinweis: Sie können in XLIFF Dateien gespeicherte Strings auch direkt über die Funktion Get localized string lesen.
Im Formulareditor können Sie den tatsächlichen Inhalt der statischen Bereiche sehen. Klicken Sie dazu in den Bereich des Formulareditors oder wählen Sie im Menü Objekt>Format anzeigen oder Name anzeigen:
Hinweis zur Kompatibilität: Zur Wahrung der Kompatibilität unterstützt 4D weiterhin das vorige auf Ressourcen basierende System (vom Typ STR#). Beide Systeme lassen sich gleichzeitig verwenden, insbesondere in konvertierten Anwendungen. Weitere Informationen dazu finden Sie auf den folgenden Seiten.
XLIFF (XML Localization Interchange File Format) ist ein Standard speziell für den Lokalisierungsprozess. Damit lässt sich die Entsprechung zwischen Quellsprache und Zielsprache in einer XML-Datei beschreiben.
Heutzutage ist XLIFF Standard eine neue Alternative zu Lokalisierungssystemen, die auf Ressourcen basieren. Zum Verwalten solcher Dateien gibt es auch verschiedene Tools, einige davon auch als Freeware.
Über die Funktion Get localized string können Sie auf die Übersetzung eines String direkt in die aktuelle Sprache der Anwendung von überall in der Datenbank zugreifen. Über die Funktion Get database localization erfahren Sie die aktuelle Sprache.
Hinweis zur Kompatibilität: Die Befehle Get indexed string und STRING LIST TO ARRAY im Kapitel "Ressourcen" können auch die Vorteile von XLIFF Dokumenten nutzen. Ihre Verwendung wird jedoch nicht mehr empfohlen, sie werden nur zur Wahrung der Kompatibilität beibehalten.
Damit XLIFF Referenzen als solche erkannt werden, müssen sie am Anfang des Textbereichs stehen.
XLIFF Referenzen lassen sich nicht im Hilfetippeditor anzeigen. Um auf XLIFF basierende Tipps zu verwenden, geben Sie die XLIFF Referenzen direkt im Feld Hilfemeldungen der Eigenschaftenliste ein.
In 4D können Sie automatische XLIFF Referenzen mit verschiedenen Syntaxtypen verwenden:
:20000,3 Syntax Verwenden Sie XLIFF Dateien mit dieser Syntax, gibt der erste Wert (im Beispiel 20000) das id Attribut des group-Elements an. Der zweite Wert (im Beispiel 3) gibt das id Attribut des trans-unit Elements an. Hinweis zur Kompatibilität: Diese Syntax ist identisch mit der früheren Generation der STR# Ressourcen vom Typ “:xxxx,yyy”, wobei xxxx die Kennummer der STR# Ressource und yyy die Elementnummer ist. So bedeutet :20000,3, dass 4D das 3. Element der STR# Ressource 20000 verwenden soll. Auf diese Weise können Sie für konvertierte Datenbanken das auf Ressourcen basierende System beibehalten, andererseits das neue auf XLIFF basierende System einführen. 4D versucht zuerst, die Werte, welche zu 20000,3 gehören, in allen geladenen XLIFF Dateien zu finden und zu verwenden; wird der String nicht gefunden, sucht 4D in allen geladenen Ressource-Dateien danach.
:xliff:OKButton Syntax Diese alternative Syntax lässt sich nur mit geladenen XLIFF Dateien verwenden. In diesem Fall bestimmt der referenzierte Wert (im Beispiel Schaltfläche OK) das Attribut resname des trans-unit Elements.
Objektname Syntax (basiert auf dem Feld “Name” in der Eigenschaftenliste) Diese Syntax wurde eingerichtet, um die Übersetzung von Formularen zu vereinfachen. Sie ist nur für Formulare verwendbar. Sie umgibt das trans-unit Element in der XLIFF-Datei mit zwei group Elementen, deren Attribute resname jeweils den Tabellennamen und den Formularnamen enthalten.
Beispiel (Tabellenformular) Um den Titel der Schaltfläche mit dem Objektnamen “SaveButton” in Formular1 der Tabelle [Clients] zu übersetzen, fügen Sie in die XLIFF Datei folgende Zeilen ein:
Verwenden Sie in Ihrer Datenbank verschiedene Syntaxarten, gilt beim Suchen nach einer gültigen Übersetzung in den XLIFF Dateien die Priorität: 1. “:20000,3” Syntax 2. “:xliff:OKButton” Syntax 3. “MyTitle” Syntax
Im Formulareditor können Sie zwischen der XLIFF Referenz und ihrer Übersetzung in die aktuelle Sprache wechseln. Wählen Sie dazu im Menü Objekt>Name anzeigen bzw. Ressource anzeigen. Weitere Informationen dazu finden Sie im Abschnitt Referenzen in statischem Text verwenden.
Um eine XLIFF Architektur für Ihre lokalisierte Anwendung einzurichten, müssen Sie lediglich ein bzw. mehrere gültige XLIFF Dateien erstellen und diese im Ordner Resources der Datenbank speichern (Paket auf Mac OS).
Mac OS: MeineDatenbank:Resources:Lang.lproj:MyEnLoc.xlf
Es gilt folgendes:
MeineDatenbank ist der Ordner mit den Dateien der Datenbank. MeinPaket ist das Datenbankpaket auf Mac OS.
Lang.lproj ist ein Ordner mit den XLIFF Dateien für die Sprache Lang. Sein Name muss dem internationalen Standard entsprechen (siehe nächster Abschnitt). Beispiel: Für englische Versionen sollte er en.lproj lauten.
4D lädt die XLIFF Dateien automatisch in den Ordner mit der aktuellen Sprache der Datenbank. Um die Sprache der Datenbank einzurichten, führt 4D aufeinanderfolgende Suchläufe im Ordner Resources der Datenbank durch, um die passende Sprache zu finden (in der Priorität 1-4):
Sprache des Betriebssystems (auf Mac OS lassen sich mehrere Sprachen mit Prioritätenskala definieren. 4D verwendet diese Einstellungen)
Sprache der 4D Anwendung
Englisch
Sind diese Suchläufe nicht erfolgreich, wird die zuerst im Ordner Resources gefundene Sprache geladen.
Die 4D Funktion Get database localization findet heraus, welche aktuelle Sprache für die Datenbank festgelegt wurde.
Wird eine Sprachvariante verwendet, die in den XLIFF Dateien nicht verfügbar ist, wird die am nächsten liegende Sprachvariante verwendet.
Sie können den XLIFF Dateien beliebige Namen geben, sie müssen nur die Endung “.xlf.” haben. Sie können mehrere XLIFF Dateien in denselben Sprachenordner legen; sie werden in alphabetischer Reihenfolge der Dateinamen geladen.
Der Name des Ordners “.lproj” muss einen der nachfolgenden Standards berücksichtigen. 4D sucht nach einem gültigen Ordnernamen in folgender Reihenfolge:
Language-Regional Codes In dieser Kombination wird eine Sprache beschrieben durch einen Ländercode (ISO639-1) + Bindestrich + Regionalcode (ISO3166) oder ein Skript Code mit 4 Buchstaben. Zum Beispiel, “fr-ca” (also fr-ca.lproj) für kanadisches Französisch.
Legacy name Hier wird der Sprachenname in der englischen Schreibweise komplett ausgeschrieben, zum Beispiel “english” (also english.lproj) für die englische Sprache. Hinweis: Die beiden ersten Konventionen gelten für Mac OS ab Version 10.4. In früheren Versionen kann nur der komplett ausgeschriebene Name, also der “Legacy” Name verwendet werden.
Eine Übersicht der von 4D unterstützten Sprach-Codes finden Sie im Abschnitt .
Werden mehrere Sprachdefinitionen gefunden, sucht 4D immer nach der am nächsten liegenden Übersetzung. Ist die aktuelle Spracheinstellung des Systems z.B. kanadisches Französisch, sucht 4D erst unter “fr-ca” nach Übersetzungen, falls hier nichts gefunden wird, dann unter “fr”.
Hinweis: Das gleiche Prinzip gilt für XLIFF Dateien im Tag “target language”. Verwenden Sie dieses Attribut innerhalb der XLIFF Dateien mit Bedacht, da eine Datei im Ordner “fr-ca.lproj” mit dem Tag “target language=“fr” als eine Übersetzung in “fr” und nicht “fr-ca” gewertet wird.
XLIFF Dateien werden während der Lokalisierung Ihrer Anwendung dynamisch geladen, so dass Sie sehen können, ob die lokalisierten Wörter oder Sätze in die Objektrahmen von Schaltflächen, PopUp-Menüs, etc. hineinpassen. Das erneute Laden erfolgt, wenn 4D wieder in den Vordergrund kommt und sich Änderungsdatum oder -zeit seit dem letzten Laden geändert haben. Das aktuelle Formular wird gleichzeitig erneut geladen.