Java-Eigenschaftendateien

Eigenschaftendateien haben einen einfachen Aufbau, der dem Aufbau von Windows INI-Dateien ähnelt.

SDL Passolo unterstützt alle Merkmale dieses Formats, einschließlich mehrzeiliger Texte, leerer Einträge, ASCII Escape-Sequenzen und UNICODE Escape-Sequenzen.

Java-Eigenschaftendateien können sowohl im ANSI- als auch im UNICODE-Format vorliegen und werden nach der Übersetzung standardmäßig im selben Format generiert, gegebenenfalls unter Berücksichtigung der Ziel-Codepage. In den Java-Optionen (siehe Konfiguration des Java Add-In) können allerdings auch andere Kodierungen für die Zieldateien angegeben werden.

Escape-Sequenzen in Quell- und Zieldateien

Escape-Sequenzen sind Zeichenfolgen, die nicht direkt in einen Text eingegeben werden können. So darf zum Beispiel in einer Eigenschaftendatei nicht ein Zeilenumbruch innerhalb eines Texts eingegeben werden, da dieser den Text beenden würde. Stattdessen wird die Escape-Sequenz '\n' verwendet. Weitere übliche Escape-Sequenzen sind '\r' für Carriage-Return und '\t' für den Tabulator. In diesen Fällen leitet der Backslash die Escape-Sequenz ein, kann also selbst nicht unmittelbar als Zeichen verwendet werden. Der Backslash muss deshalb durch eine Esapce-Sequenz der Form '\\' dargestellt werden.

Theoretisch kann jedes Zeichen auch in Form einer Escape-Sequenz eingefügt werden, und zwar entweder als '\xhh' (Wertebereich ein Byte) oder als '\uhhhh' (Wertebereich ein UTF16-Zeichen). Für Zeichen, die sich normal darstellen oder eingeben lassen, ist dieses Einfügen nicht sinnvoll, aber es kann verwendet werden, wenn zum Beispiel ein Zeichen nicht direkt in eine ANSI-Datei eingefügt werden kann.

Beim Lesen von Eigenschaftendateien wertet Passolo die Escape-Sequenzen aus und ersetzt sie durch die eigentlichen Zeichen, sodass der Übersetzer sich nicht um Escape-Sequenzen kümmern muss. Beim Schreiben werden nicht direkt darstellbare Zeichen automatisch wieder in Escape-Sequenzen umgewandelt. Diese Konvertierungen sind allerdings nicht eindeutig. Für den Zeilenumbruch sind folgende Escape-Sequenzen möglich: '\n', 'x0a' und '\u000a'. Üblich ist die Verwendung von '\n'. Sollte Passolo allerdings feststellen, dass im Quelltext eine andere Kodierung verwendet wird, wird diese auch für den Zieltext verwendet.

Der Backslash wird auch für Leerzeichen verwendet, die Teil des Texts sind, z. B. zwischen einer ID und einem Trennzeichen (=), die bzw. das einen Text kennzeichnet. Dasselbe gilt für Leerzeichen, die einem Text folgen. Andernfalls werden einfache Leerzeichen vor und nach einem Text gelöscht. Die Escape-Sequenz lautet '\<space>'. In diesem Fall wandelt Passolo die voran- und nachgestellten Leerzeichen in normale Leerzeichen um, mit denen der Übersetzer dann wie gewohnt arbeiten kann. Beim Schreiben werden voran- und nachgestellte Leerzeichen als Escape-Sequenzen eingefügt.

Der Backslash kann auch als Markierung für eine Zeilenfortsetzung in Eigenschaftendateien verwendet werden. Ein Backslash am Ende einer Zeile gibt an, dass der Text in der folgenden Zeile immer noch zum gleichen Text gehört. Voran- und nachgestellte Leerzeichen in der folgenden Zeile werden gelöscht, sofern sie nicht als '\<space>‘ eingefügt werden. Passolo verarbeitet die Markierung für eine Zeilenfortsetzung und fügt zusammengehörige Zeilen zu einem Text zusammen. Beim Schreiben wird der Text jedoch einzeilig ausgegeben und nicht wieder auf mehrere Zeilen verteilt.

Metadaten in Eigenschaftendateien

Texte können zusätzliche Metadaten enthalten, die aus Kommentaren gelesen werden. Kommentare mit Metadaten müssen mit '##' beginnen. Die folgenden Metadaten-Anweisungen werden unterstützt:

ReadOnly
Die gültigen Werte sind true und false. Die Anweisung bezieht sich auf den folgenden Text und setzt oder löscht die ReadOnly-Markierung des Quelltexts in Passolo.
MaxLen
Numerischer Wert. Diese Anweisung bezieht sich auf den folgenden Text und setzt die MaxLen-Eigenschaft des Quelltexts in Passolo. Die MaxLen-Eigenschaft wird verwendet, um die Länge des Texts in der Übersetzungsliste zu prüfen.
Escaping
Diese Anweisung bezieht sich auf die folgenden Texte. AutoDetection ist der Standardwert und das Standardverhalten. In Passolo werden alle Texte, die einen Platzhalter wie z. B. {0} enthalten, wie Formattexte für eine messageFormat-Funktion behandelt. Einzelne Anführungszeichen und geschweifte Klammern werden automatisch „escapt“.
AllInMessageFormat weist Passolo an, alle folgenden Texte als Formattexte für messageFormat-Funktionen zu behandeln. Verwenden Sie diese Option, wenn Sie sicher sind, dass alle Texte in der Software so verwendet werden und AutoDetection die falschen Zieltext-Muster erzeugt.
NoneInMessageFormat weist Passolo an, alle folgenden Texte als Formattexte für messageFormat-Funktionen zu behandeln. Die Strings sollten so behandelt werden, wie sie vorliegen. Verwenden Sie diese Funktion, wenn Sie sicher sind, dass die Texte auch dann nicht als Format-Texte verwendet werden, wenn sie Platzhalter enthalten und die Automatische Erkennung die falschen Zielmuster generiert.

Wenn Sie ' oder { in eine Zeichenfolge unter einer der Escape-Regeln einfügen, dann werden diese automatisch auf alle Wiederholungen in der aktuellen Übersetzungsdatei/alle Übersetzungsdateien im jeweiligen in der ursprünglichen Regel festgelegten Format autopropagiert.

Beispiel:

In NoneInMessageFormat werden ' und { automatisch zu den wiederholten Texten in den Formaten AutoDetection und AllInMessageFormat und in der Zieldatei als ' oder {.geschrieben.

Wenn die Zeichenfolge in den Formaten AutoDetection oder AllInMessageFormat bearbeitet wird, werden ' und { in maskierter Form angezeigt (" und '{') und auch so in die Zieldatei geschrieben.

Kommentar
Der komplette Text, der dem Gleichheitszeichen folgt, wird als Kommentar behandelt und der Kommentar-Eigenschaft des Texts in Passolo zugewiesen.

Auch bei Meta-Richtlinien in einzelnen Zeilen wird jede unter einer Kommentar-Richtlinie befindliche Richtlinie als Kommentar behandelt und zur Kommentar-Eigenschaft hinzugefügt.

Kommentare müssen die letzte Anweisung in einer Zeile sein, da folgende Anweisungen nicht weiter ausgewertet werden.

Mehrere Metadaten-Anweisungen können in einer Zeile – getrennt durch ein Semikolon – angegeben oder auf einzelne Zeilen aufgeteilt werden. Groß-/Kleinschreibung muss bei Metadaten nicht beachtet werden.

Beispiel (eine Zeile):
## maxlen=20;Escaping=NoneInMessageFormat;comment=This is a comment ;=) containing fancy characters
id1=string ''with'' place holder {0}.
##maxlen=30; ReadOnly=true;
id2=string 'without' placeholder
Beispiel (einzelne Zeilen):
##Escaping=NoneInMessageFormat
##Comment=This is a comment
id3=string 'without' placeholder