Zum Inhalt springen

Lokalisierung

Lokalisierung (l10n) bezeichnet die Anpassung des Systems an Sprache, Region und kulturelle Konventionen — Datums- und Zahlenformate, Währungssymbole, Zeichenkodierung.

Allen Linux-Systemen gemeinsam ist ein Satz von Umgebungsvariablen zur Steuerung der Lokalisierung:

VariableBedeutung
LANGStandardsprache — setzt alle LC_*-Variablen als Basis
LC_MESSAGESSprache von Programm-Ausgaben und Fehlermeldungen
LC_TIMEDatums- und Uhrzeitformate
LC_NUMERICZahlenformate (Dezimaltrennzeichen, Tausendertrennzeichen)
LC_MONETARYWährungsformate
LC_COLLATESortierreihenfolge von Zeichenketten
LC_CTYPEZeichenklassifizierung (Groß-/Kleinschreibung, Umlaute)
LC_PAPERPapierformat (A4 vs. Letter)
LC_ADDRESSAdressformat
LC_TELEPHONETelefonformat
LC_MEASUREMENTMaßeinheiten (metrisch vs. imperial)
LC_ALLÜberschreibt alle anderen LC-Variablen — nur für Tests

LANG setzt alle LC_*-Variablen als Grundlage. Einzelne LC_*-Variablen überschreiben den LANG-Wert für ihren Bereich.

Typische gemischte Konfiguration (englische Oberfläche, deutsche Formate):

Terminal-Fenster
LANG=en_US.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
Terminal-Fenster
locale # alle aktiven LC_*-Variablen
locale -a # alle installierten Lokalisierungen
locale -k LC_TIME # Formatdetails einer Kategorie
# Kategorie temporär für einen Befehl überschreiben
LC_TIME=en_US.UTF-8 date

Debian/Ubuntu:

Terminal-Fenster
# /etc/locale.gen — Kommentarzeichen vor gewünschten Locales entfernen:
# de_DE.UTF-8 UTF-8
# en_US.UTF-8 UTF-8
sudo locale-gen # Locales erzeugen
locale -a # Ergebnis prüfen

RHEL/Fedora:

Terminal-Fenster
# Sprachpakete installieren
sudo dnf install glibc-langpack-de glibc-langpack-en
# oder alle auf einmal:
sudo dnf install glibc-all-langpacks

Arch Linux:

Terminal-Fenster
# /etc/locale.gen bearbeiten, dann:
sudo locale-gen

Die Datei /etc/locale.conf enthält die systemweiten Standardwerte:

/etc/locale.conf
LANG=de_DE.UTF-8
LC_TIME=de_DE.UTF-8

Alternativ mit localectl (empfohlen auf systemd-Systemen):

Terminal-Fenster
sudo localectl set-locale LANG=de_DE.UTF-8
sudo localectl set-locale LC_TIME=de_DE.UTF-8

localectl ist das systemd-Werkzeug für Locale und Tastatur-Layout:

Terminal-Fenster
localectl # aktuellen Status anzeigen
localectl list-locales # alle verfügbaren Locales
localectl set-locale LANG=de_DE.UTF-8

Benutzer können Locale-Einstellungen in ~/.profile oder ~/.bashrc überschreiben:

~/.profile
export LANG=de_DE.UTF-8
export LC_TIME=de_DE.UTF-8

Je nach Distribution wird auch ~/.config/locale.conf unterstützt ($XDG_CONFIG_HOME/locale.conf).