CentOS 决定更改命令行语言环境后如何更改它?

Aro*_*eel 2 linux localization command-line-interface centos

很明显,CentOS 决定我是荷兰人,因此,不应该有英语语言环境。

除了这让我非常困扰这一事实之外,我很难真正将其改回。似乎没有setlocale功能,并system-config-language告诉我我使用的是英语语言环境,即使我的环境另有说明。

任何帮助,将不胜感激。

输出locale

LANG=nl_NL.UTF-8
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

我的 ~/.bashrc 和 ~/.bash_profile 都不包含语言环境设置。此外,/etc/bashrc也不包含任何区域设置引用。

小智 5

我只是偶然发现了这个完全相同的问题,并找出了为什么会在我的情况下发生这种情况,并认为我会分享。我最近在工作时买了一台运行 OS X Lion 的新 iMac(以前的工作站是 OS X Snow Leopard)

默认情况下,OS X Lion 在终端的环境变量 LANG 中设置语言环境。这被设置为 nl_NL.UTF-8。当您通过 ssh 进入 CentOS 机器时,CentOS 系统上的 sshd 会将这个环境变量导入到它的 shell 中。

我通过在终端首选项(设置->高级)中禁用“启动时设置语言环境变量”解决了这个问题

不知道您是否在桌面上运行 OS X,但底线是:CentOS 上的 sshd 从 ssh 客户端工作站导入区域设置。

HTH


小智 5

如果您使用 SSH,还有另一种方法可以实现相同的结果,它也适用于 iTerm。您必须修改 SSH 配置:

sudo vi /etc/ssh_config
Run Code Online (Sandbox Code Playgroud)

查找并注释掉包含的行

SendEnv LANG LC_*
Run Code Online (Sandbox Code Playgroud)