Perché l'override della variabile d'ambiente LANG non sta cambiando la lingua per me?


11

Sto cercando di eseguire un'applicazione in un'altra lingua come il mio ambiente attuale. Per iniziare, volevo cambiare la lingua di ls.

Ecco cosa ho letto dappertutto (vedi sotto per le domande correlate): impostare LANGsu una delle lingue supportate, ad esempio:

LANG=nl_NL.UTF-8 ls /nonexistent

per mostrare l'output olandese (NL).

Tuttavia, ottengo ancora un output in inglese:

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

Il mio ambiente attuale:

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

A dire il vero, ho controllato:

  • La locale è supportata:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    nl_NL@euro ISO-8859-15
    
  • La locale è generata:

    sudo locale-gen nl_NL.UTF-8
    

    e sudo dpkg-reconfigure localesmostra anche che è stato generato.

  • Installato il language pack olandese (già installato):

    sudo apt-get install language-pack-nl
    

Cos'altro ho provato?

  • Usare exportper impostare entrambi LANGe LANGUAGEinvece di anteporre il comando.
  • Impostazione anche LC_ALL.

Ironia della sorte, alcune (solo alcune!) Applicazioni GUI sono in realtà in olandese, ma non l'ho ancora configurato!

inserisci qui la descrizione dell'immagine

Sono su Kubuntu 12.04 (.2), ​​per quanto conta.

Domande simili (inutilmente):

Cosa c'è di sbagliato nel mio sistema? Dove debug ulteriormente?

Risposte:


12

Perché LANGUAGE, che ha la precedenza su LANG, è impostato e invariato.

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

Maggiori informazioni sono nella documentazione GNU gettext :

GNU gettext dà la preferenza a LANGUAGE rispetto a LC_ALL e LANG ai fini della gestione dei messaggi, ma è comunque necessario avere LANG (o LC_ALL) impostato sulla lingua principale; questo è richiesto da altre parti delle librerie di sistema.


Giuro che ci avevo già provato. Tuttavia, guardando la mia cronologia della shell, penso che sia perché l'ho provato solo prima di generare la locale. Potresti includere una fonte per cui "LANGUAGE ha la precedenza su LANG"? Grazie per il testa a testa.
gertvdijk,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.