Linux 命令之 locale — 设置和显示程序运行的语言环境

命令介绍

locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。

通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置。

locale 设置规则

<语言>_<地区>.<字符集编码><@修正值>

使用详解

设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL
locale默认文件存放位置: /usr/share/i18n/locales

(一)查看当前 locale 设置

列出所有启用的 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

(二)查看当前系统所有可用 locale -a

(三)设置系统的 locale

  • 查看系统当前语系语言包

[root@localhost ~]# locale

//在 Linux 系统中,语系主要是通过这些变量来设置的,这里只需知道 LANG 和 LC_ALL 变量即可,

[root@localhost ~]# echo $LANG

zh_CN.UTF-8

  • 查看系统拥有的语言包

[root@localhost ~]# locale -a

  • 如果没有zh_CN.utf8,则需要单独安装中文语言包

[root@localhost ~]# yum install kde-l10n-Chinese

  • 设置为中文(临时修改,服务器重启之后会还原之前的设置)

// 设置为中文

[root@localhost ~]# LANG=”zh_CN.UTF-8″

// 设置为英文

[root@localhost ~]# LANG=”en_US.UTF-8″

  • 设置为中文(永久有效) // 英文也可以.

方式一

[root@localhost ~]# localectl  set-locale LANG=zh_CN.UTF8

4.2 方式二

[root@localhost ~]# vi /etc/locale.conf

添加以下内容到第一行

LANG=zh_CN.UTF8

  • 重启服务器

[root@localhost ~]# init 6

优先级:LC_ALL > LC_* > LANG

locale 设置规则

<语言>_<地区>.<字符集编码><@修正值>

发表评论