30.4. Sprach- und länderspezifische Einstellungen

SUSE Linux wurde zu einem großen Teil internationalisiert und kann flexibel an lokale Gegebenheiten angepasst werden. Anders ausgedrückt: Die Internationalisierung (I18N) ermöglicht spezielle Lokalisierungen (L10N). Die Abkürzungen I18N und L10N sind von den ersten und letzten Buchstaben der englischsprachigen Begriffe und der Anzahl der dazwischen stehenden ausgelassenen Buchstaben abgeleitet.

Die Einstellungen werden mit LC_-Variablen vorgenommen, die in der Datei /etc/sysconfig/language definiert sind. Dies bezieht sich nicht nur auf die native Sprachunterstützung, sondern auch auf die Kategorien Meldungen (Sprache) Zeichensatz, Sortierreihenfolge, Uhrzeit und Datum, Zahlen und Währung. Diese Kategorien können direkt über eine eigene Variable oder indirekt über eine übergeordnete Variable in der Datei language festgelegt werden (weitere Informationen erhalten Sie auf der Manualpage zu locale).

RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY

Diese Variablen werden ohne das Präfix RC_ an die Shell weitergegeben und stehen für die aufgelisteten Kategorien. Die betreffenden Shell-Dateien werden unten aufgeführt. Die aktuelle Einstellung lässt sich mit dem Befehl locale anzeigen.

RC_LC_ALL

Sofern diese Variable festgelegt ist, setzt Sie die Werte der genannten Variablen außer Kraft.

RC_LANG

Falls keine der zuvor genannten Variablen festgelegt ist, ist diese der Fallback. Standardmäßig ist in SUSE Linux nur RC_LANG festgelegt. Dadurch kann der Benutzer leicht eigene Werte festlegen.

ROOT_USES_LANG

Eine Variable, die entweder den Wert yes oder den Wert no aufweist. Wenn die Variable auf no gesetzt ist, arbeitet root immer in der POSIX-Umgebung.

Die anderen Variablen können über den sysconfig-Editor von YaST (siehe Abschnitt 28.3.1, „Ändern der Systemkonfiguration mithilfe des YaST-Editors "sysconfig"“) festgelegt werden. Der Wert einer solchen Variable enthält den Sprachcode, den Ländercode, die Codierung und einen Modifier. Die einzelnen Komponenten werden durch Sonderzeichen verbunden:

 LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]

30.4.1. Beispiele

Sprach- und Ländercode sollten immer gleichzeitig eingestellt werden. Die Sprachcodes entsprechen der Norm ISO 639, die unter http://www.evertype.com/standards/iso639/iso639-en.html und http://www.loc.gov/standards/iso639-2/ verfügbar ist. Die in ISO 3166 aufgeführten Ländercodes sind unter http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html verfügbar.

Es ist nur sinnvoll, Werte festzulegen, für die verwendbare Beschreibungsdateien unter /usr/lib/locale zu finden sind. Anhand der Dateien in /usr/share/i18n können mit dem Befehl localedef zusätzliche Beschreibungsdateien erstellt werden. Die Beschreibungsdateien sind Bestandteil des Pakets glibc-i18ndata. Eine Beschreibungsdatei für en_US.UTF-8 (für Englisch und USA) kann beispielsweise wie folgt erstellt werden:

localedef -i en_US -f UTF-8 en_US.UTF-8
LANG=en_US.UTF-8

Dies ist die Standardeinstellung, wenn während der Installation US-Englisch ausgewählt wurde. Wenn Sie eine andere Sprache ausgewählt haben, wird diese Sprache ebenfalls mit der Zeichencodierung UTF-8 aktiviert.

LANG=en_US.ISO-8859-1

Hiermit wird als Sprache Englisch, als Land die USA und als Zeichensatz ISO-8859-1 festgelegt. In diesem Zeichensatz wird das Eurozeichen nicht unterstützt. Dieser Zeichensatz kann jedoch gelegentlich in Programmen nützlich sein, die nicht für die UTF-8-Unterstützung aktualisiert wurden. Die Zeichenkette, mit der der Zeichensatz definiert wird (in diesem Fall ISO-8859-1), wird anschließend von Programmen, wie Emacs, ausgewertet.

LANG=en_IE@euro

Im oben genannten Beispiel wird das Eurozeichen explizit in die Spracheinstellung aufgenommen. Streng genommen ist diese Einstellung mittlerweile veraltet und des ist UTF-8 vorzuziehen, wo das Eurozeichen selbstverständlich ebenfalls enthalten ist. Diese Einstellung ist nur sinnvoll, wenn eine Anwendung UTF-8 nicht unterstützt, ISO-8859-15 jedoch unterstützt.

SuSEconfig liest die Variablen in /etc/sysconfig/language und speichert die erforderlichen Änderungen in /etc/SuSEconfig/profile und /etc/SuSEconfig/csh.cshrc. Die Angaben in /etc/SuSEconfig/profile werden von /etc/profile eingelesen (gesourcet) und /etc/SuSEconfig/csh.cshrc von /etc/csh.cshrc. Auf diese Weise werden die Einstellungen systemweit verfügbar.

Die Benutzer können die Standardeinstellungen des Systems außer Kraft setzen, indem Sie die Datei ~/.bashrc entsprechend bearbeiten. Wenn Sie die systemübergreifende Einstellung en_US für Programmmeldungen beispielsweise nicht verwenden möchten, nehmen Sie beispielsweise LC_MESSAGES=es_ES auf, damit die Meldungen stattdessen auf Spanisch angezeigt werden.

30.4.2. Einstellungen für die Sprachunterstützung

Die Dateien in der Kategorie Meldungen werden generell im entsprechenden Sprachverzeichnis (wie beispielsweise en) gespeichert, damit ein Fallback vorhanden ist. Wenn Sie für LANG den Wert en_US festlegen und in /usr/share/locale/en_US/LC_MESSAGES keine Meldungsdatei vorhanden ist, wird als Fallback /usr/share/locale/en/LC_MESSAGES genommen.

Darüber hinaus kann eine Fallback-Kette definiert werden, beispielsweise für Bretonisch zu Französisch oder für Galizisch zu Spanisch oder Portugiesisch:

LANGUAGE="br_FR:fr_FR"

LANGUAGE="gl_ES:es_ES:pt_PT"

Wenn Sie möchten, können Sie die norwegischen Varianten Nynorsk und Bokmål (mit zusätzlichem Fallback auf no) verwenden:

LANG="nn_NO"

LANGUAGE="nn_NO:nb_NO:no"

Oder:

LANG="nb_NO"

LANGUAGE="nb_NO:nn_NO:no"

Beachten Sie, das bei Norwegisch auch LC_TIME anders behandelt wird.

Ein mögliches Problem ist, dass ein Trennzeichen, das zum Trennen von Zifferngruppen verwendet wird, nicht richtig erkannt wird. Dies tritt auf, wenn LANG auf einen aus zwei Buchstaben bestehenden Sprachcode wie de, gesetzt ist, die Definitionsdatei, die glibc verwendet, jedoch in /usr/share/lib/de_DE/LC_NUMERIC gespeichert ist. Daher muss LC_NUMERIC auf de_DE gesetzt sein, damit das System die Trennzeichendefinition erkennen kann.

30.4.3. Weitere Informationen

  • The GNU C Library Reference Manual, Kapitel "Locales and Internationalization". Dieses Handbuch ist in glibc-info enthalten.

  • Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, verfügbar unter http://www.cl.cam.ac.uk/~mgk25/unicode.html.

  • Unicode-Howto von Bruno Haible: /usr/share/doc/howto/en/html/Unicode-HOWTO.html.