Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.
Lokalisierung ist der Vorgang, Programme zu veranlassen, sich auf eine regionsspezifische Weise zu verhalten. Wenn ein Programm Nummern oder Daten auf eine Art und Weise formatiert, die typisch für Ihren Teil der Welt ist oder Meldungen in Ihrer Muttersprache ausgibt (oder in dieser Sprache Eingaben akzeptiert), heißt es, dass das Programm lokalisiert ist. Dieser Abschnitt beschreibt die von Subversion ergriffenen Schritte bezüglich Lokalisierung.
Die meisten modernen Betriebssysteme kennen den Begriff „aktuelle Locale“ – d.h., die Region oder das Land, deren bzw. dessen Lokalisierungskonventionen berücksichtigt werden. Diese Konventionen – typischerweise ausgewählt durch irgendeinen Laufzeit-Konfigurationsmechanismus des Rechners – beeinflussen die Art und Weise, in der Programme sowohl dem Benutzer Daten präsentieren, als auch Eingaben des Benutzers akzeptieren.
Auf den meisten Unix-ähnlichen Systemen können Sie die Werte der Locale-bezogenen Konfigurations-Optionen überprüfen, indem Sie den Befehl locale aufrufen:
$ locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL="C" $
Die Ausgabe ist eine Liste Locale-bezogener
Umgebungsvariablen mitsamt deren aktuellen Werten. In diesem
Beispiel sind alle Variablen auf die Standard-Locale
C
gesetzt; Benutzer können diese Variablen
jedoch auf bestimmte Länder-/Sprachcode-Kombinationen setzen.
Wenn jemand beispielsweise die Variable
LC_TIME
auf fr_CA
setzt,
wüssten Programme, dass sie Zeit- und Datumsinformationen so
präsentieren sollen, wie es französischsprachige Kanadier
erwarten. Und wenn jemand die Variable
LC_MESSAGES
auf zh_TW
setzte, wüssten Programme, dass sie menschenlesbare Meldungen
in traditionellem Chinesisch ausgeben sollen. Das Setzen der
Variablen LC_ALL
hat zur Folge, das jede
Locale-Variable auf den selben Wert gesetzt wird. Der Wert von
LANG
wird als Standardwert für jede nicht
gesetzte Locale-Variable verwendet. Rufen Sie den Befehl
locale -a
auf, um die Liste der
verfügbaren Locales auf einem Unix-System anzeigen zu
lassen.
Unter Windows wird die Einstellung der Locale über die „Regions- und Sprachoptionen“ der Systemsteuerung vorgenommen. Dort können Sie die Werte individueller Einstellungen aus den verfügbaren Locales ansehen, auswählen und sogar etliche der Anzeigeformatkonventionen anpassen (mit einem schwindelerregenden Detaillierungsgrad).
Der Subversion-Client svn
berücksichtigt die aktuelle Konfiguration der Locale auf zwei
Weisen. Zunächst beachtet er den Wert der Variablen
LC_MESSAGES
und versucht, alle Meldungen in
der angegebenen Sprache auszugeben. Zum Beispiel:
$ export LC_MESSAGES=de_DE $ svn help cat cat: Gibt den Inhalt der angegebenen Dateien oder URLs aus. Aufruf: cat ZIEL[@REV]... …
Dieses Verhalten funktioniert unter Unix und Windows auf
dieselbe Weise. Beachten Sie jedoch, dass es sein kann, dass
der Subversion-Client eine bestimmte Sprache nicht spricht,
obwohl Ihr Betriebssystem die entsprechende Locale
unterstützt. Um lokalisierte Meldungen zu erzeugen, müssen
Freiwillige Übersetzungen für jede Sprache zur Verfügung
stellen. Die Übersetzungen werden mit dem GNU gettext-Paket
geschrieben, wodurch Übersetzungsmodule erzeugt werden, die
die Dateiendung .mo
haben. So heißt
beispielsweise die deutsche Übersetzungsdatei
de.mo
. Diese Übersetzungsdateien werden
irgendwo in Ihrem System installiert. Unter Unix liegen Sie
typischerweise unter /usr/share/locale/
,
während sie unter Windows oft im Ordner
share\locale\
des
Subversion-Installationsbereichs zu finden sind. Sobald es
installiert ist, wird das Modul nach dem Programm benannt, für
das es eine Übersetzung liefert. Die Datei
de.mo
könnte zum Beispiel schließlich als
/usr/share/locale/de/LC_MESSAGES/subversion.mo
installiert werden. Sie können feststellen, welche Sprachen
der Subversion-Client spricht, indem Sie nachsehen, welche
.mo
-Dateien installiert sind.
Die zweite Art, auf der die Locale berücksichtigt wird, bezieht sich darauf, wie svn Ihre Eingaben interpretiert. Das Projektarchiv speichert alle Pfade, Dateinamen und Protokollnachrichten in UTF-8-kodiertem Unicode. In diesem Sinne ist das Projektarchiv internationalisiert – d.h., das Projektarchiv kann Eingaben in jeder menschlichen Sprache entgegennehmen. Das heißt aber auch, dass der Subversion-Client dafür verantwortlich ist, nur Dateinamen und Protokollnachrichten in UTF-8 an das Projektarchiv zu schicken. Um das zu bewerkstelligen, muss er die Daten aus der aktuellen Locale in UTF-8 umwandeln.
Nehmen wir zum Beispiel an, Sie erzeugen eine Datei namens
caffè.txt
und schreiben bei der Übergabe
die Protokollnachricht „Adesso il caffè è
più forte“. Sowohl der Dateiname als auch die
Protokollnachricht enthalten Nicht-ASCII-Zeichen, doch da Ihre
Locale auf it_IT
gesetzt ist, weiß der
Subversion-Client, dass er sie als italienisch interpretieren
muss. Er verwendet einen italienischen Zeichensatz, um die
Daten in UTF-8 umzuwandeln, bevor sie an das Projektarchiv
gesendet werden.
Beachten Sie, dass das Projektarchiv sich nicht um den Inhalt von Dateien kümmert, obwohl es Dateinamen und Protokollnachrichten in UTF-8 verlangt. Subversion betrachtet Dateiinhalte als undurchsichtige Bytefolgen, und weder Client noch Server versuchen, den Zeichensatz oder die Kodierung der Inhalte zu verstehen.