1. 程式人生 > >linux中的locale,LANG

linux中的locale,LANG

內容 目錄 很多 code 安裝 出版物 數字 sage 文件名

Locale是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的一個軟件運行時的語言環境.?

技術分享圖片

可以發現locale命令中,可以顯示多個LC_*LANG.

1 LANG

LANG變量是language的簡稱,在一個系統變量,它決定系統的默認語言的,即系統的菜單、程序的工具欄語言、輸入法默認語言等.

LANG在登錄系統後就被讀取並生效,unbuntu中,是從下面這個文件中讀取的.技術分享圖片

看一下格式:zh_CN.UTF-8,其中zh_CN這個組合,在很多地方都可以看到,而完整的表達是:

語言[_地域[.字符集]][@修正值] 

在ubuntu中,這些組合在/usr/share/i18n/locales

文件中:

技術分享圖片

其中i18n來源是英文單詞 internationalization的首末字符i和n,18為中間的字符數,是“國際化”的簡稱.指讓產品(出版物,軟件,硬件等)無需做大的改變就能夠適應不同的語言和地區的需要.對程序來說,在不修改內部代碼的情況下,能根據不同語言及地區顯示相應的界面. 在全球化的時代,國際化尤為重要,因為產品的潛在用戶可能來自世界的各個角落.通常與i18n相關的還有L10n(“本地化”的簡稱).

這些文件的內容主要對12個小項目的格式的定義:

LC_CTYPE                    #用戶所使用的語言符號及其分類
LC_NUMERIC                #數字
LC_TIME                      #時間顯示格式
LC_COLLATE                #比較和排序習慣
LC_MONETARY             #LC_MONETARY
LC_MESSAGES             #信息主要是提示信息,錯誤信息, 狀態信息, 標題, 標簽, 按鈕和菜單等
LC_PAPER                    #默認紙張尺寸大小
LC_NAME                     #姓名書寫方式
LC_ADDRESS               #地址書寫方式
LC_TELEPHONE             #電話號碼書寫方式
LC_MEASUREMENT        #度量衡表達方式
LC_IDENTIFICATION      #對自身包含信息的概述

例如:en_HK文件的LC_IDENTIFICATION部分:

技術分享圖片

zh_CNLC_TIME部分為:

技術分享圖片

對應的中文就是,星期一...等.這就是在中文的linux下date等命令,輸出特定的信息的格式,例如:

技術分享圖片

LANG設定為不同的值,那麽輸出的形式也不同.

而不同文件的不同的小項目可能都是不同的.因而,完成了本地化的過程.

2 locale

LANG變量,只能全局的改變上述的12個條目,也就是說:

LC_CTYPE                    #用戶所使用的語言符號及其分類
LC_NUMERIC                #數字
LC_TIME                      #時間顯示格式
LC_COLLATE                #比較和排序習慣
LC_MONETARY             #LC_MONETARY
LC_MESSAGES             #信息主要是提示信息,錯誤信息, 狀態信息, 標題, 標簽, 按鈕和菜單等
LC_PAPER                    #默認紙張尺寸大小
LC_NAME                     #姓名書寫方式
LC_ADDRESS               #地址書寫方式
LC_TELEPHONE             #電話號碼書寫方式
LC_MEASUREMENT        #度量衡表達方式
LC_IDENTIFICATION      #對自身包含信息的概述

這12個條目的值,默認都等於LANG的值.

在linux環境變量中,這12個值都可以單獨的設置:

LC_*="*"
export LC_*

即可單獨的設置某一項.

其中又有LC_ALL可以統一的設置上述的12個小項,三者的優先級為:

LC_ALL>LC_*>LANG

3 LC_ALL=C

LC_ALL=C的含義是:"C"是系統默認的locale,"POSIX"是"C"的別名.所以當我們新安裝完一個系統時,默認的locale就是C或POSIX.

4 改文件名為英文

安裝linux系統的時候,如果語言選擇的是中文,那麽安裝結束以後,用戶目錄下的桌面,下載等文件夾都是中文,不利於終端下操作,因此會將這些文件夾改為英文:

export LANG=en_US  
xdg-user-dirs-gtk-update  
export LANG=zh_CN  

5 其他

很多文章介紹說,localeLANG的值還涉及到中文輸入的問題.沒找到這方面的例子.

因此,目前最多的還是界面和終端中不同語言環境的顯式格式上的區別.

linux中的locale,LANG