Wie kann ich die Befehlsausgabesprache von meiner Muttersprache auf Englisch umstellen, damit ich meine Frage zu Ask Ubuntu mit der englischen Befehlsausgabe (Fehlermeldungen) posten kann?
Wie kann ich die Befehlsausgabesprache von meiner Muttersprache auf Englisch umstellen, damit ich meine Frage zu Ask Ubuntu mit der englischen Befehlsausgabe (Fehlermeldungen) posten kann?
Antworten:
export LC_ALL=C
reicht. Alle nachfolgenden Befehlsausgaben erfolgen in englischer Sprache.
Weitere Informationen: Was macht "LC_ALL = C"?
Wenn Sie zur Muttersprache zurückkehren möchten, deaktivieren Sie die LC_ALL
Variable:
unset LC_ALL
Hier ist meine Bash-Funktion zum Umschalten zwischen DE- und EN-Gebietsschemas.
Sie können diesen Code mit Ihren bevorzugten Sprachen erweitern. Um dies zu benutzen, lege es in dein ~/.bashrc
(oder ~/.bash_profile
) -
Nennen Sie es mit _configure_locale EN
, um zu Englisch zu wechseln.
function _configure_locale() { # [profile]
local profile=${1:-EN}
case ${profile} in
DE|DE_DE|de_DE)
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_US:en"
;;
EN|EN_US|en|en_US)
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
;;
*)
echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
;;
esac
LC_PAPER="de_DE.UTF-8"; # independent from locale
LESSCHARSET="utf-8"; # independent from locale
MM_CHARSET="utf-8" # independent from locale
echo "locale settings" "${LANG}";
export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}
Im Allgemeinen schlage ich vor , alle drei Umgebungsvariablen zu ändern LC_ALL
, LANG
, LANGUAGE
Fehlverhalten einiger Programme zu vermeiden.
Das Erweitern des Codes auf Ihre Muttersprache ist ganz einfach. Sie finden die erforderlichen Werte, indem Sie den folgenden Befehl aufrufen
env |egrep -e 'LC_ALL|LANG'
case
und die Eingabe so festlegen, dass sie dem <lang>_<country>
Format entspricht. Dann können Sie es einfach unter der Annahme von UTF-8 durchlaufen. Wenn Sie wirklich eine aufgeräumte Lösung suchen, sollten Sie wahrscheinlich die Benutzereingaben überprüfen locale -a
, um sicherzustellen, dass das angeforderte Gebietsschema tatsächlich installiert ist.
Öffnen Sie ein Terminal Ctrl+ Alt+ Tund Typ:
LANG=en_US.UTF-8 bash
oder :
LC_ALL=C bash
Jetzt ist die Terminalausgabe in englischer Sprache. Sie können es mit überprüfen locale
.
Es ist möglich, einen Befehl zu geben, um dies mit einer dauerhaftenalias
zu tun . Öffnen Sie die .bashrc
Datei mit Ihrem bevorzugten Editor und geben Sie den folgenden Code ein:
alias basheng='LANG=en_US.UTF-8 bash'
oder :
alias basheng='LC_ALL=C bash'
Starten Sie die Bash-Shell neu. Jetzt hast du den Befehl basheng
. Tippe es in den Bash, um eine englische Bash-Shell zu erhalten. So verlassen Sie den englischen Shell-Typ exit
.
Quelle:
LANG
ist nicht ausreichend , um alle Chance Ausgang.
LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash
besser?
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
.
Dies wird über Gebietsschemaeinstellungen konfiguriert, die über Umgebungsvariablen festgelegt werden können. Es gibt vier Ebenen mit Variablen. Der erste Wert hat Vorrang:
LANGUAGE
- Verwenden Sie es nicht, es ist selten nützlich und kann Fehler verursachen. Leider haben es einige Versionen von Ubuntu eingestellt, so dass Sie es möglicherweise deaktivieren müssen.LC_ALL
- überschreibt kategoriespezifische Einstellungen, die in erster Linie von Programmen verwendet werden sollen, die im Standardgebietsschema ausgeführt werden sollen. Nicht zur Verwendung als globale Einstellungen gedacht.LC_
: LC_CTYPE
, LC_MESSAGES
, LC_TIME
, ....LANG
- Legt das Standardgebietsschema für alle Kategorien fest, die in globalen Benutzereinstellungen verwendet werden sollen.Das "normale" Gebietsschema mit allen nicht übersetzten Nachrichten, Standardzeit- und Zahlenformaten, ASCII als Zeichensatz usw. wird aufgerufen C
. Dieses Gebietsschema ist auf jedem System vorhanden.
Um also ein Programm mit Meldungen in Englisch auszuführen, führen Sie Folgendes aus
unset LANGUAGE; LC_MESSAGES=C myprogram --option
oder
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Führen Sie aus, um ein Programm mit deaktivierter Lokalisierung auszuführen
env -u LANGUAGE LC_ALL=C myprogram --option
Beachten Sie jedoch, dass dadurch die Zeichencodierung auf ASCII umgestellt wird (also kein Unicode, Latin-1 usw.).
Siehe Was soll ich für mein Gebietsschema festlegen und was bedeutet dies? Für eine detailliertere Übersicht der Gebietsschemas.
LANGUAGE
ist, dass es Vorrang hat LC_ALL
, was zu Fehlern führt, da Programme so eingestellt sind LC_ALL
, dass sie eine vorhersehbare Ausgabe erhalten, und dann verwirrt sind, weil sie nicht die erwartete Ausgabe erhalten.
LANGUAGE
ist dennoch eine schlechte Idee, da die Vorteile sehr gering sind, während die Fehler ärgerlich und schwer zu finden sein können. Sie haben jedoch Recht, ich sollte das Aufheben erwähnen LANGUAGE
.
Am einfachsten öffnen Sie das Terminal, indem Sie Alt + F2 drücken und den folgenden Befehl ausführen:
env LANGUAGE=en gnome-terminal
in deinem ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
dann
source ~/.bashrc
prüfen Sie
$ locale
LANG=pl_PL.utf8
LANGUAGE=
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES=C
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=
Warum zuerst deaktivieren?
LC_ALL Überschreibt einzelne LC_ * -Einstellungen: Wenn LC_ALL eingestellt ist, hat keine der folgenden Auswirkungen.
Getan.
LANG
wie folgt ändern , und es kann hilfreich sein, aber es ist nicht erforderlich, dass kopierte Fehlermeldungen in englischer Sprache vorliegen. Wir verlangen, dass das, was der Autor geschrieben hat, auf Englisch ist (obwohl wir es normalerweise übersetzen, anstatt Fragen zu schließen). Daher ist eine Frage in Englisch mit spanischem Terminaltext in Ordnung, eine Frage in Spanisch mit englischem Terminaltext dagegen nicht.