ResourceBundle類用於儲存區域設定敏感的文字和物件。 通常使用屬性檔案來儲存特定於語言環境的文字,然後使用ResourceBundle
物件來表示它們。 以下是在基於Java的應用程式中使用特定於語言環境的屬性檔案的步驟。
假設我們需要英文語言環境的屬性檔案。建立屬性檔案名稱為:XXX_en_US.properties
,其中XXX
是檔案的名稱,en_US
表示英語(美國)的語言環境。
檔案:Messages_en_US.properties -
message=Welcome to Tw511.COM!
現在為法語區域設定建立屬性檔案。建立一個屬性檔案名稱為:XXX_fr_FR.properties
,其中XXX
是檔案的名稱,fr_FR
表示法語(法國)的語言環境。
檔案:Messages_fr_FR.properties -
message=Bienvenue sur Tw511.COM!
在這裡可以看到鍵(message
)是相同的,但是這個值在屬性檔案中是特定於語言環境的。
使用以下語法建立具有屬性檔案名和區域設定的ResourceBundle
物件。
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
通過傳遞鍵,然後從ResourceBundle
物件獲取值。
String value = bundle.getString("message");
以下範例說明如何使用ResourceBundle
物件來顯示來自屬性檔案的特定於區域的值。
檔案: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"));
}
}
它會列印下面的結果 -
Message in en_US: Welcome to Tw511.COM!
Message in fr_FR: Bienvenue sur Tw511.COM!
命名約定注意事項
以下是屬性檔案的命名約定。
message_en_US.properties
等同於message.properties
。message_fr.properties
等同於message_fr_FR.properties
。