鍍金池/ 教程/ Java/ Java國際化(i18n)ResourceBundle類
Java國際化(i18n)教程
Java國際化(i18n)UTC
Java國際化(i18n)SimpleDateFormat類
Java國際化(i18n)解析數字
Java國際化(i18n)格式化百分比
Java國際化(i18n) Locale類
Java國際化(i18n)特定于區(qū)域的格式化日期
Java國際化(i18n)日期格式模式
Java國際化(i18n)格式化日期時間
Java國際化(i18n)格式化模式
Java國際化(i18n)顯示語言
Java國際化(i18n) Locale類詳細示例
Java國際化(i18n)ResourceBundle類
Java國際化(i18n)區(qū)域設置特定的DecimalFormat
Java國際化(i18n)NumberFormat類
Java國際化(i18n)設置最小/最大精度
Java國際化(i18n)分組數字
Java國際化(i18n)DateFormat類
Java國際化(i18n)Reader/Writer與Unicode轉換
Java國際化(i18n)簡介
Java國際化(i18n)DateFormatSymbols類
Java國際化(i18n)設置舍入模式
Java國際化(i18n)DecimalFormatSymbols類
Java國際化(i18n)格式化時間
Java國際化(i18n)格式化日期
Java國際化(i18n)字符串與Unicode轉換
Java國際化(i18n)格式化貨幣
Java國際化(i18n)DecimalFormat類

Java國際化(i18n)ResourceBundle類

ResourceBundle類用于存儲區(qū)域設置敏感的文本和對象。 通常使用屬性文件來存儲特定于語言環(huán)境的文本,然后使用ResourceBundle對象來表示它們。 以下是在基于Java的應用程序中使用特定于語言環(huán)境的屬性文件的步驟。

第1步:創(chuàng)建屬性文件

假設我們需要英文語言環(huán)境的屬性文件。創(chuàng)建屬性文件名稱為:XXX_en_US.properties,其中XXX是文件的名稱,en_US表示英語(美國)的語言環(huán)境。

文件:Messages_en_US.properties -

message=Welcome to Yiibai.COM!

現在為法語區(qū)域設置創(chuàng)建屬性文件。創(chuàng)建一個屬性文件名稱為:XXX_fr_FR.properties,其中XXX是文件的名稱,fr_FR表示法語(法國)的語言環(huán)境。

文件:Messages_fr_FR.properties -

message=Bienvenue sur Yiibai.COM!

在這里可以看到鍵(message)是相同的,但是這個值在屬性文件中是特定于語言環(huán)境的。

第2步:創(chuàng)建ResourceBundle對象

使用以下語法創(chuàng)建具有屬性文件名和區(qū)域設置的ResourceBundle對象。

ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);

第3步:從ResourceBundle對象獲取值。

通過傳遞鍵,然后從ResourceBundle對象獲取值。

String value = bundle.getString("message");

示例

以下示例說明如何使用ResourceBundle對象來顯示來自屬性文件的特定于區(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"));
   }
}

它會打印下面的結果 -

Message in en_US: Welcome to Yiibai.COM!
Message in fr_FR: Bienvenue sur Yiibai.COM!

命名約定注意事項

以下是屬性文件的命名約定。

  • 對于映射到默認語言環(huán)境的屬性文件,不需要前綴。 message_en_US.properties等同于message.properties。
  • 對于映射到語言環(huán)境的屬性文件,可以通過兩種方式附加前綴。 message_fr.properties等同于message_fr_FR.properties。