====== localectl - Locale und Tastaturlayout verwalten ====== localectl ist ein systemd-Tool zur Verwaltung von System-Locale (Sprach- und Regioneneinstellungen) und Tastaturlayout. Es ermöglicht das Anzeigen und Setzen von Spracheinstellungen, Zeichensätzen und Tastaturbelegungen für Konsole und X11. ===== Voraussetzungen ===== * Zugriff auf die Linux-Kommandozeile * SystemD-basiertes System (Ubuntu 15.04+, Debian 8+, CentOS 7+) * Root-Rechte zum Ändern der Locale-Einstellungen ===== Grundlegende Syntax ===== localectl [OPTIONEN] [BEFEHL] ===== Was ist Locale? ===== Locale definiert regionale und sprachliche Einstellungen: * **Sprache** der Systemmeldungen * **Zeichensatz** (UTF-8, ISO-8859-1, etc.) * **Datums- und Zeitformat** * **Zahlenformat** (Dezimaltrennzeichen, Tausendertrennzeichen) * **Währungsformat** * **Sortierreihenfolge** ===== Häufige Anwendungsfälle ===== ==== Aktuelle Einstellungen anzeigen ==== # Locale-Einstellungen anzeigen localectl # Nur Locale-Status localectl status **Ausgabe-Beispiel:** System Locale: LANG=de_DE.UTF-8 VC Keymap: de X11 Layout: de X11 Model: pc105 ==== Verfügbare Locales anzeigen ==== # Alle installierten Locales localectl list-locales # Locales filtern localectl list-locales | grep de_ localectl list-locales | grep en_ **Häufige Locales:** * ''de_DE.UTF-8'' - Deutsch (Deutschland) * ''en_US.UTF-8'' - Englisch (USA) * ''en_GB.UTF-8'' - Englisch (Großbritannien) * ''fr_FR.UTF-8'' - Französisch (Frankreich) ===== System-Locale setzen ===== ==== Locale ändern ==== # System-Locale auf Deutsch setzen sudo localectl set-locale LANG=de_DE.UTF-8 # Auf Englisch (US) setzen sudo localectl set-locale LANG=en_US.UTF-8 # Mehrere Locale-Variablen setzen sudo localectl set-locale LANG=de_DE.UTF-8 \ LC_TIME=de_DE.UTF-8 \ LC_NUMERIC=en_US.UTF-8 ==== Locale-Variablen ==== ^ Variable ^ Bedeutung ^ Beispiel ^ | LANG | Standard-Locale für alle Kategorien | de_DE.UTF-8 | | LC_TIME | Datums- und Zeitformat | de_DE.UTF-8 | | LC_NUMERIC | Zahlenformat | en_US.UTF-8 | | LC_MONETARY | Währungsformat | de_DE.UTF-8 | | LC_MESSAGES | Systemmeldungen | en_US.UTF-8 | | LC_COLLATE | Sortierreihenfolge | de_DE.UTF-8 | | LC_CTYPE | Zeichenklassifizierung | de_DE.UTF-8 | ===== Tastaturlayout verwalten ===== ==== Verfügbare Layouts anzeigen ==== # Alle verfügbaren Tastaturlayouts localectl list-keymaps # Deutsche Layouts filtern localectl list-keymaps | grep de # X11-Layouts localectl list-x11-keymap-layouts # X11-Varianten für ein Layout localectl list-x11-keymap-variants de ==== Konsolen-Tastatur setzen (Virtual Console) ==== # Deutsches Layout für Konsole sudo localectl set-keymap de # Schweizer Layout sudo localectl set-keymap ch # US-Layout sudo localectl set-keymap us ==== X11-Tastatur setzen (Grafische Oberfläche) ==== # Deutsches Layout für X11 sudo localectl set-x11-keymap de # Mit Variante (z.B. Deadkeys) sudo localectl set-x11-keymap de pc105 nodeadkeys # Schweizer Layout mit Variante sudo localectl set-x11-keymap ch pc105 # US-International sudo localectl set-x11-keymap us pc105 intl **Syntax:** localectl set-x11-keymap LAYOUT [MODEL] [VARIANT] [OPTIONS] ===== Praktische Beispiele ===== ==== Komplett-Konfiguration für Deutschland ==== # Locale auf Deutsch setzen sudo localectl set-locale LANG=de_DE.UTF-8 # Deutsches Tastaturlayout (Konsole) sudo localectl set-keymap de # Deutsches Tastaturlayout (X11) sudo localectl set-x11-keymap de pc105 nodeadkeys # Prüfen localectl status ==== Server-Setup für Englisch mit deutscher Tastatur ==== # Systemmeldungen auf Englisch sudo localectl set-locale LANG=en_US.UTF-8 # Aber deutsche Tastatur sudo localectl set-keymap de sudo localectl set-x11-keymap de ==== Mehrsprachiges System ==== # Hauptsprache Deutsch, aber englische Zahlenformate sudo localectl set-locale \ LANG=de_DE.UTF-8 \ LC_NUMERIC=en_US.UTF-8 \ LC_MONETARY=de_DE.UTF-8 \ LC_TIME=de_DE.UTF-8 ===== Locale-Pakete installieren ===== ==== Debian/Ubuntu ==== # Locale-Paket installieren sudo apt update sudo apt install locales # Locales generieren sudo dpkg-reconfigure locales # Oder manuell: sudo locale-gen de_DE.UTF-8 sudo locale-gen en_US.UTF-8 # Locale-Cache aktualisieren sudo update-locale ==== RHEL/CentOS/Fedora ==== # Locale-Paket installieren sudo dnf install glibc-langpack-de sudo dnf install glibc-langpack-en # Oder alle Sprachen sudo dnf install glibc-all-langpacks ===== Konfigurationsdateien ===== ==== /etc/locale.conf ==== Systemweite Locale-Einstellungen: # Inhalt anzeigen cat /etc/locale.conf # Beispiel-Inhalt: LANG=de_DE.UTF-8 LC_TIME=de_DE.UTF-8 ==== /etc/vconsole.conf ==== Konsolen-Tastaturlayout: # Inhalt anzeigen cat /etc/vconsole.conf # Beispiel: KEYMAP=de FONT=eurlatgr ==== /etc/default/keyboard ==== X11-Tastaturlayout (Debian/Ubuntu): # Inhalt anzeigen cat /etc/default/keyboard # Beispiel: XKBMODEL="pc105" XKBLAYOUT="de" XKBVARIANT="nodeadkeys" XKBOPTIONS="" ===== Benutzerspezifische Locale ===== Benutzer können eigene Locale-Einstellungen überschreiben: # In ~/.bashrc oder ~/.profile export LANG=en_US.UTF-8 export LC_TIME=de_DE.UTF-8 # Oder temporär in aktueller Shell export LANG=en_US.UTF-8 ===== Locale testen ===== # Aktuelle Locale-Einstellungen anzeigen locale # Alle Locale-Variablen locale -a # Datum im aktuellen Format date # Mit anderem Format testen LC_TIME=en_US.UTF-8 date LC_TIME=de_DE.UTF-8 date # Zahlenformat testen LC_NUMERIC=de_DE.UTF-8 printf "%'.2f\n" 1234567.89 LC_NUMERIC=en_US.UTF-8 printf "%'.2f\n" 1234567.89 ===== Häufige Locale-Probleme beheben ===== ==== Fehlende Locale-Warnung ==== # Warnung: "locale: Cannot set LC_ALL to default locale" # Lösung: Locale installieren und generieren sudo locale-gen de_DE.UTF-8 sudo update-locale LANG=de_DE.UTF-8 # Neu anmelden oder neu laden source /etc/default/locale ==== UTF-8 Zeichen werden nicht angezeigt ==== # Prüfen ob UTF-8 aktiv ist locale | grep UTF-8 # Auf UTF-8 umstellen sudo localectl set-locale LANG=de_DE.UTF-8 # Terminal-Font prüfen (bei SSH) echo $TERM ==== Tastaturlayout funktioniert nicht ==== # Konsole: Manuell testen sudo loadkeys de # X11: Temporär testen setxkbmap de # Permanent setzen sudo localectl set-keymap de sudo localectl set-x11-keymap de ===== Integration mit SSH ===== # SSH sendet Locale-Variablen # In /etc/ssh/sshd_config: AcceptEnv LANG LC_* # Client-seitig in ~/.ssh/config: SendEnv LANG LC_* # Oder SSH mit bestimmter Locale starten ssh -o "SendEnv LANG" user@server ===== Wichtige Hinweise ===== * Locale-Änderungen erfordern **neue Login-Session** (oder ''source /etc/default/locale'') * UTF-8 ist der empfohlene Zeichensatz für moderne Systeme * Tastaturlayout-Änderungen wirken sofort * SSH-Verbindungen können Client-Locale übertragen * Nicht alle Locales sind standardmäßig installiert ===== Fehlerbehebung ===== ==== Locale ist nicht verfügbar ==== # Prüfen ob Locale installiert ist locale -a | grep de_DE # Falls nicht, generieren sudo locale-gen de_DE.UTF-8 sudo dpkg-reconfigure locales ==== Falsche Sprache nach SSH-Login ==== # Server akzeptiert Client-Locale nicht # In /etc/ssh/sshd_config deaktivieren: # AcceptEnv LANG LC_* # Oder Client sendet keine Locale: # In ~/.ssh/config aktivieren: SendEnv LANG LC_* ===== Siehe auch ===== * [[sammlung:hostnamectl|hostnamectl - Hostname verwalten]] * [[sammlung:timedatectl|timedatectl - Zeit und Datum verwalten]] * [[sammlung:systemd|SystemD Grundlagen]] * [[sammlung:wichtige_konfigurationsdateien|Wichtige Konfigurationsdateien]] {{tag>linux systemd locale sprache tastatur i18n l10n}}