Mit "locale" bezeichnet man die Definition des Teils der Benutzerumgebung, der abhängig von Sprache und kulturellen Gepflogenheiten ist.
Ein Programm wird internationalisiert (internationalization kurz i18n) um während der Ausführung lokalisiert (localization kurz l10n) werden zu können.
Für die Lokalisierung, d.h. die Anpassung an die tatsächliche Umgebung des Benutzers, gibt es eine Reihe von UmgebungsVariablen.
Auf einem GNU/Linux-System kann man sich deren Inhalt mit dem Kommando locale anzeigen lassen.
Die wichtigste Variable ist LANG, sie setzt die Sprache des Systems fest (z.B. de_DE@euro).
Daneben gibt es eine Reihe von Kategorien, für die separate Einstellungen festgelegt werden können.
Variable
Bedeutung
LC_CTYPE
Zeichensatz (wie komme ich zu welchem Buchstaben)
LC_COLLATE
Sortierfolge
LC_TIME
Datums- und Zeitformate
LC_NUMERIC
Zahlenformate, außer für Währungen
LC_MONETARY
Währungsformate, einschließlich Währungszeichen
LC_MESSAGES
Sprache von Programmmeldungen
LC_PAPER
Papiergröße
LC_NAME
Namensformate
LC_ADDRESS
Format für Adressen und Ortsangaben
LC_TELEPHONE
Format von Telefonnummern
LC_MEASUREMENT
Maßeinheiten (metrisch / englisch)
LC_IDENTIFICATION
Metadaten über die Locale-Information
Alles ab LC_PAPER ist allerdings nicht dokumentiert (und auch nicht im POSIX-Standard).
Die Variable LC_ALL hat Vorrang vor allen anderen LC_*-Variablen (und LANG).
Wenn diese Variablen nicht gesetzt sind, wird der Wert von LANG benutzt.
Über die LANGUAGE-Variable kann man eine Liste mit Sprachen (durch Doppelpunkt getrennt) angeben, diese Variable hat Vorrang vor allen anderen.
Funktioniert bei mir scheinbar nicht -- RonnyBuchmann 2004年02月03日 13:07:04
Weitere Informationen stehen im glibc-Manual (info libc) und in der OpenI18N globalization specification.
Die Standard-Locale der C-Bibliothek (englisch) hat das Kürzel C (Großbuchstabe) und ist auch Standardwert, falls keine Variable gesetzt ist.
Für die Sprache steht das entsprechende ISO-Kürzel in Kleinbuchstaben. Alle weiteren Angaben sind optional, die Reihenfolge ist aber vorgegeben.
- ein Land (ISO-Kürzel in Großbuchstaben) durch Unterstrich getrennt
- ein Punkt und ein Zeichensatz
ein @ und eine "Unterart".
Beispiele:
de de_DE de_DE.UTF-8 de_DE@euro de_DE.UTF-8@euro de_AT.ISO-8859-1
Programme die nicht gettext benutzen, reagieren u.U. anders auf diese Variablen. LANG zur Selektion der Sprache wird aber meist unterstützt (man ist so ein Beispiel).
Siehe auch EuroSupport, UmgebungsVariable
Anleitung für Debian siehe Debian/locales.