Ubuntu 18.04 Server / Systemsprache ändern

Um die Standardsprache von Ubuntu 18.04 Server zu ändern, bereiten Sie Locale-Daten und Übersetzungspakete vor, konfigurieren update-locale und melden sich erneut an. Diese Anleitung verwendet Koreanisch, ko_KR.UTF-8, als Beispiel und unterscheidet gespeicherte Einstellungen von den tatsächlich in der aktuellen Sitzung verwendeten Werten.

Aktuelle Einstellungen prüfen und sichern

Eine Locale legt die Sprache eines Programms, Zeichenkodierung, Datums- und Zahlenformate sowie Sortierregeln fest. Diese Anleitung behandelt die Terminalumgebung von Ubuntu 18.04 Server. Eingabemethoden und Tastaturlayouts einer Desktopoberfläche werden separat eingestellt.

Die reguläre Sicherheitswartung für Ubuntu 18.04 LTS endete im Mai 2023. Prüfen Sie bei einem bestehenden Server zusätzlich, ob er durch die erweiterte Sicherheitswartung mit Ubuntu Pro abgedeckt ist oder ein Betriebssystem-Upgrade geplant ist. Einzelheiten finden Sie im offiziellen Ubuntu-Veröffentlichungszyklus.

Melden Sie sich mit einem Konto mit sudo-Berechtigung an und führen Sie die Befehle einzeln aus. locale zeigt die Sitzungseinstellungen, locale -a die verfügbaren Locales und der letzte Befehl die Datei mit den Systemstandardeinstellungen.

locale
locale -a
cat /etc/default/locale

Zeigt die Sitzung LANG=en_US.UTF-8, ist US-Englisch die Standard-Locale. Prüfen Sie auch die folgenden Variablen: Sie können einzelne Kategorien oder die gesamte Locale überschreiben.

Variable Aufgabe und Prüfpunkte
LANG Standard-Locale für Kategorien ohne eigene Einstellung.
LC_*, etwa LC_MESSAGES Legt eine bestimmte Kategorie wie Meldungen, Zeit oder Zahlen fest und hat dort Vorrang vor LANG.
LC_ALL Überschreibt alle Locale-Kategorien. Eignet sich meist für die vorübergehende Ausführung eines Befehls mit einer bestimmten Locale statt als dauerhafter Standard.
LANGUAGE Bestimmt die bevorzugten Meldungsübersetzungen in Programmen mit GNU gettext. Ändert nicht sämtliche Datums- und Zahlenformate; prüfen, wenn Meldungen in einer unerwarteten Sprache erscheinen.

Das Ubuntu-18.04-Handbuch zu locale(7) erklärt die Aufgaben und Prioritäten dieser Variablen sowie die Verwendung von LANGUAGE für übersetzte Meldungen. Programme ohne koreanische Übersetzung können auch bei einer koreanischen Locale englische Meldungen anzeigen.

Sichern Sie die Standarddatei vor Änderungen. Existiert der unten verwendete Sicherungsname bereits, wählen Sie einen anderen Namen, um die frühere Sicherung nicht zu überschreiben. Verwenden Sie bei der Wiederherstellung den tatsächlich gespeicherten Dateinamen.

sudo cp -a /etc/default/locale /etc/default/locale.backup

Koreanische Locale und Übersetzungen vorbereiten

Locale-Daten und übersetzte Programmmeldungen erfüllen unterschiedliche Aufgaben. Ein Locale-Name in einer Datei installiert weder die benötigten Daten noch alle Programmübersetzungen. Aktualisieren Sie zunächst die Paketlisten und installieren Sie die Locale-Werkzeuge sowie das koreanische Sprachpaket.

sudo apt-get update
sudo apt-get install locales language-pack-ko
sudo locale-gen ko_KR.UTF-8
locale -a

Fahren Sie erst fort, wenn der vorherige Befehl ohne Fehler beendet wurde. Enthält die abschließende Liste ko_KR.utf8, ist die koreanische UTF-8-Locale verfügbar. In der Liste kann .utf8 stehen, während die Beispiele .UTF-8 verwenden. locale-gen erzeugt Daten; die Wahl der Systemsprache ist ein eigener Schritt. Siehe das Ubuntu-18.04-Handbuch zu locale-gen.

Wird ein Paket nicht gefunden oder schlägt der Download fehl, beheben Sie zuerst Fehler von apt-get update und prüfen Sie Paketquellen und Netzwerk. Wird nach einer fehlgeschlagenen Installation nur ein Locale-Name gesetzt, können spätere Befehle Locale-Warnungen ausgeben.

Standardsprache des Systems ändern

Verwenden Sie die folgende Einstellung, wenn neben der Sprache auch Datums- und Zahlenformate standardmäßig der koreanischen Locale entsprechen sollen.

sudo update-locale --reset LANG=ko_KR.UTF-8
cat /etc/default/locale

--reset entfernt aus /etc/default/locale alle Variablen, die nicht im Befehl angegeben sind. So überschreiben bisherige LANGUAGE- oder LC_*-Einträge dieser Datei nicht den koreanischen Standard. Falls Sie einzelne Kategorien bewusst mit anderen Regionseinstellungen verwenden, übernehmen Sie die Option nicht unverändert: Bewahren Sie diese Einstellungen und ändern Sie nur die benötigten Variablen.

Die Konfigurationsdatei sollte den folgenden Eintrag enthalten. Automatisch erzeugte Kommentare dürfen ebenfalls vorhanden sein.

LANG=ko_KR.UTF-8

update-locale prüft die Werte und ändert die Standarddatei, jedoch nicht die Umgebungsvariablen einer bereits laufenden Shell. Das Ubuntu-18.04-Handbuch zu update-locale erläutert dieses Verhalten und --reset.

Erneut anmelden und Ergebnis prüfen

Bei einer SSH-Verbindung trennen Sie die Sitzung und stellen eine neue Verbindung her. Ein Serverneustart ist normalerweise unnötig, bestehende Sitzungen und Programme können aber die alte Umgebung behalten. Das erneute Verbinden mit tmux oder screen belegt nicht, dass eine neue Anmeldeumgebung geladen wurde. Prüfen Sie bei Systemdiensten auch deren eigene Umgebungseinstellungen.

Führen Sie die folgenden Befehle in der neuen Sitzung aus.

locale
locale charmap

Die Grundeinstellung ist aktiv, wenn LANG=ko_KR.UTF-8 angezeigt wird, nicht überschriebene Kategorien die koreanische Locale verwenden und die Zeichenkodierung UTF-8 lautet. Ein leerer Wert wie LC_ALL= ist kein Fehler, sondern bedeutet, dass keine globale Überschreibung gesetzt ist. Nutzen Sie das Handbuch zum Befehl locale, um die tatsächliche Umgebung zu prüfen.

Vergleichen Sie die Datumsdarstellung, indem Sie dasselbe Datum mit zwei Locales ausgeben. Diese Beispiele setzen die Locale nur für den jeweiligen Befehl und ändern die Standarddatei nicht.

LC_ALL=C date -d '2026-01-02' '+%A %B'
LC_ALL=ko_KR.UTF-8 date -d '2026-01-02' '+%A %B'

Der erste Befehl sollte die englischen Namen Friday January ausgeben; der zweite die Wochentags- und Monatsnamen der installierten koreanischen Locale. Datumssprache und Zeitzone sind unterschiedliche Einstellungen. Ist die Uhrzeit selbst falsch, lesen Sie die Anleitung zur Zeitzoneneinstellung unter Ubuntu 18.04 Server.

Prüfpunkte, wenn die Einstellung nicht wirkt

  • Locale-Warnungen: Prüfen Sie, ob locale -a die eingestellte Locale enthält. Falls nicht, kontrollieren Sie Paketinstallation und Datengenerierung. Ein Name in einer Datei erzeugt keine fehlenden Locale-Daten.
  • Die Datei nennt Koreanisch, die Sitzung verwendet eine andere Sprache: Prüfen Sie mit locale LC_ALL, einzelne LC_*-Variablen und LANGUAGE. Suchen Sie auch in ~/.profile, ~/.bashrc und /etc/environment nach eigenen Vorgaben. Ändern Sie nur notwendige Einstellungen und melden Sie sich erneut an.
  • Die Sprache ändert sich nur über SSH: SendEnv auf dem Client und AcceptEnv auf dem Server können LANG und LC_* übertragen. Vergleichen Sie die Client-Locale mit den auf dem Server erzeugten Locales. Siehe die OpenSSH-Clientkonfiguration und OpenSSH-Serverkonfiguration. Ändern Sie nicht wahllos den Fernzugriff und starten Sie SSH nicht allein wegen einer abweichenden Sprache neu.
  • Nur einzelne Meldungen bleiben englisch: Prüfen Sie, ob das Programm eine koreanische Übersetzung bietet, und kontrollieren Sie LANGUAGE. Eine einzelne englische Meldung bedeutet nicht, dass die gesamte Locale-Konfiguration fehlgeschlagen ist.
  • Koreanische Zeichen erscheinen als Kästchen oder Zeichensalat: Prüfen Sie die UTF-8-Kodierung des SSH-Terminals und die Unterstützung koreanischer Zeichen durch die Schriftart. Das Ändern der Server-Locale installiert weder Schriftarten noch eine koreanische Eingabemethode auf dem Client.

Ursprüngliche Einstellungen wiederherstellen oder Englisch wählen

Um zum ursprünglichen Zustand zurückzukehren, stellen Sie die vor der Änderung angelegte Sicherung wieder her und melden sich erneut an. Dabei werden auch die darin gespeicherten individuellen Regionseinstellungen zurückgesetzt.

sudo cp -a /etc/default/locale.backup /etc/default/locale
cat /etc/default/locale

Soll US-Englisch mit UTF-8 ein neuer Standard werden, statt den alten Zustand wiederherzustellen, erzeugen Sie diese Locale und aktualisieren die Einstellungen. Die folgenden Befehle setzen ebenfalls die einzelnen Locale-Einträge der Standarddatei zurück. Prüfen Sie vorher alle Ausnahmen, die erhalten bleiben sollen.

sudo locale-gen en_US.UTF-8
sudo update-locale --reset LANG=en_US.UTF-8

Prüfen Sie nach der erneuten Anmeldung mit locale und locale charmap. Erscheint nur über SSH weiterhin ein anderer Wert, kontrollieren Sie benutzerspezifische Umgebungsvariablen und die SSH-Umgebungsübertragung, statt die Sicherung wiederholt über die Konfigurationsdatei zu kopieren.