ubuntu查看设置修改locale

查看当前语言:

locale

LANG=zh_CN.UTF-8
LANGUAGE=en_US
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

查看系统内部安装的locale:

locale -a

查看所有字符集:

locale -m

修改locale配置文件:

sudo nano /etc/default/locale

更改配置: 如果采用统一的设置,直接设置LC_ALL 如果想分开设置,例如英文界面,中文输入法,LC_ALL置空,LANG设置为英文,其他的LC_*酌情改成中文 例如:

LANG="en_US.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"

安装locale,生成没有的locale

sudo locale-gen en_US.UTF-8
sudo locale-gen zh_CN.UTF-8

locale分类及其说明

locale把按照所涉及到的文化传统的各个方面分成12个大类,这12个大类分别是:

LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8

说明: 1、语言符号及其分类(LC_CTYPE) 2、数字(LC_NUMERIC) 3、时间显示格式(LC_TIME) 4、比较和排序习惯(LC_COLLATE) 5、货币单位(LC_MONETARY) 6、信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES) 7、默认纸张尺寸大小(LC_PAPER) 8、姓名书写方式(LC_NAME) 9、地址书写方式(LC_ADDRESS) 10、电话号码书写方式(LC_TELEPHONE) 11、度量衡表达方式 (LC_MEASUREMENT) 12、对locale自身包含信息的概述(LC_IDENTIFICATION)。

locale的值

Locale是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[地域[.字符集]]。完全的locale表达方式是 [语言[地域][.字符集] [@修正值]。zh_CN.UTF-8=中文_中华人民共和国+UTF8字符集。

locale的优先级

LC_ALL和LANG优先级的关系:LC_ALL > LC_* > LANG 1、如果需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX,优先级最高的值,覆盖其他所有值,或者LANG=zh_CN.XXXX都可以, LANG是LC_没有设置值的时候的默认值。 2、如果只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了, LC_ALL置空。 3、假如什么也不做的话,也就是LC_ALL,LANG和LC_均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。

LANG和LANGUAGE的区别:

LANG – 指定所有未设置的区域设置变量的默认区域设置 LANGUAGE – 大多数程序使用它作为其界面的语言 LANGUAGE是设置应用程序的界面语言。而LANG是优先级很低的一个变量,它指定所有与locale有关的变量的默认值,在其他locale没有赋值的时候才生效。