Siegfried Locale Editor Anwenderhandbuch

Arbeiten mit dem Siegfried Locale Editor

Programmstart

Der Siegfried Locale Editor kann mit einem Doppelklick auf das Programmicon gestartet. Ein Doppelklick auf vorhandene "locale"-Dateien startet auch den Editor. Hierbei wird automatisch die "locale"-Datei in den Editierbereich geladen.

Der Editor kann auch über das Terminal gestartet werden mit folgendem Aufruf:

LocaleEditor <RETURN>

Zur einwandfreien Funktion der Anwendung benötigt der Siegfried Locale Editor die Library "sfliblocale.so" im lokalen "lib" Verzeichnis oder im Verzeichnis "\boot\home\config\lib". Ist die Library nicht vorhanden wird der Startvorgang mit der Fehlermeldung "Could not open "LocaleEditor" (Missing library: sfliblocale.so)" ab.


Aufbau von "locale"-Daten

"locale"-Dateien enthalten hauptsächlich Textdaten einer Anwendung. Es werden aber auch noch zusätzliche Daten verwaltet:

Diese drei Angaben werden oberhalb des Editierbereich in die entsprechenden Felder ("Language", "Version" und "Application ID") eingegeben bzw. bei bestehenden Dateien editiert.

Der Name der Sprache (z.B. "Deutsch", "English"), ist der Name der bei der Auswertung der Sprache einer "locale"-Datei zurückgeliefert wird und sollte sinnvoller weise die Sprache sein in dem der Text gespeichert ist :-). Der Dateiname einer "locale"-Datei ist völlig losgelöst von seinem Inhalt. Prinzipiell könnte eine "locale"-Datei für schwedische Texte "Tomate.locale" oder "Suaheli.locale" benannt werden, sinnvoll ist dies aber nicht! Normalerweise wird man eine "locale"-Datei immer nach ihrem sprachlichen Inhalt benennen, ggf. mit Bezug auf die Applikation die die Datei nutzt (z.B. "SFImageDeutsch.locale").

Die Anwendungs-ID (Application ID) ist eine eindeutige Kennung für das Programm das "locale"-Dateien nutzt. Damit kann die Anwendung bestimmen, ob die zu nutzende "locale"-Datei zugehörig ist. Nichts bringt seltsamer Ergebnisse auf den Bildschirm als eine "locale"-Datei die garnicht zu der Anwendung gehört die sie nutzt! :-) Die Anwendungs-ID wird vom Aufsteller der Anwendung vergeben. Alle "locale"-Dateien einer Anwendung müssen über dieselbe ID verfügen, sonst werden sie ignoriert. Wie sich die ID aufbaut ist dem Aufsteller überlassen, er kann eine beliebige Zeichenkette verwenden. Als sinnvoll erweist es sich eine Kennung zu verwenden die einen Bezug auf die jeweilige Anwendung hat. Bei dem Siegfried Locale Editor wir z.B. "siegfried localeeditor locale" als ID verwendet.

Hinweis für Entwickler: es spricht nichts dagegen als ID die Signatur des BApplication-Objekts der Anwendung zu verwenden, da dies hinreichend eindeutig ist.


Der Editierbereich

Der Editierbereich nimmt innerhalb des Editors den grössten Bereich ein und ist das zentrale Element des Siegfried Locale Editors. Hier werden alle Texte verwaltet die innerhalb einer Anwendung lokalisiert werden sollen (im Normalfall sind dies alle Texte die in einer Anwendung vorkommen). Die Texte organisieren sich zeilenweise und werden durch ein <RETURN> voneinander getrennt. Die Reihenfolge der Texte ist zwingend! Die Identifizierung der Texte von der Anwendungsseite mittels der "sfliblocale.so" Library erfolgt über die Zeilennummer des Textes. In Prinzip baut sich die Textverwaltung wie eine Tabelle auf: jede Tabellenzeile enthält einen Text für das Anwendungsprogramm. Die Anwendung fordert einen Text über die Library mittels der Tabellenzeile an. Wird z.B. eine 10 als Tabellenzeile an die Library übergeben, wird immer der Text der Tabellenzeile 10 zurückgeliefert, egal was in der Zeile steht.

Texte die länger sind als die Breite des Editorfensters werden automatisch umgebrochen. Die Umbruchstelle wird nicht mit einem <RETURN> versehen. Es handelt sich also bei jeder zu lokalisieremder Textzeile um Fließtext. Leerzeilen werden beim Speichern der Daten ignoriert. Zusätzlich können Kommentarzeilen eingefügt werden. Eine Kommentarzeile wird mit einem Semikolon " ; " am Anfang markiert. Das Ende einer Kommentarzeile wird mit einem <RETURN> begrenzt. Kommentarzeilen werden in der Farbe rot dargestellt. WICHTIG: Kommentarzeilen werden nicht in den "locale"-Datei gespeichert und sind somit temporär!

Werden bestehende "locale"-Dateien erweitert, geschieht dies immer dadurch das neue Texte als neue Zeile am Ende des Textbereichs angefügt werden. Ein Hinzufügen von Zeilen inmitten bestehender Text führt zu einem Bruch der Abwärtskompatibilität und fällt somit ganz klar in die Kategorie "SF_DONT_DO_THAT"! :-)

Innerhalb des Editierbereich stehen dem Anwender wie gewohnt die Standard- Editiermöglichkeiten "Cut/Copy/Paste/Undo" zur Verfügung. Allerdings sollte mit den Funktionen vorsichtig umgegangen werden. Unbeabsichtigtes Entfernen und/oder Einfügen von Zeilen führt zu einer Verschiebung der Zeilen, was bei einer späteren Nutzung zu recht seltsamen Ergebnissen führt, wenn Text an der falschen Stelle ausgegeben werden.


Laden einer Referenz

Eine Referenz ist eine Hilfe für den Bearbeiter von "locale"-Dateien. Es handelt sich dabei um automatisch erzeugte Kommentarzeilen. Die entweder aus den Daten einer existierenden "locale"-Datei bestehen oder direkt aus einer Anwendung ermittelt werden die die "sfliblocale.so" Library unterstützt. Hierbei wird jede Textzeile in eine zweizeilige Kommentarzeile umgewandelt:

; #ID1:
; Erste Textzeile

; #ID2:
; Zweite Textzeile

; #ID3:
; Dritte Textzeile
   :
   :
   :
; #IDn:
; n-te Textzeile

Die erste Kommentarzeile gibt die Position innerhalb der Tabelle an und die zweite Zeile enthält den Text der Zeile. Das ganze dient als Vereinfachung bzw. Vorlage zum Erstellen/Erweitern von "locale"-Dateien. Soll eine die "locale"-Datei für eine neue Sprache erzeugt werden ist in den jeweiligen Leerzeilen nur noch die entsprechenden Übersetzung einzutragen. Bei bestehenden "locale"-Dateien sieht man darüber welche Texte noch hinzugefügt werden müssen:

; #ID1:
; Erste Textzeile
First text line
; #ID2:
; Zweite Textzeile
Second text line
; #ID3:
; Dritte Textzeile

Third text line
   :
   :
   :
; #IDn-1:
; (n-1)te Textzeile

; #IDn:
; n-te Textzeile

Zum Laden einer Referenz stehen zwei Möglichkeiten zur Verfügung:

  1. Laden einer bestehenden "locale"-Datei als Referenz. Jede bestehende "locale"-Datei kann als Referenz geladen werden. Das Laden erfolgt über den "Load"-Button rechts von der Reference-Zeile. Über ein Dateiauswahlfenster kann eine beliebige "locale"-Datei ausgewählt werden.
  2. Ermitteln der Textdaten aus einer Anwendung die die "sfliblocale.so" Library unterstützt. Jede Anwendung die die "sfliblocale.so" Library korrekt unterstützt bietet die Möglichkeit per Scripting die fest vorgegebenen (internen englischen) Textdaten zu ermitteln. Um dies zu erreichen muss einfach der Siegfried Locale Editor und die entsprechende Anwendung gestartet werden. Über das PopUp-Menü ganz rechts in der "Reference"-Zeile des Editors kann dann ausgewählt werden von welcher Anwendung die Texte ermittelt werden sollen. Übernommen werden von der Anwendung die Textdaten, der Name der Sprache (wird in "Reference" ausgegeben und die Applikations ID. Das PopUp-Menü zeigt immer mindestens eine Anwendung an und dies ist der Siegfried Locale Editor selbst, da auch der Editor die "sfliblocale.so" Library nutzt.

War schon eine Referenz geladen wird diese durch das erneute Einladen ersetzt. Bestehende übersetzte Texte werden dabei nicht gelöscht. Das Laden einer Referenz fügt sich nahtlos in bestehende Texte ein.


Erzeugen einer neuen "locale"-Datei

Eine neue "locale"-Datei wird entweder aus einer schon bestehende "locale"-Datei als Vorlage erzeugt (über "Load" in der Referenz-Zeile) oder es werden die Textdaten direkt aus einer Anwendung geladen. In beiden Fällen steht der Text als Referenz-Kommentar zur Verfügung. Vorzuziehen ist eigentlich immer der zweite Weg über das direkte Einladen der Referenz per Scripting. Hierbei ist immer sichergestellt das auch wirklich alle Texte als Vorlage vorhanden sind. Wird eine bestehende "locale"- Datei genutzt, kann es unter Umständen möglich sein das es sich bei dieser Datei um eine älter Version handelt die noch nicht alle Text beinhaltet (wenn z.B. eine Anwendung erweitert wurde und die "locale"-Dateien noch nicht angepasst wurden).

Das Erzeugen einer neuen "locale"-Datei teilt sich in 5 Schritte:

  1. Laden einer Referenz über das Application PopUp-Menü oder über "Load" der Reference-Zeile. Das Laden einer Referenz erzeugt die Kommentarvorlage und trägt die Applikations-ID in das entsprechende Feld im Editor ein.
  2. Name der Sprache in das Feld "Sprache/Language" eintragen. Der Name ist immer in der Sprache zu schreiben die der Name angibt. Wird z.B. ein deutsche "locale"-Datei erzeugt werden ist im Feld "Sprache/Language" der Name "Deutsch" einzutragen, bei Spanisch der Name "Espanõl". Der Name wird später vom Anwendungsprogramm für die Auswahl der vorhandenen Sprachen verwendet. Groß- und Kleinschreibung ist beachten. Einfache Regel: erster Buchstabe groß der Rest in Kleinbuchstaben.
  3. Vergabe einer Versionsnummer. Die Versionsnummer sollte zwei Vorkomma und zwei Nachkommastellen haben (z.B. "01.00").
  4. Eintragen der Texte unterhalb der jeweiligen Kommentarzeilen sind die entsprechenden Übersetzungen einzutragen. Sollte zu einem Text keine Übersetzung gefunden werden, ist der englische Originaltext zu übernehmen. Es ist wichtig die Reihenfolge einzuhalten. Die Textzeilen dürfen innerhalb des Editierbereichs nicht verschoben oder vertauscht werden, da die Position zwingend ist (Tabellenaufbau).
  5. Speichern der neuen "locale"-Datei. Über die Funktion "Save" in der "Sprache/Language" wird eine "locale"-Datei gespeichert. Es öffnet sich ein Dateiauswahlfenster in dem Pfad und Dateiname angegeben werden können. Der Dateiname kann beliebig gewählt werden, als sinnvoll hat es sich erwiesen als Dateiname den Namen der Sprache oder den Sprachnamen in Verbindung mit dem Anwendungsnamen zu nutzen. Wo die "locale" gespeichert wird ist abhängig vom jeweiligen Anwendungsprogramm. Im Normalfall sollte aber in dem Verzeichnis wo das Anwendungsprogramm liegt ein Unterverzeichnis "locale" geben, das die Sprachdateien enthält. Dies ist nicht zwingend, wird aber als sinnvoll empfohlen.

Editieren einer bestehenden "locale"-Datei

Das Editieren einer bestehenden "locale"-Datei ist dann sinnvoll wenn z.B. Schreibfehler in der Datei entdeckt wurden oder wenn die Anwendung um neue Texte erweitert wurde.

Das Laden einer "locale"-Datei zum Editieren erfolgt über den "Load"-Button der "Sprache/Language" Zeile. Es öffnet sich ein Dateiauswahlfenster in den Pfad und Dateiname ausgewählt werden können. Wird eine "locale"-Datei mit "OK" zum Laden bestätigt wird der Text in den Editierbereich geladen und die Felder "Sprache/Language", "Version", "Applikations-ID/Application ID" entsprechend gesetzt.

Es ist möglich nachträglich eine Referenz zu der geladen Datei anzuzeigen. Dazu ist einfach über "Load" oder das "Application" PopUp-Menü eine entsprechende Referenz zu wählen. Die Referenzdaten werden dann automatisch in die Textdaten eingefügt. Es übrigens gleichgültig ob zuerst die Textdaten und dann die Referenz geladen wird oder umgekehrt. In jedem Fall werden die Daten entsprechend eingefügt.

Um immer den aktuellen Stand der Textdaten zu erhalten ist das Einladen der Referenz über das PopUp-Menü vorzuziehen. Ein Scrollen zum Ende des Editierbereichs zeigt dann ob neue Texte hinzugefügt werden müssen oder nicht.