9.4. Sprach- und landesspezifische Anpassungen

SUSE LINUX ist internationalisiert und kann flexibel auf lokale Gegebenheiten abgestimmt werden. Die Internationalisierung (I18N) erlaubt spezielle Lokalisierungen (L10N). Die Abkürzungen I18N und L10N stehen für internationalization und localization: jeweils Anfangs- und Endbuchstabe und dazwischen die Anzahl der ausgelassenen Buchstaben.

Die Einstellungen werden über LC_-Variablen vorgenommen, die in der Datei /etc/sysconfig/language definiert sind. Dabei geht es nicht nur um die Einstellung der Sprache für die Programmoberfläche und -meldungen (engl. native language support), sondern im Einzelnen um die Kategorien für Nachrichten (Sprache), Zeichenklassen, Sortierreihenfolge, Datum und Uhrzeit, Zahlen und Geld. Jede dieser Kategorien kann entweder gezielt über eine eigene Variable oder indirekt über eine übergeordnete Variable in der Datei language festgelegt werden (vgl. die Manualpage man locale).

  1. RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY: Diese Variablen werden ohne den RC_-Vorsatz an die Shell weitergereicht und bestimmen die oben genannten Kategorien; die betroffenen Dateien werden im Folgenden aufgezählt.

    Die aktuelle Einstellung kann mit dem Befehl locale abgefragt werden.

  2. RC_LC_ALL: Diese Variable überschreibt, falls gesetzt, die Werte der in Punkt 1 genannten Variablen.

  3. RC_LANG: Wenn keine der o. g. Variablen gesetzt ist, ist diese der Fallback. SUSE LINUX setzt standardmäßig nur RC_LANG; dadurch kann der Anwender leichter eigene Werte eintragen.

  4. ROOT_USES_LANG: Eine yes/no-Variable. Ist sie auf no gesetzt, dann arbeitet root immer in der POSIX-Umgebung.

Die Variablen sind über den YaST Sysconfig-Editor zu setzen. Der Wert einer solchen Variablen setzt sich aus Sprachangabe (language code), Land oder Territorium (engl. country code), Zeichensatz (engl. encoding) und Option (engl. modifier) zusammen. Die einzelnen Angaben werden mit Spezialzeichen verbunden:

LANG=language[[_COUNTRY].Encoding[@Modifier]]

9.4.1. Einige Beispiele

Bitte setzen Sie die Sprach- und die Länderangabe immer zusammen. Die Angabe der Sprache folgt dem Standard ISO 639 (http://www.evertype.com/standards/iso639/iso639-en.html und http://www.loc.gov/standards/iso639-2/), die Ländercodes sind in ISO 3166 festgelegt (siehe http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html). Sinnvollerweise dürfen aber nur die Werte gewählt werden, für die verwendbare Beschreibungsdateien unter /usr/lib/locale zu finden sind. Weitere Beschreibungsdateien lassen sich mit Hilfe von localedef aus den Dateien in /usr/share/i18n erzeugen.

LANG=de_DE.UTF-8

Dies ist die Standardeinstellung, wenn man in deutscher Sprache installiert; installiert man in einer anderen Sprache, wird auch UTF-8 als Zeichen-Kodierung gesetzt, aber die jeweils andere Sprache für das System eingestellt.

LANG=de_DE.ISO-8859-1

So stellt man die deutsche Sprache in Deutschland mit Zeichensatz ISO-8859-1 ein. Dieser Zeichensatz enthält nicht das Euro-Zeichen; man benötigt diesen Zeichensatz bisweilen noch, wenn ein Programm noch nicht an UTF-8 angepasst ist.

Die Angabe des Zeichensatzes (hier ISO-8859-1) wertet zum Beispiel der Editor Emacs aus.

LANG=de_DE@euro

Dies ist ein Beispiel für das Setzen einer Option (euro).

SuSEconfig liest die Variablen aus /etc/sysconfig/language aus und schreibt die Angaben nach /etc/SuSEconfig/profile und /etc/SuSEconfig/csh.cshrc. /etc/SuSEconfig/profile wird von /etc/profile eingelesen (gesourcet) und /etc/SuSEconfig/csh.cshrc von /etc/csh.cshrc. Somit stehen die Einstellungen systemweit zur Verfügung.

Die Benutzer können die Systemvorgaben in ~/.bashrc überschreiben. Wenn also die Systemvorgabe de_DE ist, kann der Benutzer, falls er mit deutschen Programmmeldungen nicht zufrieden ist, so auf englische Ausgaben umschalten: LC_MESSAGES=en_US.

9.4.2. Anpassung für Sprachunterstützung

Dateien der Kategorie Nachrichten werden in der Regel nur im Sprachverzeichnis (zum Beispiel de) abgelegt, um ein Fallback zu haben. Wenn man also LANG auf de_AT setzt und die Message-Datei unter /usr/share/locale/de_AT/LC_MESSAGES nicht vorhanden ist, dann wird auf /usr/share/locale/de/LC_MESSAGES zurückgegriffen.

Auch kann man mit LANGUAGE eine Fallbackkaskade festlegen; zum Beispiel für bretonisch → französisch oder für galizisch → spanisch → portugiesisch:

LANGUAGE="br_FR:fr_FR"

LANGUAGE="gl_ES:es_ES:pt_PT"

Oder um auf die norwegischen Variaten nynorsk bzw. bokmål auszuweichen (mit zusätzlichem Rückfall auf no):

LANG="nn_NO"

LANGUAGE="nn_NO:nb_NO:no"

oder

LANG="nb_NO"

LANGUAGE="nb_NO:nn_NO:no"

Bei Norwegisch ist auch zu beachten, dass LC_TIME unterschiedlich behandelt wird.

9.4.2.1. Mögliche Probleme

Der Tausenderpunkt wird nicht erkannt. Wahrscheinlich steht LANG beispielweise auf de. Da die Beschreibung, auf die die glibc zurückgreift, in /usr/share/lib/de_DE/LC_NUMERIC zu finden ist, muss beispielsweise LC_NUMERIC auf de_DE gesetzt werden.

9.4.2.2. Weitere Informationen:


SUSE LINUX 9.2