Lokalisierung

Aus Mikiwiki
Wechseln zu: Navigation, Suche

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
country DE.gif Wikipedia ger Lokalisierung (Softwareentwicklung)wbm Enzyklopädischer Artikel
country US.gif Debian.org eng Introduction to i18nwbm