Gebietsschemaeinstellungen sind nicht richtig. Wie kann ich sie zurücksetzen?

43

Ich habe ein Problem mit der Ländereinstellung.
Die Sortierreihenfolge in nautilusund anderen Programmen hat sich geändert.
Beim Starten einer GUI-App werden im Terminal Gebietsschemafehler angezeigt.

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

Der localeBefehl erzeugt Fehlermeldungen

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

Wie in der Askubuntu-Frage vorgeschlagen , habe ich die folgenden Befehle ausgeführt, aber es gab keine Änderung.

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

Ich habe auch versucht, den Vorschlag in Askubuntu Frage ... auch keine Änderung.

    apt-get install --reinstall locales

Ich glaube, es begann, als ich den Urdu-Eingabemethoden-Editor über vorübergehend installierte und deinstallierte IBus. Es geschah mit Sicherheit am selben Tag.

Vielleicht hängt es mit IBus zusammen, aber ich hatte vorher noch keine Probleme damit.

  • Das Betriebssystem ist 10.04
Peter.O
quelle

Antworten:

27

Ich habe es geschafft, die Dinge wieder "normal" zum Laufen zu bringen.

Nachdem ich viele Paket-Neuinstallationen usw. ausprobiert hatte, einschließlich des vollständigen Entfernens von IBus (alles ohne Auswirkung), begann ich zu glauben, dass dies durch eine Konfigurationseinstellung verursacht werden könnte, die durch die Neuinstallation nicht geändert wird.

Mir war aufgefallen, dass die Ausgabe von localeUTF-8-Zuweisungen ziemlich leer war, daher habe ich dies in einer kürzlich installierten VM überprüft ... Alle Einträge von LC_ * (außer LC_ALL, die alle anderen überschreibt ) wurden mit dem .UTF-8Suffix gesetzt. Deshalb habe ich die LC_ * -Werte wie unten gezeigt manuell eingestellt.

Ich habe wahrscheinlich konnte nur verwendet LC_ALL="en_AU.UTF-8", aber darüber im Lesen, ich habe entdeckt , wie das anpassen System Datums- und Uhrzeitformat , und LC_ALLwürde meine benutzerdefinierten Einstellungen außer Kraft setzen.

Ich weiß nicht, ob ich die am besten geeignete Methode verwendet habe, aber es funktioniert!

Die geänderte Datei ist: /etc/default/locale

  • Dies zeigt den Inhalt vor dem Mod:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • Dies zeigt den Inhalt nach dem Mod:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_CTYPE="en_AU.UTF-8"
    LC_NUMERIC="en_AU.UTF-8"
    LC_TIME="en_AU.UTF-8"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU.UTF-8"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU.UTF-8"
    LC_NAME="en_AU.UTF-8"
    LC_ADDRESS="en_AU.UTF-8"
    LC_TELEPHONE="en_AU.UTF-8"
    LC_MEASUREMENT="en_AU.UTF-8"
    LC_IDENTIFICATION="en_AU.UTF-8"
    

Dieselbe Datei in der VM enthielt nur diese eine Zeile:

    LANG="en_AU.UTF-8" 

Peter.O
quelle
danke für deinen post. Für die Aufzeichnung musste ich mein System neu starten, damit das Update funktioniert. (Vielleicht könnte Emacs Eval-Buffer verwendet haben?)
David LeBauer
19

Das Umdefinieren der Gebietsschemas und das Neukonfigurieren können ausreichen, um das Problem zu beheben:

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

Wenn Sie ausführen sudo dpkg-reconfigure locales, können Sie das gewünschte Gebietsschema auswählen, indem Sie auf klicken spacebarund mit und bewegen, bevor Sie darauf klicken Enter.

Guillaume Vincent
quelle
Vielleicht ist es erwähnenswert, dass Sie die gewünschten Sprachen mit der Leertaste auswählen.
Daniel Kmak
@ Daniel Ich verstehe nicht: Leertaste?
Guillaume Vincent
1
Beim Laufen dpkg-reconfigurebekommst du eine Liste mit Checkboxen und um die Sprache auszuwählen musst du die Leertaste benutzen. Da das Konsolenprogramm keine solchen Informationen enthält, dachte ich, es würde helfen, sie unter die Antwort zu schreiben. Ich wusste nicht, wie ich diese Sprachen auswählen sollte.
Daniel Kmak
1
@ Daniel fertig :)
Guillaume Vincent
15

Ich bin auch auf dieses Problem gestoßen, wie Sie sehen, ist Ihr LC_ALLleer. Ich habe folgendes getan und es hilft:

$ sudo vim /etc/environment

und setze das LC_ALLauf so etwas wie en_US.UTF-8, meins ist:

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

Starten Sie dann neu und führen Sie localees aus. Es sollte ungefähr so ​​aussehen:

LANG=zh_CN.utf8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
McKelvin
quelle
Diese Lösung funktioniert gut auf Ubuntu 12.04 LTS präzise
speciousfool
Einstellung LC_ALLwird abgeraten. "Es wird dringend davon abgeraten, LC_ALL zu verwenden, da es alles außer Kraft setzt. Bitte verwenden Sie es nur zum Testen und legen Sie es niemals in einer Startdatei fest." wiki.debian.org/Locale
gertvdijk
4

Wenn Sie über SSH (z. B. von einem MacOSX-Gerät) eine Remote-Verbindung zum Computer herstellen, müssen Sie diese Variablen auf dem Computer festlegen, von dem aus Sie eine Verbindung herstellen

Fügen Sie ~ / .bash_profile Folgendes hinzu

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"
Somatik
quelle
1
Ist dies ein bekannter Fehler bei der Verbindung von OS X?
MindTooth
Keine Ahnung, ob dies
beabsichtigt
2

Ich möchte nur hinzufügen, dass ich auch mein Heimatprofil bearbeiten musste:

gedit ~/.profile

In Ihrem Fall würde es also so aussehen:

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

Abmelden + Anmelden. Und alles ist wie erwartet.

Aas
quelle
Ich brauchte exportam Anfang jeder Zeile, und ich habe es in ~/.bashrc.
Sparhawk
2

Ich hatte mehrere Monate lang das gleiche Problem, viele Software-Tools warennten vor fehlerhaften Gebietsschema-Einstellungen und einige lehnten sogar die Ausführung ab. Ich möchte die englische Sprache verwenden, aber die schwedischen Währungs- und Zahleneinstellungen.

Was für mich schließlich funktionierte, war die Bearbeitung, /etc/default/localebei der ich alles in dieser Datei entfernte. Ich habe dann das Unity-Sprach-Setup gestartet (Settings -> Language Support), alles eingerichtet (Ubuntu wollte einige fehlende Komponenten installieren) und gedrückt, "Apply System-wide"als ich fertig war.

Mein /etc/default/localesieht jetzt so aus.

LC_NUMERIC = "sv_SE.UTF-8"
LC_TIME = "sv_SE.UTF-8"
LC_MONETARY = "sv_SE.UTF-8"
LC_PAPER = "sv_SE.UTF-8"
LC_IDENTIFICATION = "sv_SE.UTF-8"
LC_NAME = "sv_SE.UTF-8"
LC_ADDRESS = "sv_SE.UTF-8"
LC_TELEPHONE = "sv_SE.UTF-8"
LC_MEASUREMENT = "sv_SE.UTF-8"
LANGUAGE = "de"
LANG = "de_DE.UTF-8"

Der große Unterschied zwischen dieser und meiner Originaldatei ist LANGUAGE="en".

David A
quelle
Mein Lebensretter ...
John Joe
2

Es ist schon eine Weile her, dass dies gepostet wurde, aber kürzlich hatte ich Probleme mit "Gebietsschema" -Variablen und keine Antwort gab mir Ergebnisse. Vielleicht könnte meine eigene Erfahrung jemand anderem helfen.

Meine LANG- Variable war leer und das bereitete mir Probleme.

$locale

Ausgabe:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

Ich habe einige der folgenden Befehle ausprobiert:

sudo locale-gen
sudo dpkg-reconfigure locales

Ohne Erfolg. Ich habe versucht, die Datei / etc / default / locale zu bearbeiten und finde heraus, dass sie bereits in Ordnung ist:

$cat /etc/default/locale

Ausgabe:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

Auch meine .pam_environment- Datei schien zu stimmen :

$cat .pam_environment

Ausgabe:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

Ich möchte keine zusätzlichen Inhalte zu Profil- oder Bash-Dateien hinzufügen, hauptsächlich, weil ich die Ursache nicht kenne, obwohl dies das Problem lösen könnte, und das hat mich geärgert.

Schließlich habe ich mich gefragt, ob etwas bereits "locale" -Variablen überschreibt, und ich habe den nächsten Befehl ausgeführt:

$cat .bashrc | grep LANG

Ausgabe:

unset LANG

Daher habe ich in meiner .bashrc- Datei zwei Zeilen gefunden , in denen die Ursache liegt (ich füge nicht die gesamte Datei ein):

unset LANG
export LC_ALL=POSIX

Ich weiß nicht, wie oder wann diese Zeilen in meiner Bash-Datei gelandet sind, aber ich bin mir völlig sicher, dass ich sie nicht geschrieben habe. Vielleicht wurde meine .bashrc ersetzt, als ich mit Webentwicklungs-Dingen gearbeitet habe Ich weiß es nicht, aber da ich weiß, dass dies unbeabsichtigt war und es Leute gibt, die keine Ahnung haben, was "locale" Fehlverhalten verursacht, könnte dies ihnen vielleicht helfen. Jedenfalls löste das Kommentieren dieser Zeilen und ein Neustart das Problem für mich. Hier beantwortete ich die gleiche Frage, die sich auf sublimeT3-Beschwerden über die LANG- Variable konzentrierte.

smajtkst
quelle
1

Scheint irgendwie ein Update gebratenen Gebietsschemas. Das Update, das ich gefunden habe, bestand darin, mich abzumelden, die vor dem Anmelden ausgewählte Sprache zu ändern und sich erneut anzumelden.

Es kann auch hilfreich sein, die Gebietsschemas in synaptic neu zu installieren, obwohl ich nicht bestätigen kann, dass dies das Problem für mich behoben hat. Ich denke, es wurde abgemeldet oder so.

RolandiXor
quelle
Erneut anmelden und Sprache ändern. Ich sehe keine Möglichkeit, die Sprache bei der Anmeldung zu ändern. Ich sehe Text, in dem die Änderung der Sprache erwähnt wird, aber es gibt keine Option (Schaltflächen oder ähnliches). Vielleicht liegt das daran, dass ich nur australisches Englisch aktiviert habe und ausgeführt habe alle Befehle oben .. so ist es noch ein Rätsel im Moment ...
Peter.O
@ red.bear: Versuchen Sie, language-pack-enund zu installieren, und language-support-enwiederholen Sie dann den obigen Vorgang.
RolandiXor
1

Ich habe versucht, die Gebietsschemadatei zu bearbeiten und beim Anmelden verschiedene Sprachen auszuwählen.

Das Filtern nach fehlerhaften Paketen mit Synaptic und das vollständige Entfernen der 9 fehlerhaften Pakete hat bei mir funktioniert (libreoffice und python uno).

Ich kann LibreOffice jedoch nicht installieren, ohne den Paketmanager anscheinend zu beschädigen. Es wird jedoch installiert.

Ich bin am 11.04 i386. Haftungsausschluss: Während des letzten Teils meiner Installation trat ein Stromausfall auf, als Ubuntu Updates herunterlud.

Marajit
quelle
1

Ich hatte das gleiche Problem, aber wenn ich zu System> Administration> Sprachunterstützung gehe, kann das Problem möglicherweise behoben werden, da Sie möglicherweise aufgefordert werden, einige Pakete zu installieren, und dann ist es in Ordnung !! Es hat bei mir funktioniert und ich denke, es wird dir dasselbe antun !!

Nickolas Pylarinos
quelle
0

Lauf

export LC_ALL="zh_CN.utf8"
ibus-setup

und wählen Sie eine der gewünschten Eingabemethoden.

mobeyond
quelle
0

Ich hatte ein ähnliches Problem (das in Thunderbird am auffälligsten ist) wie im en_AU-Beispiel hier - aber ich komme aus en_NZ - und nach einigem Ausprobieren mit Ubuntu 17.10 bestand mein Fix darin, ~ / .pam_environment zu aktualisieren und alle anderen Einträge zu ersetzen ( meistens en_AU und en_US) mit en_NZ, dann Neustart.

Schade, dass Sie nicht einfach Ihr Gebietsschema festlegen und das tun lassen, was es zu tun vorgibt - am meisten enttäuscht, dass das Ausführen von dpkg-configure-Gebietsschemas eigentlich nichts Sinnvolles zu sein scheint.

BlakJak
quelle