Wie ändere / behebe ich das Gebietsschema des Systems, wenn ich in einer Sprache einrichte, die in meinem Land nicht offiziell ist?

16

Wie richte ich ein globales Gebietsschema für den Computer ein?

Ich habe Kubuntu 14.04LTS vor kurzem auf Englisch installiert, aber da ich in Spanien bin, habe ich Spanien als Land ausgewählt und dann die Gebietsschemaoptionen geändert, damit ich alle länderspezifischen Einstellungen wie Zifferngruppierung, Dezimaltrennzeichen, Datumsformat usw. bekomme fügte die spanische Sprache hinzu.

Jetzt beklagen alle Anwendungen, dass das Gebietsschema falsch ist. check-language-supportsagt mir, dass ich en_ES.UTF-8das Gebietsschema des Systems verwende und dieses Gebietsschema in der Tat falsch ist, es gibt kein Gebietsschema für die englische Sprache in Spanien.

Ich habe versucht, Kubuntus Einstellungen für Land / Region und Sprache zu verwenden, aber das Problem wurde nicht behoben. Ich habe versucht, export LANG=en_GB.UTF-8und export LC_ALL=en_GB.UTF-8und dann sudo dpkg-reconfigure localesund das hat check-language-supportdazu geführt, dass ich jetzt eine korrekte Konfiguration habe, aber wenn ja, ist es nur in dieser Konsolensitzung. Dieses Problem verhindert auch, dass die Konsole Unicode-Zeichen anzeigt, und ich kann keine toten Schlüssel verwenden oder kein 'internationales Zeichen' wie ñ oder ç eingeben (diese funktionieren in anderen Anwendungen wie Firefox, mit denen ich diese Frage stelle).

Die Frage ist also: Wie richte ich ein globales Gebietsschema für den Computer ein?

Dies ist kein Fehlerbericht. Ich werde meinen Computer wahrscheinlich irgendwann neu installieren, wenn ich ihn nicht reparieren kann. Aber ich möchte wirklich wissen, wie ich diese WIRKLICH grundlegende Aufgabe ausführen kann.

Vielen Dank.

$ check-language-support
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
hunspell-en-ca libreoffice-help-en-gb libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au wspanish

$ cat /etc/default/locale
LANG="en_US.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"


$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_ES.UTF-8
LANGUAGE=en:es:en
LC_CTYPE="en_ES.UTF-8"
LC_NUMERIC=en_ES.UTF-8
LC_TIME=en_ES.UTF-8
LC_COLLATE="en_ES.UTF-8"
LC_MONETARY=en_ES.UTF-8
LC_MESSAGES="en_ES.UTF-8"
LC_PAPER=en_ES.UTF-8
LC_NAME=en_ES.UTF-8
LC_ADDRESS=en_ES.UTF-8
LC_TELEPHONE=en_ES.UTF-8
LC_MEASUREMENT=en_ES.UTF-8
LC_IDENTIFICATION=en_ES.UTF-8
LC_ALL=
$ update-locale
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en:es:en",
        LC_ALL = (unset),
        LC_PAPER = "en_ES.UTF-8",
        LC_ADDRESS = "en_ES.UTF-8",
        LC_MONETARY = "en_ES.UTF-8",
        LC_NUMERIC = "en_ES.UTF-8",
        LC_TELEPHONE = "en_ES.UTF-8",
        LC_IDENTIFICATION = "en_ES.UTF-8",
        LC_MEASUREMENT = "en_ES.UTF-8",
        LC_TIME = "en_ES.UTF-8",
        LC_NAME = "en_ES.UTF-8",
        LANG = "en_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Calabacin
quelle

Antworten:

9

Fehler wird hier gemeldet: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968 - "Änderung des Landes führt zu ungültigem Gebietsschema"

Problemumgehungen:

  1. Land auswählen Britisches Englisch - nicht amerikanisches Englisch (und dann Sprache Spanien)
  2. Oder bearbeiten Sie ~/.kde/env/setlocale.shsie manuell, nachdem Sie die Einstellungen für Land / Region und Sprache geändert haben
Freddy Vulto
quelle
8

Ich habe dieses Problem folgendermaßen gelöst. Ich habe untersucht, wie Locales funktionieren und welche unterschiedlichen Konfigurationssätze zwischen einigen Distributionen bestehen (ursprünglich Debian-basiert).

Ich benutze Linux Mint als meine primäre Systemdistribution und Debian als meine Systemserver.

Trotz der Tatsache, dass Ubuntu von Debian abgeleitet ist, unterscheiden sich die Ländereinstellungen geringfügig.

1) Überprüfen Sie, welche Gebietsschemas in Ihrem System installiert und generiert sind:

sudo locale -a

2) Entfernen Sie unerwünschte Gebietsschemas mit dem folgenden Befehl:

sudo localedef --delete-from-archive <YOUR DESIRED LOCALE HERE>

beispielsweise:

sudo localedef --delete-from-archive en_AG

Die Standardkonfiguration in /etc/default/localewird durch die persönlichen Einstellungen (nur für lokale Benutzer) überschrieben, die von der System Language App generiert wurden. Diese Einstellungen befinden sich in $HOME/.pam_environment( $HOME= Der Speicherort Ihres Basisordners).

Leeren Sie diese Datei und schreiben Sie die erforderlichen Konfigurationen.

Meine .pam_environmentAkte:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LC_PAPER=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_CTYPE=pt_BR.UTF-8

Die Variable LANG setzt den nicht konfigurierten LC_ * auf den dort konfigurierten Wertesatz. Beispielsweise:

Wenn das System nach der Variablen LC_TIME sucht und diese nicht festgelegt ist, wird der LANG-Wert als Standardwert für diese Variable verwendet (in diesem Fall LC_TIME).

Meine .pam_environmentgrundsätzlich sagt: setze fast alle Variablen auf pt_BR.UTF-8und die Systemsprache auf englisch.

Ich hoffe, diese Informationen können nützlich sein.

Girol
quelle
1

Sie möchten den Befehl update-locale verwenden . Besuchen Sie diese Seite, um zu erfahren, wie Sie sie verwenden. Sie führen es im Grunde (mit sudo) mit Argumenten aus, die das Gebietsschema so festlegen, wie Sie es möchten. Diese "Ändert die globalen Gebietsschemaeinstellungen" an Ihre Anforderungen.

Bearbeiten 1: Sie können auch nach locale-gen suchen, wenn das vorherige nicht für Sie funktioniert.

Zzzach ...
quelle
Vielen Dank. Das habe ich schon probiert. dpkg-reconfigure localesgenerierte alle möglichen Kombinationen für Englisch und Spanisch. Es scheint locale-gen für alle installierten Sprachkombinationen aufzurufen. locale-genFür alle Fälle habe ich auch mehrere Sprachumgebungen angefordert. Das Problem ist, dass en_ES nicht existiert
Calabacin
Sehr gut, ich werde weiterhin nach Lösungen suchen. Ich habe so ein Problem schon lange nicht mehr gesehen.
Zzzach ...
1

Wie Freddy Vulto in seiner Antwort kommentierte, ist dies ein bekannter Fehler, der hier gemeldet wird: https://bugs.launchpad.net/ubuntu/+source/kde-runtime/+bug/1322968

Bitte schauen Sie sich diesen Fehlerbericht an, wenn Sie ihn manuell beheben müssen. Es kann unter anderem durch Aufrufen von ~ / .kde / env / setlocale.sh (möglicherweise nach einer Änderung) behoben werden.

Calabacin
quelle
1

Eine andere Lösung ist das Alias ​​Englisch (Spanien) zu Englisch (USA):

echo en_ES.UTF-8 en_US.UTF-8 >> /etc/locale.aliases

al.
quelle
Auch wenn dies nur ein Workaround ist, finde ich es klug und ich mag es. Es funktioniert höchstwahrscheinlich auch :)
Calabacin
0

Es ist mir gelungen, das Problem vorübergehend zu beheben, indem ich die Systemsprache wie oben vorgeschlagen von Amerikanisches Englisch in Britisches Englisch geändert habe. Ich habe es über das Dialogfeld KDE-Systemeinstellungen> Gebietsschema> Sprachen gemacht. Amüsanterweise wurde eine Fehlermeldung angezeigt, die besagte, dass das Ersetzen der aktuellen Sprache nicht zulässig war. In der Praxis war dies jedoch der Fall, da die neuen Einstellungen angewendet wurden, als ich auf die Schaltfläche "Übernehmen" drückte und den Computer neu startete.

Yngvefaen
quelle
0

Ich hatte das gleiche Problem in meinem System: Kubuntu 16.04 LTS (Kernel: 4.4.0-31-generic (x86_64)). Aber ich habe es ganz einfach gelöst:

in „ Systemeinstellungen “ unter „ Personalisierung “, klicken Sie auf „ Ländereinstellungen “. Wählen Sie " Formate " aus dem rechten Menü. Aktivieren Sie im linken Bereich " Detaillierte Einstellungen " und ändern Sie jedes Detail wie Zahlen oder Uhrzeit in die gewünschte Sprache und Region.

(Systemeinstellungen> Ländereinstellungen> Formate> Detaileinstellungen)

Ich weiß, dass es elementar ist, aber für jemanden nützlich sein kann.

Jesmi
quelle
-3

Jungs, warum gehst du verrückt? Sie müssen nur in die Suchleiste oder in Unity Lens (falls Ubuntu) gehen und "Sprache" eingeben. Dort finden Sie die Anwendung "Land / Region & Sprache". Wählen Sie auf der Registerkarte "Land" die gewünschte Landessprache aus.

Wenn Sie das aktuelle Gebietsschema beibehalten und andere Optionen wie das Datumsformat oder Zoll- oder metrische Maße ändern möchten, verwenden Sie einfach die anderen Registerkarten! :)

Dies ist in Ubuntu Distribution 14.04 LTS und höher verfügbar.

Dave Marksmen
quelle
4
Ubuntu hat standardmäßig Unity. Dies ist ein KDE-Problem. Völlig unabhängig. Außerdem konnte das Problem durch Ändern der regionalen Einstellungen nicht behoben werden, wie unter op. Vielen Dank, dass Sie sich die Zeit genommen haben, dieses Problem zu beheben.
Calabacin