lnm*_*rer 11 language locale kubuntu
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=
Run Code Online (Sandbox Code Playgroud)
除 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”。我重新启动了机器。我验证了 /etc/default/locale.conf 的内容。但是,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
Run Code Online (Sandbox Code Playgroud)
编辑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
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
就像链接答案一样蹩脚,这可能就是您想要的。
在上面的链接中引用的文章解释,如果你想改变的是在命令行出现,那么你需要设置两种语言LANG
和LANGUAGE
相应的在任/etc/default/locale
或~/.pam_environment
。
由于您已经尝试LANGUAGE
在 中设置/etc/default/locale
,我会尝试将其设置,~/.pam_environment
因为这是一个用户配置文件,其内容应覆盖在全局环境中设置的任何内容。
编辑:
我继续尝试复制您通过设置描述的问题LANGUAGE
中/etc/default/locale
来"en:ru:en"
注销,然后重新登录。它的工作。然后以俄语显示错误消息,至少对于 root 帐户(这是我正在测试的帐户)。更改 的值LANGUAGE
以"en"
修复它。
归档时间: |
|
查看次数: |
8722 次 |
最近记录: |