首先介绍几个与locale有关的命令个目录:
locale-gen根据/var/lib/locales/supported.d/目录下的文件重新生成locale定义文件,保存在/usr/lib/local中
locale-gen–purge删除原来的locale文件后重新生成locale定义文件
/etc/enviromentPATH变量和locale设置文件
/usr/lib/local/配置locale定义文件
/var/lib/locales/supported.d/保存locale定义文件
简单来说,locale使用时是这样的:
系统可以使用很多locale值(locale-a);
但是因为一般只用到很少,所以需要选择一些值(保存在/var/lib/locales/supported.d/目录下的文件中);
但是这些值系统不能使用,必须先生成一些定义文件(locale-gen命令生成,保存在/usr/lib/local/目录,就像是系统要使用某个语言必须下载这个语言包);
因为系统不会默认更改locale(就像安装了某种语言包必须要选择这个语言包才能将其作为默认语言),需要自己修改(修改/etc/enviroment文件)
注:以上为笔者个人见解,仅作参考,具体配置过程见:
再说一下locale的具体内容,在终端输入:locale,显示内容与下面相似:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=
各项意义如下:
语言符号及其分类(LC_CTYPE)
数字(LC_NUMERIC)
比较和排序习惯(LC_COLLATE)
时间显示格式(LC_TIME)
货币单位(LC_MONETARY)
信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)
姓名书写方式(LC_NAME)
地址书写方式(LC_ADDRESS)
电话号码书写方式(LC_TELEPHONE)
度量衡表达方式(LC_MEASUREMENT)
默认纸张尺寸大小(LC_PAPER)
对locale自身包含信息的概述(LC_IDENTIFICATION)
设定locale就是设定12大类的locale分类属性,即12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。它们之间有一个优先级的关系:
LC_ALLLC_*LANG
只有高优先级的设置没有启用时候才会使用较低优先级的配置,LANG是系统安装完成后的默认配置,LC_ALL默认为空,对所有选项进行设置。另外LANGUAGE参数可同时设置多种语言信息,相互之间用“:”隔开(如:LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”),起具体意义暂时没有找到,只有一个文档说是“指定应用程序界面语言”,可以当作参考。
注:实际编辑enviroment文件时,此文件不一定包含那十二个项,这也是LANG会生效的原因。因此,如果想进行配置,就要新建一行,格式与其他的相似就可以了。
具体配置过程
最
近遇到一个问题,英文系统的Xubuntu不能打开Win下的文件(ANSI),Ubuntu下的编辑起也不能把文件保存为ANSI。编辑打开文件乱码倒
是还好办,因为浏览器很好用,只要用浏览器打开就可以了,可是,因为笔者的MP5要求电子书编码必须为ANSI,浏览器就无能为力了。如何在保持系统界面
语言和默认编码不变的情况下让系统支持ANSI编码i变成了一个问题。
解决方法:
执行vi/var/lib/locales/supported.d/local
在文件最后加上:zh_CN.GB18030GB18030
保存之后执行命令:sudolocale-gen
注:笔者用上述方法之后,文本编辑还是无法识别ANSI编码的文件,但是可以保存为这个编码的文件.解决这个问题的办法如下:
vi/etc/environment
将以“LANG”开头的行换成:LANG=”zh_CN.GB18030″
重新登录就行了。
注:LANG可以设置的选项必须在/var/lib/locales/supported.d/目录里面的文件(一般有多个文件,任意一个都可以)里面有,如果没有就要按照上文手动添加。