GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč mi přepisování proměnné prostředí Lang nemění jazyk?

Snažím se spustit aplikaci v jiném jazyce, než je moje aktuální prostředí. Abych byl jednoduchý, chtěl jsem změnit jazyk ls .

Tady je to, co jsem všude četl (související otázky viz níže):nastavte LANG do jednoho z podporovaných národních prostředí, např.:

LANG=nl_NL.UTF-8 ls /nonexistent

aby zobrazoval holandský (NL) výstup.

Stále však dostávám anglický výstup:

$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory

Moje aktuální prostředí:

$ 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=

Pro jistotu jsem zkontroloval:

  • Je podporováno národní prostředí:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    [email protected] ISO-8859-15
    
  • Vygeneruje se národní prostředí:

    sudo locale-gen nl_NL.UTF-8
    

    a sudo dpkg-reconfigure locales také ukazuje, že je vygenerován.

  • Nainstaloval se holandský jazykový balíček (již nainstalován):

    sudo apt-get install language-pack-nl
    

Co jsem ještě zkusil?

  • Pomocí export pro nastavení obou LANG a LANGUAGE místo předřazení příkazu.
  • Nastavení také LC_ALL .

Je ironií, že některé (pouze některé!) GUI aplikace jsou ve skutečnosti v holandštině, ale vůbec jsem to nenakonfiguroval!

Jsem na Kubuntu 12.04(.2), ​​pokud na tom záleží.

Podobné otázky (bez úspěchu):

  • Je možné dočasně změnit jazyk uživatelského rozhraní?
  • Jak přepsat národní nastavení systému jedním příkazem?
  • Dočasně změnit jazyk zpráv/varování/chyb terminálu (prokázalo se, že to funguje, ale mně to nefunguje)
  • Jak přidám národní prostředí na server ubuntu?

Co je v mém systému špatně? Kde to dále ladit?

Přijatá odpověď:

Protože LANGUAGE, který má přednost před LANG, je nastaven a nezměněn.

$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet

Více informací je v dokumentaci GNU gettext:

GNU gettext dává pro účely zpracování zpráv přednost LANGUAGE před LC_ALL a LANG, ale stále musíte mít LANG (nebo LC_ALL) nastaven na primární jazyk; to vyžadují ostatní části systémových knihoven.


Ubuntu
  1. Změna jazyka a rozložení klávesnice u různých distribucí

  2. Proč nefunguje ~/.bash_profile?

  3. Proč dokument Parent Shell Here nefunguje pro dílčí příkaz v Dash, ale funguje Bash?

  1. Heslo pro systém šifrovaných souborů se neaktualizuje, když změním heslo uživatele?

  2. Proč Ctrl+\ (obrácené lomítko) už proces nezabije?

  3. Proměnná prostředí Maven nefunguje na jiném terminálu?

  1. Jak změnit jazyk mého git?

  2. Proměnná prostředí TERM není nastavena

  3. Proměnné prostředí LANG a LANGUAGE v systémech založených na Debianu