Linux locale的详解

57 阅读2分钟

### Linux locale详解

在Linux系统中,locale是用于管理区域设置的重要机制,它可以帮助用户配置操作系统的本地化设置,包括语言、日期和时间格式、货币符号等。

#### 一、locale的基本概念

locale可以被视为一种语言环境的配置方式,它包含了一组用于特定语言环境的规则和约定。一个locale由语言和区域设置两部分组成,语言用于提示和错误信息等,区域设置则包括地理、文化和国家习俗等特征。例如,“en_US”表示英语语言环境,使用美国区域设置;“zh_CN”表示中文语言环境,使用中国区域设置。

locale把按照所涉及到的文化传统的各个方面分成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. **LC_IDENTIFICATION**:对locale自身包含信息的概述。

#### 二、相关环境变量

在大多数Linux发行版中,“LANG”和“LC_*”是两个重要的环境变量。“LANG”设置了默认的语言环境,而“LC_*”变量则用于更详细地指定一些特定的设置。它们之间的优先级关系为:LC_ALL > LC_* > LANG。即LC_ALL是最上级设定或强制设定,LANG是默认设定值。

#### 三、locale命令的使用

1. **查看当前locale设置**:使用“locale”命令可以显示当前的语言环境、字符编码以及其他相关设置。例如:

```

locale

LANG=en_US.UTF-8

LC_CTYPE="en_US.UTF-8"

LC_NUMERIC="en_US.UTF-8"

...

```

2. **查看系统支持的所有locale**:使用“locale -a”命令可以列出系统支持的所有locale。

```

locale -a

en_US.utf8

zh_CN.utf8

zh_SG.utf8

...

```

3. **查看特定变量的值**:

- 如果“locale”命令后面加上category参数,将显示该category的所有值。如“locale LC_CTYPE”。

- 如果“locale”命令后面加上keyword参数,将显示该keyword对应的值。如“locale charmap”。

#### 四、配置locale

要更改locale设置,首先需要确保系统已经安装了所需的locale。可以通过编辑“/etc/locale.gen”文件来启用或禁用特定的locale。编辑完成后,需要运行“locale -gen”命令来更新系统的locale配置。然后就可以使用相关环境变量或“locale”命令来设置具体的locale了。