獲取i18n配置文件

摘自《開源世界旅行手冊》作者:kardinal
習慣上,internationalization(國際化)簡寫爲I18N,中間的數字爲省略的字母個數。
在 Linux 系統中,通過定義一組環境變量來設置程序的語言環境,以實現對I18N的支持,這種機制稱爲:locale(本地化)
fhc2007@fhc2007-desktop:~$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
fhc2007@fhc2007-desktop:~$
locale 變量LANG         低優先級全局 locale 變量         如果下面的變量未賦值,默認使用此變量的值
LC_COLLATE         比較和排序習慣         會影響目錄列表的分類顯示等
LC_CTYPE         定義系統的字符處理特性         哪些字符能被視爲字母、數字,等等;與中文輸入關係密切
LC_MESSAGES         提示信息,錯誤信息, 狀態信息, 標題, 標籤, 按鈕和菜單等
LC_MONETARY         定義貨幣單位和貨幣型數值的格式
LC_NUMERIC         定義非貨幣型數值的格式         影響到千位分隔符和小數分隔符等
LC_TIME         定義日期和時間的格式
LC_NAME         姓名書寫方式
LC_ADDRESS         地址書寫方式
LC_TELEPHONE         電話號碼書寫方式
LC_MEASUREMENT         度量衡表達方式
LC_PAPER         定義默認的紙張尺寸
LC_IDENTIFICATION         對 locale 自身包含信息的概述
LC_ALL         高優先級全局 locale 變量         爲此變量賦值會強行覆蓋上面變量的值,不推薦
假如未設置以上變量,系統將採用 POSIX 作爲 lcoale,也就是 C locale
locale值locale 變量的值有三個要素:語言代碼 (Language Code)、 地域代碼 (Country Code) 和字符集(Encoding)(中文 Windows 系統中使用的字符集爲GB2132,而 UTF-8 是大勢所趨,它能夠顯示比 GB2132 更多的字符)
語言代碼[_地域代碼[.字符集]]例如:
語言/國家代碼         描述
en_US.ISO-8859-1         美國英語
en_US.UTF-8
zh_CN.UTF-8         簡體中文
zh_TW.UTF-8         繁體中文
字符集衆所周知,計算機中的信息,是以數字形式表示的,字符也不例外。字符以數字編號的形式存儲,使用時,根據這個編號,在字符集中找到相應的字符
字符集是字符在系統內的編碼方式,也就是通常所說的內碼。不同的字符集有不同的編碼方式,
例如“碼”字,它的 GB2312編碼 爲 426B;UTF-8編碼 爲 E7A081 。如果錯誤的以 GB2312編碼 來檢索 E7A081,將會產生類似 “鍩跨爜” 的亂碼
只要系統中安裝了中文字體,通過字符集的支持,便可以正常顯示中文,而無需設置 locale;locale 可以使操作界面顯示中文,並可以使用中文輸入等
其他另外還有一個本地化變量叫做 LINGUAS。它會影響到基於 gettext 的程序;它還能決定某些特殊軟件包的本地化,比如kde-i18n和openoffice。這個變量的值爲一組以空格分隔的語言代碼:

LINGUAS="zh en"


程序獲取 i18n配置文件:Locale locale = LocaleContextHolder.getLocale();

defaultDatePattern = ResourceBundle.getBundle(Constants.BUNDLE_KEY,
locale).getString("date.format");



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章