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 entrambiLANG
eLANGUAGE
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.