Übersetzungen
Suche:
print pdf

X-Force Tutorial Inhaltsverzeichnis

Übersetzungen


X-Force unterstützt in vielen Bereichen die Internationalisierung. Die Entwickler stellen die Sprachen Deutsch und Englisch bereit. Auf dieser Basis können die Übersetzungen in weitere Sprachen erfolgen. Einen Überblick über die verfügbaren Sprachen und den Stand der Übersetzungen befindet sich auf der Übersetzungsseite. Dort können auch die aktuellen Sprachpakete heruntergeladen werden, sofern diese nicht mehr den Weg in das Installationsprogramm gefunden haben.

Folgende Bereiche können bereits übersetzt werden:

  • Das User-Interface von X-Force
  • Die Tipps und Tricks beim Start von X-Force
  • Die Spielsätze
  • Der Spielsatz-Editor (Ausnahme sind Objekteigenschaften)
  • Der Online-Updater (config.exe)

Nach und nach wird versucht weitere Bereiche in die Übersetzungen aufzunehmen.

Im weiteren wird beschrieben wie man neue Übersetzungen für neue Sprachen realisiert bzw. vorhandene aktualisiert.

Allgemein


Mit Ausnahme der Spielsätze wird die Übersetzung über separate Sprachdateien realisiert, die in einem entsprechendem Verzeichnis (siehe Verzeichnisstruktur) liegen.

Bei den Spielsätzen werden die Übersetzungen direkt im Spielsatz gespeichert, so dass es vom Spielsatz-Ersteller abhängt, welche Sprachen unterstützt werden. Der Spielsatz-Ersteller wird durch entsprechende Import- und Exportfunktionen dabei unterstützt (siehe Übersetzen der Spielsätze).

Übersetzen der Sprachdateien


Verzeichnisstruktur

Für die Sprachdateien gibt es das Verzeichnis language. Dieses ist folgendermaßen unterteilt:

language
- edit
- config
- tips

  • direkt im Language-Verzeichnis liegen die Sprachdateien für X-Force selbst
  • unter edit die für den Spielsatz-Editor
  • unter config die für den Online-Updater (config.exe)
  • unter tips die für die Tipps und Tricks.

Bearbeiten der Sprachdateien

Die Datensätze in den Sprachdateien haben folgenden Aufbau:

Konstante=Text

Konstante= darf nicht verändert/übersetzt werden, da nur dadurch die Zuordnung zum Text erfolgen kann. Ein Text kann nicht über mehrere Zeilen gehen, allerdings kann durch \n ein Zeilenumbruch im Text markiert werden.

Für eine optimale Performance beim Laden der Texte, sollten die Texte in der Reihenfolge nicht verändert werden. Auch sollte eine Konstante nicht mehr als einmal in der Datei vorkommen und es dürfen auch keine Konstanten gelöscht werden.

Um die Arbeit der Übersetzer zu vereinfachen, werden neue und geänderte Texte in den Sprachdateien markiert. Dies sieht folgendermaßen aus:

Konstante=(new) Neuer Text (old) Alter Text

Nach (new) steht der Text in der neuen Bedeutung, nach (old) der übersetzte Text vor der Änderung, sofern der Text bereits in der Sprachdatei existierte. Nach der Bearbeitung des Textes sollte nur noch der neue übersetzte Text in der Zeile stehen. Das Kennzeichen (new) und alles ab (old) kann gelöscht werden, da dies nur zur Dokumentation dient.

(new) ist das Kennzeichen dafür, dass hier eine Übersetzung fehlt. Wenn man also nur fehlende Übersetzungen ergänzen möchte, reicht es mit einem Texteditor die Sprachdatei nach "(new)" zu durchsuchen und die Texte zu übersetzen.

Umgang mit Format-String Konstanten

In diversen Texten werden variable Teile vom Programm eingefügt. Diese sind erkennbar an einem % gefolgt von diversen Format-Beschreibungen:

  • %s - Hier wird ein Variabler Text (String) eingefügt
  • %d - Hier wird eine dezimale Zahl (ohne Nachkommastellen) eingefügt
  • %.xn - wobei x eine Zahl ist. Hier wird eine Gleitkommazahl mit x Nachkommastellen eingefügt

Die Anzahl und die Typen der Format-Strings dürfen in einem Text nicht geändert werden. Dies würde später zu Abbrüchen und Fehlermeldungen führen. Das heißt, wenn im Ausgangstext zwei Text Variablen (%s) angegeben sind, dann muss auch im übersetzten Text wieder zwei mal %s erscheinen. Es darf auch nicht der Typ von, zum Beispiel, %d auf %s geändert werden.

Ändert sich auf Grund der Grammatik, oder anderer Rechtschreibregeln, die Reihenfolge, ist die ursprüngliche Position der Variable durch x: (x ist die alte Position, beginnend bei 0) nach dem % zu kennzeichnen:

Beispiel:

deutscher Text: Von %s hast du noch %.0n im Lager.

englischer Text (Beispiel): You have %.0n of %s in your storage room.

Hier würde es zu einem Fehler kommen, da als erste Variable ein Text erwartet wird, allerdings mit %.0n eine Zahl markiert wird. Deshalb müssen die Positionskennzeichen eingefügt werden:

You have %1:.0n of %0:s in your storage room.

Dadurch weiß das Programm, dass er für das =[%.0n=] die zweite Variable und für das %s die erste Variable nehmen muss. Die Positionen beginnen bei 0, als die erste Variable hat den Index 0, die zweite den Index 1 usw.

Um ein Prozentzeichen (%) anzeigen zu lassen sind zwei Prozentzeichen zu verwenden

Unicode

Die Sprachdateien können im Unicode-Format UTF-8 gespeichert werden. Es erfolgt beim Laden eine automatische Umwandlung in den aktuellen Zeichensatz. Ein vollständige Unicode-Unterstützung ist leider nicht gegeben.

Anlegen von neuen Sprachdateien

Um eine Sprache im Online-Updater (config.exe) auswählen zu können, muss eine entsprechende Sprachdatei im config Sprachverzeichnis liegen. Es empfiehlt sich daher, bei der Übersetzung von X-Force in eine neue Sprache mit dem Online-Updater (config.exe) zu beginnen.

Um eine neue Sprachdatei anzulegen, empfiehlt es sich eine vollständig bestehende Sprachdatei als Basis zu kopieren. Sinnvollerweise sollte dies die deutsche oder englische Sprachdatei sein, da nur dort sichergestellt ist, dass die Texte aktuell sind.

Sinnvoll ist es, nach dem Kopieren alle Texte mit (new) zu markieren, um fehlende Übersetzungen später leichter zu finden. Zudem kann anhand dieses Kennzeichen der Übersetzungsstand ermittelt werden.

Am zuverlässigsten kann man diese Markierung mit Suchen und Ersetzen einfügen. In Textpad kann man zum Beispiel folgenden Regulären Ausdruck verwenden (Option Regulärer Ausdruck muss aktiviert sein):

Suchen nach: ^\([^=]+=\)
Ersetzen durch: \1(new)

Wenn man keinen Texteditor mit Unterstützung für reguläre Ausdrücke zur Verfügung hat, kann man auch ein einfaches Suchen & Ersetzen verwenden:

Suchen nach: =
Ersetzen durch: =(new)

Dies hat allerdings den Nachteil, dass auch "=" innerhalb von Texten mit (new) markiert werden. Dies muss dann beim Übersetzen berücksichtigt werden.

Übersetzen der Spielsätze


Letzte Änderungen - Menü bearbeiten
Zuletzt bearbeitet am 14.08.2007, 11:09 von Christian Reich
Bearbeiten - Attribute - Historie