1,locales设置:语言设置选项
在这里你可以体会到linux真的是一个非常强大的系统,windows如果要更改语言系统,必须要重新安装软件,这就是windows存在多国语言版的原因。而linux非常方便,我们可以通过locales设置,将linux从英文版更改为中文版,下面我们来看看如何更改语言设置。
配置locales:
Locale –a:查看当前的locale环境,也就是当前的语言环境。
Locale –m:列出linux所支持的所有的locale语言环境。
我们要注意下面几个目录:
/var/lib/locales/supported.d/*:该目录下一般存在locale,zh,en三个文件,存放linux系统所支持 locale设置,其格式与SUPPORTED一致,其文件的格式为:
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
前面代表字符的文件名,后面代表采用的编码格式是UTF-8。
/usr/share/i18n/SUPPORTED:该文件里面写入的是LINUX内核支持的语言环境。这一班是我们模仿的目标。
/usr/lib/locale//LC_*:其中locale_name为指定的环境的名称,例如像上面的就是zh_CN.UTF-8。
/etc/environment:编辑这个文件可以手动的配置locales环境,例如设置LANG,LANGUAGE,LC_CTYPE等,这些变量的定义在/usr/lib/locale/这个目录下也可以看到!
所以我们为了配置中文的环境需要按照如下的来进行:
A、在/var/lib/locales/supported.d/zh文件中添加中文支持:zh_CN.UTF-8 UTF-8
B、修改环境变量文件/etc/enviorment文件,添加
LANG=”zh_CN.UTF-8”
LANGUAGE=”zh_CN:zh:en_US:en”
LC_CTYPE=”zh_CN.UTF-8”
实际上就是改变上面三个环境变量的值。不同的linux系统可能在不同的配置文件中设置环境变量。
C、使用dpkg-reconfig locales,产生你所需要支持的locales文件,这些文件会保存在
/usr/lib/locale/zh_CN.utf-8文件夹下面。也可以使用locale-gen来产生文件。
2、安装中文的字体支持:apt-get install xfontx-wqy
如果没有执行这一步的话,你在图形界面的方式下见到的所有的中文字都将是方块。非常重要的一步!
通过定义locale环境变量设置语言
Linux管理locale设定的是/etc/environment文件,locale把按照所涉及到的文化传统的各个方面分成12个大类,这 12个大类分别是:
1、语言符号及其分类(LC_CTYPE)
2、数字(LC_NUMERIC)
3、比较和排序习惯(LC_COLLATE)
4、时间显示格式(LC_TIME)
5、货币单位(LC_MONETARY)
6、信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)
7、姓名书写方式(LC_NAME)
8、地址书写方式(LC_ADDRESS)
9、电话号码书写方式(LC_TELEPHONE)
10、度量衡表达方式(LC_MEASUREMENT)
11、默认纸张尺寸大小(LC_PAPER)
12、对locale自身包含信息的概述(LC_IDENTIFICATION)。
如果只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定LC_CTYPE=zh_CN.UTF-8, LANG=en_US.UTF-8就可以了。这样LC_CTYPE=zh_CN.UTF-8,而LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=en_US.UTF-8
在Linux中通过locale来设置程序运行的不同语言环境,locale由 ANSI C提供支持。locale的命名规则为_.,如zh_CN.GBK,zh代表中文, CN代表大陆地区,GBK表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:
CODE:
LC_COLLATE,定义该环境的排序和比较规则
LC_CTYPE,用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
LC_MONETARY,货币格式
LC_NUMERIC,非货币的数字显示格式
LC_TIME,时间和日期格式
LC_MESSAGES,提示信息的语言。
另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LANG,LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL
LC_ALL,它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响
举个例子,使用zh_CN.GBK中文locale:
CODE:
einstein:~# export LC_ALL=zh_CN.GBK
einstein:~# locale
LANG=zh_CN.GB2312
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK
因为我们刚开始按安装的时候选择的是简体中文模式,所以默认的Locale也就是简体中文,当然我们还能增加新的locale和更改locale设 置: dpkp-reconfigure locales,也可手动修改/etc/locale.gen文件,添加新的locale,然后执行locale-gen,即可生成新的locale,再 通过设置上面说的LC_*变量就可设置系统的locale了。下是我的locale.gen文件:
CODE:
zh_CN GB2312
en_GB ISO-8859-1
en_GB.ISO-8859-15 ISO-8859-15
en_GB.UTF-8 UTF-8
en_US ISO-8859-1
en_US.ISO-8859-15 ISO-8859-15
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_HK BIG5-HKSCS
zh_HK.UTF-8 UTF-8
zh_TW BIG5
zh_TW.EUC-TW EUC-TW
zh_TW.UTF-8 UTF-8
把语言环境变量改为英文
http://wiki.ubuntu.org.cn/%E4%BF%AE%E6%94%B9locale
总结:
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
这个错误会的产生是,配置了一种语言编码,但没有安装相应的编码。
用locale查看配置的编码
用local -a查看所有安装的编码
用local-gen安装相应的编码