GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Warum ändert das Überschreiben der Lang-Umgebungsvariable nicht die Sprache für mich?

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 beide LANG einzustellen und LANGUAGE 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.


Ubuntu
  1. Warum funktioniert das Parent Shell Here-Dokument nicht für Unterbefehle in Dash, aber Bash funktioniert?

  2. Warum funktioniert die Regex in Bash nur, wenn es sich um eine Variable handelt und nicht direkt?

  3. Das Passwort für das verschlüsselte Dateisystem wird nicht aktualisiert, wenn ich das Benutzerpasswort ändere?

  4. Warum beendet Strg+\ (Backslash) den Prozess nicht mehr?

  5. Maven-Umgebungsvariable funktioniert nicht auf anderem Terminal?

Warum den Pantheon-Desktop für Linux Elementary OS verwenden

Ubuntu – Warum werden diese ausgefallenen Zeichen nicht in der Eingabeaufforderung angezeigt?

Warum fragt Network Manager immer nach dem Schlüsselbundpasswort?

Warum gibt es zwei Symbole im Unity Launcher für Nautilus?

Umgebungsvariable LANG und LANGUAGE in Debian-basierten Systemen

Was ist die Umgebungsvariable XDG_VTNR?