|
|
发表于 2006-3-6 01:41:20
|
显示全部楼层
Post by 食古不化
在~/.xinitrc中设置:
export LANG=zh_CN.UTF-8
export LC_CTYPE=zh_CN.utf8
但startx后,打开一个terminal,locale查看却看到
$ locale
LANG=zh_CN.UTF-8
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=en_US.UTF-8
但是env可以看到: $ env | grep LC
LC_ALL=en_US.UTF-8
LC_CTYPE=zh_CN.utf8
不知为何LC_CTYPE一项到底为什么locale和env的不同。但从能够输入中文来看LC_CTYPE=zh_CN.utf8还是起作用了。
你设置了LC_ALL
这样就相当于用LC_ALL的值设置了所有以LC_开头的环境变量
如果要了解一些细节
可以在blogsearch.google.com
搜索"zhllg i18n"
我写过一些文章分析这个问题
所以如果要单独设置某个LC_开头的变量,就不要设置LC_ALL
然后再设置LANG保底,因为LANG的优先级最低
比如我的locale
LANG=en_US.utf8
LC_CTYPE=zh_CN.utf8
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
# env |grep ^L[AC]
LANG=en_US.utf8
LANGUAGE=en
LC_CTYPE=zh_CN.utf8 |
|