更新時(shí)間:2022-08-09 來(lái)源:黑馬程序員 瀏覽量:
在開(kāi)發(fā)一個(gè)國(guó)際化的Web應(yīng)用時(shí),通常會(huì)存儲(chǔ)許多用于保存各個(gè)國(guó)家語(yǔ)言的資源文件,這些資源文件都需要使用類(lèi)加載器來(lái)加載,這樣的加載方式比較麻煩,為了方便獲取這些資源文件,JDK提供了一個(gè)ResourceBundle類(lèi),該類(lèi)位于java.util包中,用于描述一個(gè)資源包,一個(gè)資源包用于包含一組與某個(gè)本地環(huán)境相關(guān)的對(duì)象,可以從一個(gè)資源包中獲取特定的本地環(huán)境的對(duì)象。對(duì)于不同的本地環(huán)境,可以有不同的ResourceBundle對(duì)象與之關(guān)聯(lián)。
在設(shè)計(jì)一個(gè)國(guó)際化的應(yīng)用時(shí),應(yīng)該把程序顯示的文本內(nèi)容(例如,菜單和按鈕的標(biāo)題)從源文件中分離出來(lái),放在獨(dú)立的資源文件(擴(kuò)展名為.properties的文件)中,并針對(duì)不同的本地環(huán)境編寫(xiě)不同的資源文件,例如,在英語(yǔ)資源文件中寫(xiě)入“hello”,在中文資源文件中寫(xiě)入“你好”,這些資源文件共同組成一個(gè)資源包。
一個(gè)資源包中每個(gè)資源文件都必須擁有共同的基名。除了基名,每個(gè)資源文件的名稱(chēng)中還必須有標(biāo)識(shí)其本地信息的附加部分。
例如,一個(gè)資源包的基名是myproperties,對(duì)應(yīng)資源文件的名稱(chēng)如下。
(1)默認(rèn)資源文件名:myproperites.properties。
(2)對(duì)應(yīng)的中文資源文件名為:myproperites_zh.properties。
(3)對(duì)應(yīng)的英文資源文件名為:myproperites_en.properties。
在上述資源文件中,“zh”和“en”代表本地環(huán)境的語(yǔ)言代碼。如果要為使用相同語(yǔ)言的不同國(guó)家的資源文件,則還需在語(yǔ)言代碼的后面增加代表國(guó)家的代碼,例如,英語(yǔ)(美國(guó))對(duì)應(yīng)的資源文件名稱(chēng)為“myproperites_en_US.properties”。
一般情況下,每個(gè)資源包中都有一個(gè)默認(rèn)的資源文件,以資源包的基名命名,不帶標(biāo)識(shí)本地信息的附加部分,如果應(yīng)用程序在資源包中找不到某個(gè)本地環(huán)境匹配的資源文件,就會(huì)選擇該資源包中的默認(rèn)資源文件。