其实这个保姆就是Ubuntu。
今天想在软件中心找个软件,考虑到英文界面下看到的评分和评论会比较多,就想把语言从中文切换回英文。可是在设置的语言支持里面改了之后,部分locale是en了,但有几个还是zh,设置语言的图标名称还是“语言支持”中文的,而不是Language Support。
试着修改/etc/default/locale,把~/.config移除,用了locale-gen --purge把其它locale都删除,还有localepurge软件,都无效。只好又在/etc下用grep -R zh_CN *来搜索了,发现/etc/environment文件里面赫然写着中文locale的环境变量:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"我把里面几个locale的环境变量都删除,还重启了电脑,仍然无效,上面几个locale设置还是有效。真是气愤这破玩意!
LANGUAGE="zh_CN:en"
LANG="en_US.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
我又在家目录下用grep -R zh_CN `ls -A | grep '^\.'`搜索,愤然发现.profile的最后几行:
export LANG="en_US.UTF-8"这几行删除掉后终于干净了。你妈的,都污染到.profile文件了。好吧,拉就拉吧,谁让你住我家呢,可是你他妈的能不能拉完了清理一下啊,害老子浪费一上午时间!我已经默念无数遍Fuck Ubuntu了。
export LANGUAGE="zh_CN:en"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"
对/etc下面的配置文件,系统在软件安装、删除、升级的时候一般都会考虑到配置。而家目录下的设置,软件往往只管写,软件删除了这些配置也保留,当然这是对的,这是用户数据要一直留着;软件升级了也不会对应升级,如果配置文件不兼容了那就会出问题。
Ubuntu把设置直接写到.profile这么关键的文件中,而且又是locale这种重要的系统变量,如果只管写而不考虑后面的清理工作,那就太不负责了。不知道这是哪个白痴开发者干的。甚至/etc/environment都有疑问,我把中文的各种locale都删除了,这个文件里面却还留着中文的locale,需要自己去修改。
2011-11-29更新:发现~/.dmrc也被污染了,还保留着中文语言的信息。删掉还不行,要把中文的改成英文的才可以保留下来。