你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux的locale, LC_ALL 和LANG

[日期:2016-12-01] 来源:Linux社区  作者:Linux [字体: ]

什么是locale
locale 这个单词中文翻译成地区或者地域,其实这个单词包含的意义要宽泛很多。locale 是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。
比如说:

在“简体中文”环境,运行date 命令,显示的是:
2016年01月07日 星期三 10:50:20 CST

而在英文环境下,运行date 命令,显示的是
Wed Jan  7 10:51:31 HKT 2016
locale 把按照所涉及到的使用习惯的各个方面分成12 大类,这12 个大类分别是:

语言符号及其分类(LC_CTYPE)
数字(LC_NUMBERIC)
比较习惯(LC_COLLATE)
时间显示格式(LC_TIME)
货币单位(LC_MONETARY)
信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)
行么书写方式(LC_NAME)
地址书写方式(LC_ADDRESS)
电话号码书写方式(LC_TELEPHONE)
度量衡表达方式(LC_MEASUREMENT)
默认纸张尺寸大小(LC_PAPER)
对locale 自身包含信息的概述(LC_IDENTIFICATION)
而这些信息的配置通常放在/usr/share/i18n/locales 目录下。让我们打开以下zh_CN 和 en_US 。 实际上我们平时使用 date 函数的时候,就是在这里面进行格式选择的。

如何配置locale
通过locale 命令,可以看到LC_* 各个变量的设置,如下:

$ locale
LANG=en_HK.UTF-8
LANGUAGE=en_HK:en
LC_CTYPE="en_HK.UTF-8"
LC_NUMERIC="en_HK.UTF-8"
LC_TIME="en_HK.UTF-8"
LC_COLLATE="en_HK.UTF-8"
LC_MONETARY="en_HK.UTF-8"
LC_MESSAGES="en_HK.UTF-8"
LC_PAPER="en_HK.UTF-8"
LC_NAME="en_HK.UTF-8"
LC_ADDRESS="en_HK.UTF-8"
LC_TELEPHONE="en_HK.UTF-8"
LC_MEASUREMENT="en_HK.UTF-8"
LC_IDENTIFICATION="en_HK.UTF-8"
LC_ALL=

设置LC_TIME 变量:

$ LC_TIME=en_US.utf8  # 变量设置
$ export LC_TIME      # 生效设置
$ date                # 效果查看LC_ALL、LANG和LC_* 的关系
设定locale 就是设定12 大类的locale分类属性,即12个LC_*。除了这个12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL 和LANG。他们之间有一个优先级的关系:LC_ALL > LC_* > LANG 可以这么说,LC_ALL 是最上级设定或者强制设定,而LANG 是默认设定值。

在设置了LC_ALL 之后,如果不 把LC_ALL 强制设置为空,那么LC_* 将无法被设置。但是LANG 的值不受影响。

LC_ALL=C 的含义
LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。

locale 可以设置类型
$ locale -a
C
C.UTF-8
en_HK.utf8
POSIX

通过该命令查看后,可以知道所有可以使用的locale 方式。

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/137765.htm

linux
相关资讯       Linux locale 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款