web-dev-qa-db-fra.com

Où la variable d'environnement LANGUAGE est-elle définie?

Dans quel fichier de configuration la variable d'environnement LANGUAGE est-elle définie? (Ou comment puis-je le changer par d'autres moyens?)

Contexte: Je m'amusais avec les paramètres de langue dans kubuntu et ai installé le russe par accident. Maintenant, ça ne va pas totalement disparaître. Oui, l'anglais apparaît dans l'interface graphique, mais le russe est en ligne de commande. Autant que je sache, cela est dû à la variable d'environnement LANGUAGE. Voir la troisième ligne:

leon@leon-Desktop:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en:ru:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

Tout est réglé correctement à l'exception de LANGUE. J'ai parcouru un certain nombre d'instructions sur la façon de configurer les paramètres régionaux/la langue, mais rien ne semble changer de LANGUE (bien qu'ils aient modifié d'autres variables d'environnement, comme LANG). Donc, je ne suis pas intéressé par un aperçu de la façon de changer les paramètres régionaux. J'ai besoin de savoir spécifiquement comment changer de langue (à moins que je ne comprenne totalement la situation). Pour ce que ça vaut, LANG est défini dans/etc/default/locale, mais LANGUAGE n’est pas défini ici. (J'ai essayé de définir LANGUE à cet endroit et cela a été remplacé d'une certaine manière.) Si je règle manuellement LANGUAGE sur fr, alors ce shell-là fonctionne bien, donc je pense que seule la langue doit être changée.


MODIFIER:

Pour que ce soit bien clair, régler LANGAUGE dans/etc/default/locale ça n’aide pas. De plus, ~/.pam_environment n'existe pas.

Voir ci-dessous. LANGUAGE est défini sur "en" dans/etc/default/locale. J'ai redémarré la machine. J'ai vérifié le contenu de/etc/default/locale. Cependant, apt-get produit toujours en russe car LANGUAGE a été écrasé ailleurs (produisant la sortie ci-dessus à partir de locale).

leon@leon-Desktop:~$ cat /etc/default/locale 
LANG="en_US.UTF-8"
LANGUAGE="en"
leon@leon-Desktop:~$ cat ~/.pam_environment
cat: /home/leon/.pam_environment: No such file or directory
leon@leon-Desktop:~$ Sudo apt-get update
Игн http://mirror.anl.gov utopic InRelease

...

EDIT 2:

Il semble que ~/.kde/env/setlocale.sh était la victime. Je suppose que je vais déposer un rapport de bogue KDE.

$ cat ~/.kde/env/setlocale.sh
export LANGUAGE=en:ru:en
export LANG=en_US.UTF-8
export LC_NUMERIC=en_US.UTF-8
export LC_TIME=en_US.UTF-8
export LC_MONETARY=en_US.UTF-8
export LC_PAPER=en_US.UTF-8
export LC_IDENTIFICATION=en_US.UTF-8
export LC_NAME=en_US.UTF-8
export LC_ADDRESS=en_US.UTF-8
export LC_TELEPHONE=en_US.UTF-8
export LC_MEASUREMENT=en_US.UTF-8
7
lnmaurer

Tiré de help.ubuntu.com

The LANGUAGE priority list

The "LANGUAGE" environment variable, which is set by the GUIs more often than not on 
Ubuntu desktops, controls language for message and menu display for GNU compatible 
applications. For such applications it overrides whatever locale names are set in 
"LANG" and "LC_MESSAGES".

Unlike "LANG" and "LC_*", "LANGUAGE" should not be assigned a complete locale name 
including the encoding part (e.g. ".UTF-8"). Instead "LANGUAGE" should contain a 
colon separated priority list of language codes, for instance "es:de:en". A single 
language code is also correct.

Aussi boiteux qu'une réponse de lien est, this est probablement ce que vous voulez.

Le message référencé dans le lien ci-dessus explique que si vous souhaitez modifier la langue qui apparaît sur la ligne de commande, vous devez définir les paramètres LANG et LANGUAGE en conséquence dans /etc/default/locale ou ~/.pam_environment.

Puisque vous avez déjà essayé de définir LANGUAGE dans /etc/default/locale, je tenterais de le configurer dans ~/.pam_environment car il s'agit d'un fichier de configuration utilisateur et son contenu doit écraser tout ce qui est défini dans l'environnement global.

MODIFIER:

Je suis allé de l'avant et j'ai essayé de reproduire le problème que vous avez décrit en définissant LANGUAGE dans /etc/default/locale sur "en:ru:en" en vous déconnectant puis en vous reconnectant. Cela a fonctionné. Les messages d'erreur étaient ensuite affichés en russe, au moins pour le compte root (qui était le compte sur lequel je testais cela). Changer la valeur de LANGUAGE en "en" l'a corrigé.

3
Alexej Magura

On dirait que la variable LANGUAGE est définie sur ru: en ou que quelque chose se trouve dans /etc/default/locale, essayez donc de le remplacer par simplement en.

La réponse, écrite par Alexej Magura, mentionne également ~/.pam_environment. Peut-être, puisque vous avez Kubuntu, d'autres fichiers peuvent être impliqués à la place (ou aussi).

1
Gunnar Hjalmarsson