4D v16.3

Anhang C: XLIFF Architektur

Home

 
4D v16.3
Anhang C: XLIFF Architektur

Anhang C: XLIFF Architektur  


 

 

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. 

Weitere Informationen dazu finden Sie in der offiziellen XLIFF 1.1 Spezifikation, die Sie im Internet laden können unter:
http://www.oasis-open.org/committees/xliff/documents/xliff-specification.htm

Warnung: XLIFF Standard unterscheidet zwischen Groß- und Kleinschreibung.

Es gibt zwei Arten, XLIFFStrings von 4D aufzurufen:

Ü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.

In 4D lassen sich automatische XLIFF Referenzen an folgenden Stellen verwenden:

  • Feld “Objektname” in der Eigenschaftenliste des Formulareditors
  • Feld “Fenstertitel” im Dialogfenster Formulareigenschaften, das sich über den Explorer aufrufen lässt
  • Statischer Text, wie Bezeichnungen für Schaltflächen, Optionsfelder, etc.
  • Menüeditor (außer Syntax Objektname, siehe unten)
  • Hilfetippeditor (außer Syntax Objektname, siehe unten).

Hinweise:

  • 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.
Beispiel für eine XLIFF Datei:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"><xliff version="1.0">
    <file datatype="x-STR#" original="undefined" source-language="en-US" target-language="de">
        <body>
            <group id="20000" resname="Buttontitles">
                    <trans-unit id="1" resname="CancelButton">
                    <source>Cancel</source>
                    <target>Abbrechen</target>
                    </trans-unit>
                    <trans-unit id="2">
                    <source>Done</source>
                    <target>Fertig</target>
                </trans-unit>
                <trans-unit id="3" resname="OKButton" >
                    <source>Ok</source>
                    <target>OK</target>
                </trans-unit>
            </group>
        </body>
    </file>
</xliff>

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:
      <group resname="[Clients]">
      <group resname="Form1">
      <trans-unit resname="SaveButton">
      <source>Save</source>
       <target>Sichern</target>
      </trans-unit>
      </group>
      </group>
    • Beispiel (Projektformular)
      Bei einem Projektformular wird der Tabellenname ersetzt durch [ProjectForm]. Der Code lautet dann:
      <group resname="[ProjectForm]">
      <group resname="Form1">
      <trans-unit resname="SaveButton">
       <source>Save</source>
        <target>Sichern</target>
      </trans-unit>
      </group>
      </group>

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).

Weitere Informationen zum Ordner Resources finden Sie im Abschnitt Ordner Resources verwalten

Der vollständige Pfadname lautet:

  • Windows:
    MeineDatenbank\Resources\Lang.lproj\MyEnLoc.xlf
  • 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):

  1. Sprache des Betriebssystems (auf Mac OS lassen sich mehrere Sprachen mit Prioritätenskala definieren. 4D verwendet diese Einstellungen)
  2. Sprache der 4D Anwendung
  3. Englisch
  4. 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:

  1. 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.
  2. ISO639-1
    Dieser Standard definiert jede Sprache mit zwei Buchstaben, zum Beispiel, “en” (also en.lproj) für die englische Sprache, „de“ für die deutsche Sprache.
    Ref: http://www.loc.gov/standards/iso639-2/php/English_list.php
  3. 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.

Nachfolgende Tabelle zeigt die Programmiersprache Codes, die 4D zum Verwalten von XLIFF Dateien unterstützt.

SpracheISO639-1“Legacy”ISO3166
AFRIKAANSafafrikaans
ALBANIANsqalbanian
ARABIC_SAUDI_ARABIAararabicsa
ARABIC_IRAQararabiciq
ARABIC_EGYPTararabiceg
ARABIC_LIBYAararabicly
ARABIC_ALGERIAararabicdz
ARABIC_MOROCCOararabicma
ARABIC_TUNISIAararabictn
ARABIC_OMANararabicom
ARABIC_YEMENararabicye
ARABIC_SYRIAararabicsy
ARABIC_JORDANararabicjo
ARABIC_LEBANONararabiclb
ARABIC_KUWAITararabickw
ARABIC_UAEararabicae
ARABIC_BAHRAINararabicbh
ARABIC_QATARararabicqa
BASQUEeubasque   
BELARUSIANbebelarusian   
BULGARIANbgbulgarian   
CATALANcacatalan   
CHINESE_TRADITIONALzhchinesehant
CHINESE_SIMPLIFIEDzhchinesehans
CHINESE_HONGKONGzhchinesehk
CHINESE_SINGAPOREzhchinesesg
CROATIANhrcroatian   
CZECHcsczech   
DANISHdadanish   
DUTCHnldutch   
DUTCH_BELGIANnldutchbe
ENGLISH_USenenglish
ENGLISH_UKenenglishgb
ENGLISH_AUSTRALIAenenglishau
ENGLISH_CANADAenenglishca
ENGLISH_NEWZEALANDenenglishnz
ENGLISH_EIREenenglishie
ENGLISH_SOUTH_AFRICAenenglishza
ENGLISH_JAMAICAenenglishjm
ENGLISH_BELIZEenenglishbz
ENGLISH_TRINIDADenenglishtt
ESTONIANetestonian   
FAEROESEfofaorese   
FARSIfapersian   
FINNISHfifinnish   
FRENCHfrfrench   
FRENCH_BELGIANfrfrenchbe
FRENCH_CANADIANfrfrenchca
FRENCH_SWISSfrfrenchch
FRENCH_LUXEMBOURGfrfrenchlu
GERMANdegerman   
GERMAN_SWISSdegermanch
GERMAN_AUSTRIANdegermanat
GERMAN_LUXEMBOURGdegermanlu
GERMAN_LIECHTENSTEINdegermanli
GREEKelgreek   
HEBREWhehebrew   
HUNGARIANhuhungarian   
ICELANDICisiceland   
INDONESIANidindonesian
ITALIANititalian
ITALIAN SWISSititalianch
JAPANESEjajapanese
KOREAN_WANSUNGkokorean
KOREAN_JOHABkokorean
LATVIANlvlatvian
LITHUANIANltlithuanian
NORWEGIANnonorwegian
NORWEGIAN_NYNORSKnnnynorskno
POLISHplpolish
PORTUGUESEptportuguese
PORTUGUESE_BRAZILIANptportuguesebr
ROMANIANroromanian
RUSSIANrurussian
SERBIAN_LATINsrserbianlatn
SERBIAN_CYRILLICsrserbiancyrl
SLOVAKskslovak
SLOVENIANslslovenian
SPANISH_CASTILLANesspanish
SPANISH_MEXICANesspanishmx
SPANISH_MODERNesspanish
SPANISH_GUATEMALAesspanishgt
SPANISH_COSTA_RICAesspanishcr
SPANISH_PANAMAesspanishpa
SPANISH_DOMINICAN_REPUBLICesspanishdo
SPANISH_VENEZUELAesspanishve
SPANISH_COLOMBIAesspanishco
SPANISH_PERUesspanishpe
SPANISH_ARGENTINAesspanishar
SPANISH_ECUADOResspanishec
SPANISH_CHILEesspanishcl
SPANISH_URUGUAYesspanishuy
SPANISH_PARAGUAYesspanishpy
SPANISH_BOLIVIAesspanishbo
SPANISH_EL_SALVADOResspanishsv
SPANISH_HONDURASesspanishhn
SPANISH_NICARAGUAesspanishni
SPANISH_PUERTO_RICOesspanishpr
SWEDISHsvswedish
SWEDISH_FINLANDsvswedishfi
THAIththai
TURKISHLITHUANIANltlithuanian
NORWEGIANnonorwegian
NORWEGIAN_NYNORSKnnnynorskno
POLISHplpolish
PORTUGUESEptportuguese
PORTUGUESE_BRAZILIANptportuguesebr
ROMANIANroromanian
RUSSIANrurussian
SERBIAN_LATINsrserbianlatn
SERBIAN_CYRILLICsrserbiancyrl
SLOVAKskslovak
SLOVENIANslslovenian
SPANISH_CASTILLANesspanish   
SPANISH_MEXICANesspanishmx
SPANISH_MODERNesspanish   
SPANISH_GUATEMALAesspanishgt
SPANISH_COSTA_RICAesspanishcr
SPANISH_PANAMAesspanishpa
SPANISH_DOMINICAN_REPUBLICesspanishdo
SPANISH_VENEZUELAesspanishve
SPANISH_COLOMBIAesspanishco
SPANISH_PERUesspanishpe
SPANISH_ARGENTINAesspanishar
SPANISH_ECUADOResspanishec
SPANISH_CHILEesspanishcl
SPANISH_URUGUAYesspanishuy
SPANISH_PARAGUAYesspanishpy
SPANISH_BOLIVIAesspanishbo
SPANISH_EL_SALVADOResspanishsv
SPANISH_HONDURASesspanishhn
SPANISH_NICARAGUAesspanishni
SPANISH_PUERTO_RICOesspanishpr
SWEDISHsvswedish
SWEDISH_FINLANDsvswedishfi
THAIththai   
TURKISHtrturkish
UKRAINIANukukrainian
VIETNAMESEvivietnamese

 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Anhänge

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v16)
4D Designmodus ( 4D v16.1)
4D Designmodus ( 4D v16.3)