使用和设定系统 locale

locale 是 glibc 的一个重要组成部分,也是 Linux 国际化和本地化工作的一个重要基础。locale 通过设置一系列的环境变量来满足用户对国际化和本地化的需求。通过 locale 命令,我们不仅可查看到语言环境的当前设置,还可查看当前 locale 可用的名称和字符集。

2010-01-18 11:42:30

使用local命令,就可以看到一组环境变量:

LANG=en_US.UTF-8
未设置任何 LC_xxx 变量时所使用的默认值

LC_CTYPE=zh_CN.UTF-8
指定使用某区域的字符分类及处理方式

LC_NUMERIC="en_US.UTF-8"
指定使用某区域的非货币的数字格式

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"
对 locale 自身信息的概述

LC_ALL=
用来覆盖掉所有其他 LC_xxx 变量的值

一般情况下,使用LANG或者LC_ALL就可以解决问题了!

locale 相关变量使用时的优先顺序
[1] LANGUAGE
[2] LC_ALL
[3] LC_xxx
[4] LANGGER

其中 LC_ALL 并不是一个环境变量,它仅是一个可被函数 setlocale (setlocale 的函数原型及其参数 category 的可用值均被定义在头文件 locale.h 中 ) 调用的宏,它的值可覆盖所有其他的 locale 设定 ( 如果 LC_ALL 的值存在的话,即非空 ) 。LANG 用于正常指定使用某区域环境值,而 LANGUAGE 则用于指定个人对语言环境值的主次偏好。通常我们会在设定 LANG 后,并通过 LC_xxx 加以修正。

徜徉于这片废土的我们.....应当去哪里追寻更好的自己?