LANGUAGE环境变量在哪里设置?

什么配置文件是LANGUAGE环境变量集? (或者我如何通过其他方式改变它?)

背景:我正在玩kubuntu中的语言设置并偶然安装俄语。 现在它不会完全消失。 是的,英语出现在GUI中,但它在命令行上是俄语。 我认为最好,这是由于LANGUAGE环境变量。 见第三行:

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= 

除LANGUAGE外,一切都设置正确。 我已经完成了一些关于如何配置语言环境/语言的说明,但似乎没有任何改变LANGUAGE(虽然它们已经改变了其他环境变量,如LANG)。 所以,我对如何更改区域设置的概述不感兴趣。 我需要具体知道如何更改LANGUAGE(除非我完全误解了这种情况)。 对于它的价值,LANG在/ etc / default / locale中设置,但不在那里设置LANGUAGE。 (我尝试在那里设置LANGUAGE,并以某种方式覆盖它。)如果我手动将LANGUAGE设置为en,那么该特定的shell工作正常,所以我认为只需要更改LANGUAGE。


编辑:

为了说清楚,在/ etc / default / locale 设置LANGAUGE 没有用 。 另外,〜/ .pam_environment不存在。

见下文。 LANGUAGE在/ etc / default / locale中设置为“en”。 我重新启动了机器。 我validation了/ etc / default / locale的内容。 但是,apt-get仍然以俄语输出,因为LANGUAGE被其他地方覆盖(从语言环境产生上述输出)。

 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 

编辑2:

它看起来像〜/ .kde / env / setlocale.sh是罪魁祸首。 我想我会提交一份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 

取自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 (eg ".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. 

作为链接答案的蹩脚, 这可能是你想要的。

上面链接中引用的post说明如果要更改命令行中显示的语言,则需要在/etc/default/locale~/.pam_environment相应地设置LANGLANGUAGE

既然你已经尝试在/etc/default/locale设置LANGUAGE ,我会尝试在~/.pam_environment设置它,因为那是用户配置文件,其内容应该覆盖全局环境中设置的任何内容。

编辑:

我继续尝试通过将/etc/default/locale LANGUAGE /etc/default/locale"en:ru:en"注销然后重新登录来重复所描述的问题。它工作正常。 然后,错误消息以俄语显示,至少对于root帐户(我正在测试此帐户)。 将LANGUAGE的值更改为"en"修复它。

听起来你将LANGUAGE变量设置为ru:en或/etc/default/locale某些内容,因此请尝试将其更改为en。

Alexej Magura写的答案也提到了~/.pam_environment 。 可能,因为你有Kubuntu,可能会涉及其他文件(或者也包括在内)。