GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Perché l'override della variabile d'ambiente Lang non cambia la lingua per me?

Sto cercando di eseguire un'applicazione in un'altra lingua come ambiente corrente. Per iniziare in modo semplice, volevo cambiare la lingua di ls .

Ecco cosa leggo dappertutto (vedi sotto per domande correlate):set LANG in una delle impostazioni locali supportate, ad esempio:

LANG=nl_NL.UTF-8 ls /nonexistent

per visualizzare l'output in olandese (NL).

Tuttavia, ottengo ancora l'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=

Per essere sicuro, ho controllato:

  • La lingua è supportata:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    [email protected] ISO-8859-15
    
  • Viene generata la lingua:

    sudo locale-gen nl_NL.UTF-8
    

    e sudo dpkg-reconfigure locales mostra anche che è stato generato.

  • Installato il pacchetto di lingua olandese (già installato):

    sudo apt-get install language-pack-nl
    

Cos'altro ho provato?

  • Utilizzo di export per impostare entrambi LANG e LANGUAGE invece 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 affatto configurato!

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

Domande simili (senza risultato):

  • È possibile modificare temporaneamente la lingua dell'interfaccia utente?
  • Come sostituire le impostazioni locali del sistema con un singolo comando?
  • Cambiare temporaneamente la lingua per messaggi/avvisi/errori del terminale (ha dimostrato di funzionare, ma per me non funziona)
  • Come aggiungo le impostazioni locali al server Ubuntu?

Cosa c'è che non va nel mio sistema? Dove eseguire il debug di questo ulteriore?

Risposta accettata:

Perché LINGUA, che ha la precedenza su LANG, è impostata e invariata.

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

Maggiori informazioni sono nella documentazione di GNU gettext:

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


Ubuntu
  1. Modifica della lingua e del layout della tastiera su varie distribuzioni

  2. Perché la Regex in Bash funziona solo se è una variabile e non direttamente??

  3. Come scansionare le unità flash per i virus di Windows mentre si è su Linux? (non Clamav)?

  4. La variabile d'ambiente Maven non funziona su un altro terminale?

  5. Perché Ubuntu è il migliore per la gestione dei server

Perché usare il desktop Pantheon per Linux Elementary OS

Ubuntu:perché questi personaggi fantasiosi non vengono mostrati nel prompt?

Perché Network Manager chiede sempre la password del portachiavi?

Perché Ctrl+\ (barra rovesciata) non interrompe più il processo?

Perché ci sono due icone in Unity Launcher per Nautilus?

Perché non vedo MSG_EOR per SOCK_SEQPACKET su Linux?