歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux的locale, LC_ALL 和LANG

Linux的locale, LC_ALL 和LANG

日期:2017/2/28 13:46:25   编辑: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 方式。

Copyright © Linux教程網 All Rights Reserved