参考:http://blog.sina.com.cn/s/blog_9d63c31d0102uz10.html
一、什么是locale
local:当地的、本地的;locale:发生地点、现场、区域、地区、地域。在linux系统中,locale是根据计算机使用者所使用的语言、所在的国家或地区,以及当地的文化传统所定义的软件运行时的语言环境。
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)。
所以说,locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据这几大类的习惯定义的,这些locale定义文件放在/usr/share/i18n/locales目录下面,例如en_US, zh_CN 和de_DE@euro都是locale的定义文件,这些文件都是用文本格式书写的,你可以用写字板打开,看看里边的内容,当然出了有限的注释以外,大部分 东西可能你都看不懂,因为是用的Unicode的字符索引方式。
一个locale包括语言(Language), 地域 (Territory) 和字符集(Codeset)、修正值,书写格式为:语言[_地域[.字符集]][@修正值]。
二、查看linux系统运行的语言环境
运行locale命令,结果如下:
[release@sifangtest ~]$ locale
LANG=zh_CN.GBK
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
上面除了LANG、LC_ALL以外的12个LC_*就是第一部分中提到的12个大类。
zh_CN.GBK,zh:中文,CN:中国,GBK:GBK字符编码
zh_CN.UTF-8,zh:中文,CN:中国,UTF-8:UTF-8字符编码
zh_TW.BIG5,zh:中文,TW:*,BIG5:国际BIG5编码
de_DE.UTF-8@euro,含义为:德语_德国.UTF-8字符集@按照欧洲习惯加以修正
查询系统当前所有可用的locale
locale -a
三、设置系统locale
locale只是查看命令,设置locale需要设置12个LC_*大类、LANG、LC_ALL这14个环境变量。它们之间有一个优先级的关系:LC_ALL > LC_ >LANG。LC_ALL是最上级设定或者强制设定,而LANG - Specifies the default locale for all unset locale variables,它指定所有与locale有关的变量的默认值。即:
- 如果系统设置了LC_ALL=zh_CN.GBK,则无论LANG、LC_*设置没有,运行时系统都会设置它们的值为zh_CN.GBK。
- 如果系统设置了LC_TIME=en_US.UTF-8,其他LC_未设置,LANG=zh_CN.GBK,LC_ALL未设置,则系统locale的LC_TIME为设定的en_US.UTF-8,而其他的LC_*值由LANG决定,为zh_CN.GBK
- 如果系统的LC_ALL、LC_都没有设置,只设置了LANG=zh_CN.GBK,则系统locale环境LC_的值都为zh_CN.GBK
设置系统的locale,则修改/etc/locale.conf(CentOS7以上)中的LANG、LC_即可。
设置某个用的locale,则修改用户的.bashrc或.bash_profile中的LANG、LC_即可。
/usr/share/i18n/charmaps目录下面查看该Linux系统可用的字符集安装包。
四、字体
windows下字体安装在C:\Windows\Fonts目录下,linux下的字体放在/usr/share/fonts目录下。如何查看linux上安装/支持哪些字体?
fc-list 查看系统支持的字体
fc-list :lang=zh 查看系统支持的中文字体
如果linux想要安装某个字体,可以直接从windows系统拷贝,放到/usr/share/fonts文件夹中。以宋体为例,在linux /usr/share/fonts/目录下新建songti目录,然后把windows下的C:\Windows\Fonts\simsun.ttc拷贝到linux /usr/share/fonts/songti目录,并修改后缀为ttf,变为simsun.ttf。然后执行:
su root
cd /usr/share/fonts/songti
fc-cache -fv
完成后查看是否已经支持已安装的宋体
fc-list :lang=zh
最后重启一下系统即可。