在Linux中經過locale來設置程序運行的不一樣語言環境,locale由ANSI C提供支持。locale的命名規則爲<語言>_<地區>.<字符集編碼>,如zh_CN.UTF-8,zh表明中文,CN表明大陸地區,UTF-8表示字符集。html
在locale環境中,有一組變量,表明國際化環境中的不一樣設置:linux
1. LC_COLLATE
定義該環境的排序和比較規則shell
2. LC_CTYPE
用於字符分類和字符串處理,控制全部字符的處理方式,包括字符編碼,字符是單字節仍是多字節,如何打印等。是最重要的一個環境變量。app
3. LC_MONETARY
貨幣格式ide
4. LC_NUMERIC
非貨幣的數字顯示格式ui
5. LC_TIME
時間和日期格式this
6. LC_MESSAGES
提示信息的語言。另外還有一個LANGUAGE參數,它與LC_MESSAGES類似,但若是該參數一旦設置,則LC_MESSAGES參數就會失效。LANGUAGE參數可同時設置多種語言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。編碼
7. LANG
LC_*的默認值,是最低級別的設置,若是LC_*沒有設置,則使用該值。相似於 LC_ALL。spa
8. LC_ALL
它是一個宏,若是該值設置了,則該值會覆蓋全部LC_*的設置值。注意,LANG的值不受該宏影響。orm
"C"是系統默認的locale,"POSIX"是"C"的別名。因此當咱們新安裝完一個系統時,默認的locale就是C或POSIX。
"POSIX" :Specifies the minimal environment for C-language translation called the POSIX locale. If setlocale() is not invoked, the POSIX locale is the default "C" Equivalent to "POSIX".-----------------------------------
How to change the locale by setting the system default locale?
LANG=C LC_ALL=C Example from the /etc/default/init file: # Lines of this file should be of the form VAR=value, where VAR is one of # TZ, LANG, or any of the LC_* environment variables. LANG=C LC_ALL=C Note: The system must be rebooted after making changes to the /etc/default/init file in order for the changes to take effect. How to verify the locale setting? After setting or changing the locale, verify that the locale is set correctly: Check if the locale is set correctly by running the locale command without any options: # locale LANG=C LC_CTYPE= "C" LC_NUMERIC= "C" LC_TIME= "C" LC_COLLATE= "C" LC_MONETARY= "C" LC_MESSAGES= "C" LC_ALL=C
Locale是某一個地域內的人們的語言習慣和文化傳統和生活習慣,是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的一個軟件運行時的語言環境。
Locale是軟件在運行時的語言環境, 它包括語言(Language), 地域 (Territory) 和字符集(Codeset)。一個locale的書寫格式爲: 語言[_地域[.字符集]]。徹底的locale表達方式是 [語言[_地域][.字符集] [@修正值]。zh_CN.GB2312=中文_中華人民共和國+國標2312字符集。
locale的設定:
LC_ALL和LANG優先級的關係: LC_ALL > LC_* >LANG
一、若是須要一個純中文的系統的話,設定LC_ALL= zh_CN.XXXX,或者LANG=zh_CN.XXXX均可以。
二、若是隻想要一個能夠輸入中文的環境,而保持菜單、標題,系統信息等等爲英文界面,那麼只須要設定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就能夠了。
三、假如什麼也不作的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將採用POSIX做爲lcoale,也就是C locale。
LANG和LANGUAGE的區別:
LANG - Specifies the default locale for all unset locale variables
LANGUAGE - Most programs use this for the language of its interface
LANGUAGE是設置應用程序的界面語言。而LANG是優先級很低的一個變量,它指定全部與locale有關的變量的默認值