Lokalisierung
Lokalisierung (engl. localisation, localization) steht in der Entwicklung von Software für die Anpassung von Inhalten (Bücher, Filmkunst, Homepages), Prozessen, Produkten und insbesondere Programmen an die in einem bestimmten geographisch oder ethnisch umschriebenen Absatz- oder Nutzungsgebiet (Land, Region oder ethnische Gruppe) vorherrschenden lokalen sprachlichen und kulturellen Gegebenheiten.
Das englische Wort für Lokalisierung ist "localisation" und wird in der Programmierung oft mit L10N abgekürzt - die 10 ist die Anzahl der ausgelassenen Buchstaben. I18N steht dagegen für "internationalisation".
Lokalisierungs-Variablen
Die von sehr vielen Programmen benutzte Glibc-Bibliothek sieht zur Lokalisierung von Programmen eine ganze Reihe von Variablen vor. Damit lässt sich die Lokalisierung u. a. in folgenden Kategorien durchführen.
Variable | Beschreibung |
---|---|
LC_CTYPE | Zeichensatz |
LC_COLLATE | Sortierordnung |
LC_MESSAGES | Darstellung von Nachrichten, Fehlermeldungen usw. |
LC_NUMERIC | Darstellung von Zahlen |
LC_TIME | Darstellung von Datum und Uhrzeit |
LC_MONETARY | Darstellung von Geldbeträgen |
LC_PAPER | Papiergrösse |
Natürlich berücksichtigt nicht jedes Programm alle Kategorien (und viele Programme ignorieren sie sogar vollständig). Sind einzelne Kategorien nicht eingestellt, verwenden programme als Standardwerte C bzw. POSIX, d. h. Fehlermeldungen erscheinen in Englisch, Daten und Zeiten erscheinen im amerikanischen Format.
Die Variable "LANG" kann eingesetzt werden, anstatt alle aufgeführten Variablen einzeln einzustellen. Damit wird für alle undefinierten Variablen (mit Ausnahme von "LC_COLLATE") der "LANG"-Standardwert verwendet. Bei den meisten Distributionen erfolgt die gesamte Spracheinstellung über die Variable "LANG".
- Mandrake stellt die Variable "LANG" in der Datei "/etc/sysconfig/i18n" ein
- RedHat erlaubt die Veränderung der Variable "LANG" mit dem X-Programm locale-config, das die Änderung in der Datei "/etc/sysconfig/i18n" speichert.
- SuSE erlaubt die Veränderung der Variable "LANG" über YaST2. Danach muss "/sbin/SuSEconfig" ausgeführt werden, um die Änderungen in die Datei "/etc/SuSEconfig/profile" zu übertragen. Diese Datei sollte
nicht von Hand verändert werden!
Die Variable "LC_ALL" wirkt noch stärker als "LANG". Ist diese Variable gesetzt, so gilt für alle Kategorien diese Einstellung.
Die Fehlermeldungen, Menüs usw. sind für jede Sprache separat in Dateien im Verzeichnis "/usr/share/locale/<Sprache>/LC_MESSAGES" gespeichert. KDE- und Gnome-Programme verwenden manchmal eigene Verzeichnisse (z. B. "/opt/kde2/share/locale"). Einige Distributionen besitzen eigene Pakete mit den Dateien zur Anpassung an verschiedene Sprachen.
Neuere Versionen der Glibc-Bibliothek verwenden Einstellungen wie "deutsch" oder "german". Die Datei "/usr/share/locale/locale.alias" enthält eine Liste mit den für die vollständigen Lokalisierungsschreibweisen zulässigen Kurzschreibweisen. Neben der Schreibweise "de_DE" sind auch die Schreibweisen "de_DE.88591" oder "de_DE.ISO-8859-1" zulässig, wobei damit nicht nur die Sprache, sondern auch der gewünschte Zeichensatz angegeben wird. Für die Verwendung mit Unicode lautet die Schreibweise "de_DE.utf8".
Der erste Teil des Wertes (z. B. "de" für Deutsch) gibt gemäss dem ISO 639-1-Standard die Sprache an. Der folgende Abschnitt (z. B. "AT" für Österreich) gibt gemäss ISO 3166-1 das Land an. Der dritte Teil bestimmt die Zeichenkodierung (z. B. "@euro" für die europäische Erweiterung von ISO-8859-15 oder "@utf8" für UTF-8, die häufigste Unicode-Kodierung).
Konfiguration
Die systemweite Voreinstellung der Lokalisierung findet üblicherweise in der Datei "/etc/environment" statt.
Die Lokalisierungen werden üblicherweise vom Systemverwalter angelegt, bevor der Benutzer sie wählen kann. Auf Debian-basierten Systemen geschieht das als Benutzer "root" mit dem Befehl "dpkg-reconfigure locales".
Unter Ubuntu kann die Liste der unterstützten Lokalisierungen der Datei "/usr/share/i18n/SUPPORTED" entnommen werden. Eine weitere Lokalisierung wird dann beispielsweise wie folgt erzeugt.
# locale-gen de_DE@euro
Relevant für die Zeichenkodierung ist die Variable "LC_CTYPE". Auf einem ISO-8859-15-System sieht die Belegung beispielsweise wie folgt aus.
LANG=de_AT.utf8@euro LC_CTYPE="de_AT@euro"
Auf einem UTF-8-System sieht sie dagegen wie folgt aus.
LANG=de_AT.utf8 LC_CTYPE="de_AT@utf8"
Befehle
Anzeige der aktuellen Lokalisierungseinstellung.
$ locale
Anzeige einer Liste mit den zulässigen Lokalisierungseinstellungen.
$ locale -a
Ausführen des Befehls "mount /xyz" mit einer anderen Spracheinstellung, ohne die gesamte Konfiguration zu verändern.
$ env LANG=C mount /xy oder $ env LANG=C LANGUAGE=C mount /xy
...
$ LANG=C xterm
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Lokalisierung (Softwareentwicklung)wbm | Enzyklopädischer Artikel |
Debian.org | eng | Introduction to i18nwbm |