在Linux中,使用locale命令来设置和显示程序运行的语言环境,locale会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境
<语言>_<地区>.<字符集编码><@修正值>
例如:
zh_CN.utf8
zh:表示中文
CN:表示大陆地区
Utf8:表示字符集
de_DE.utf-8@euro
de:表示德语
DE:表示德国
Utf-8:表示字符集
euro:表示按照欧洲习惯加以修正
设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL locale默认文件存放位置: /usr/share/i18n/locales
列出所有启用的locale:
分别介绍下
LANG:LANG的优先级是最低的,它是所有LC_*变量的默认值,下方所有以LC_开头变量(LC_ALL除外)中,如果存在没有设置变量值的变量,那么系统将会使用LANG的变量值来给这个变量进行赋值。如果变量有值,则保持不变 LC_CTYPE:用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等,非常重要的一个变量。 LC_NUMERIC:用于格式化非货币的数字显示 LC_TIME:用于格式化时间和日期 LC_COLLATE:用于比较和排序 LC_MONETARY:用于格式化货币单位 LC_MESSAGES:用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等 LC_PAPER:默认纸张尺寸大小 LC_NAME:姓名书写方式 LC_ADDRESS:地址书写方式 LC_TELEPHONE:电话号码书写方式 LC_MEASUREMENT:度量衡表达方式 LC_IDENTIFICATION:locale对自身包含信息的概述 LC_ALL:它不是环境变量,它是一个宏,它可通过该变量的设置覆盖所有LC_*变量,这个变量设置之后,可以废除LC_*的设置值,使得这些变量的设置值与LC_ALL的值一致,注意LANG变量不受影响。 优先级:LC_ALL > LC_* > LANG
上面所列的,C是系统默认的locale,POSIX是C的别名,这是标准的C locale ,它所指定的属性和行为由ISO C标准所指定,当我们新安装完一个系统时,默认的locale就是C或POSIX(C就是ASCII编码)
命令介绍
1)查看当前locale设置
locale
2)查看当前系统所有可用locale
locale -a
3)设置系统的locale
修改/etc/profile文件
#在最下面增加
export LC_ALL=zh_CN.utf8 export LANG=zh_CN.utf8
source一下配置文件,使其生效
修改/etc/default/locale
LANG=“en_US.UTF-8”
LANGUAGE=“en_US:en”
注销一下,使其生效
修改/etc/locale.gen文件
...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
…
将注释打开即可
修改完成后,执行下locale-gen命令使其生效
命令行模式下修改
localectl set-locale LANG=en_US.UTF-8
创建/etc/locale.conf文件
LANG=en_AU.UTF-8
LC_COLLATE=C
LC_TIME=en_DK.UTF-8
source使其生效