ResourceBundle類(lèi)用于存儲(chǔ)區(qū)域設(shè)置敏感的文本和對(duì)象。 通常使用屬性文件來(lái)存儲(chǔ)特定于語(yǔ)言環(huán)境的文本,然后使用ResourceBundle對(duì)象來(lái)表示它們。 以下是在基于Java的應(yīng)用程序中使用特定于語(yǔ)言環(huán)境的屬性文件的步驟。
假設(shè)我們需要英文語(yǔ)言環(huán)境的屬性文件。創(chuàng)建屬性文件名稱(chēng)為:XXX_en_US.properties,其中XXX是文件的名稱(chēng),en_US表示英語(yǔ)(美國(guó))的語(yǔ)言環(huán)境。
文件:Messages_en_US.properties -
message=Welcome to Yiibai.COM!
現(xiàn)在為法語(yǔ)區(qū)域設(shè)置創(chuàng)建屬性文件。創(chuàng)建一個(gè)屬性文件名稱(chēng)為:XXX_fr_FR.properties,其中XXX是文件的名稱(chēng),fr_FR表示法語(yǔ)(法國(guó))的語(yǔ)言環(huán)境。
文件:Messages_fr_FR.properties -
message=Bienvenue sur Yiibai.COM!
在這里可以看到鍵(message)是相同的,但是這個(gè)值在屬性文件中是特定于語(yǔ)言環(huán)境的。
使用以下語(yǔ)法創(chuàng)建具有屬性文件名和區(qū)域設(shè)置的ResourceBundle對(duì)象。
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
通過(guò)傳遞鍵,然后從ResourceBundle對(duì)象獲取值。
String value = bundle.getString("message");
以下示例說(shuō)明如何使用ResourceBundle對(duì)象來(lái)顯示來(lái)自屬性文件的特定于區(qū)域的值。
文件:IOTester.java -
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTester {
public static void main(String[] args) {
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
System.out.println("Message in "+Locale.US +": "+bundle.getString("message"));
bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE);
System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message"));
}
}
它會(huì)打印下面的結(jié)果 -
Message in en_US: Welcome to Yiibai.COM!
Message in fr_FR: Bienvenue sur Yiibai.COM!
命名約定注意事項(xiàng)
以下是屬性文件的命名約定。
message_en_US.properties等同于message.properties。message_fr.properties等同于message_fr_FR.properties。