在Linux中,本地化被称作locale,这是一个概念,同时也是一个命令,相关操作可以参考man page。
man locale
每台计算机上的locale可能不同,这取决于你安装时提供的语言和地理位置信息。
想要查看本地的locale设置,可以使用如下命令列出本地系统中所有可以使用的locale:
locale -a
在我使用的Ubuntu中列出了如下信息:
C
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8
这些都可以作为环境变量的值。
所有的有关本地化的环境变量都是以LC_开头:
LC_COLLATE 排序规则
LC_CTYPE 字符集
LC_MESSAGES 响应与信息,仅POSIX适用
LC_MONETARY 货币格式
LC_NUMERIC 数字格式
LC_TIME 日期和时间格式
这些环境变量都可以被设置成locale列出的值。
如果想把所有不同的变量都统一成一个值,那么可以设置LC_ALL变量,则上述所有变量的值都被LC_ALL的值强制覆盖。
还有一个LANG变量,它作为当上述变量没有设置时的默认值使用。
例子:
我使用的Ubuntu默认是en_US.utf8的locale,当我执行如下命令时,帮助信息是英文显示的:
ls --help
如果我改变一下locale信息,那么帮助信息就会变为中文了:
export LC_ALL=zh_CN.utf8
ls --help
更简单的方法如下,不过每次想看中文的时候都要使用前面的设置:
LC_ALL=zh_CN.utf8 ls --help
但这两种方法都只在当前的console中可以使用,如果想变为开机默认设置,还需要修改.bashrc或者.profile等开机调用的Shell脚本。
参考文献:《Shell脚本学习指南》 Arnold Robbins & Nelson H. F. Beebe著 O'Reilly出版 当当网介绍