Ich versuche, eine Anwendung in einer anderen Sprache als meiner aktuellen Umgebung auszuführen. Um einfach anzufangen, wollte ich die Sprache von ls
ändern .
Hier ist, was ich überall gelesen habe (siehe unten für verwandte Fragen):setze LANG
zu einem der unterstützten Gebietsschemas, z. B.:
LANG=nl_NL.UTF-8 ls /nonexistent
um niederländische (NL) Ausgabe anzuzeigen.
Ich bekomme jedoch immer noch eine englische Ausgabe:
$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory
Meine aktuelle Umgebung:
$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
Sicherheitshalber habe ich nachgesehen:
-
Das Gebietsschema wird unterstützt:
$ grep nl_NL /usr/share/i18n/SUPPORTED nl_NL.UTF-8 UTF-8 nl_NL ISO-8859-1 [email protected] ISO-8859-15
-
Das Gebietsschema wird generiert:
sudo locale-gen nl_NL.UTF-8
und
sudo dpkg-reconfigure locales
zeigt auch, dass es generiert wurde. -
Holländisches Sprachpaket installiert (bereits installiert):
sudo apt-get install language-pack-nl
Was habe ich noch versucht?
- Mit
export
um beideLANG
einzustellen undLANGUAGE
anstatt den Befehl voranzustellen. - Einstellung auch
LC_ALL
.
Ironischerweise sind einige (nur einige!) GUI-Anwendungen tatsächlich auf Niederländisch, aber ich habe das überhaupt nicht konfiguriert!
Soweit das wichtig ist, verwende ich Kubuntu 12.04(.2).
Ähnliche Fragen (vergeblich):
- Ist es möglich, die Sprache der Benutzeroberfläche vorübergehend zu ändern?
- Wie überschreibe ich das Systemgebietsschema mit einem einzigen Befehl?
- Sprache für Terminalmeldungen/Warnungen/Fehler vorübergehend ändern (funktioniert nachweislich, funktioniert aber bei mir nicht)
- Wie füge ich ein Gebietsschema zum Ubuntu-Server hinzu?
Was ist auf meinem System falsch? Wo kann man das weiter debuggen?
Akzeptierte Antwort:
Weil LANGUAGE, das Vorrang vor LANG hat, gesetzt und unverändert bleibt.
$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet
Weitere Informationen finden Sie in der GNU-Gettext-Dokumentation:
GNU gettext bevorzugt LANGUAGE gegenüber LC_ALL und LANG zum Zweck der Nachrichtenbehandlung, aber LANG (oder LC_ALL) muss immer noch auf die primäre Sprache eingestellt sein; dies wird von anderen Teilen der Systembibliotheken benötigt.