Java 國際化 - ResourceBundle 類



ResourceBundle 類用於儲存對區域設定敏感的文字和物件。通常我們使用屬性檔案來儲存特定於區域設定的文字,然後使用 ResourceBundle 物件來表示它們。以下是如何在基於 Java 的應用程式中使用特定於區域設定的屬性檔案的步驟。

步驟 1:建立屬性檔案

假設我們需要為英語區域設定建立屬性檔案。然後建立一個名為 XXX_en_US.properties 的屬性檔案,其中 XXX 是檔名,en_US 表示英語(美國)的區域設定。

Messages_en_US.properties

message=Welcome to TutorialsPoint.COM!

現在讓我們為法語區域設定建立屬性檔案。然後建立一個名為 XXX_fr_FR.properties 的屬性檔案,其中 XXX 是檔名,fr_FR 表示法語(法國)的區域設定。

Messages_fr_FR.properties

message=Bienvenue sur TutorialsPoint.COM!

在這裡您可以發現鍵是相同的,但兩個屬性檔案中的值是特定於區域設定的。

步驟 2:建立 ResourceBundle 物件

使用以下語法建立具有屬性檔名和區域設定的 ResourceBundle 物件。

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

步驟 3:從 ResourceBundle 物件獲取值

透過傳遞鍵從 ResourceBundle 物件獲取值。

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

示例

以下示例說明了如何使用 ResourceBundle 物件從屬性檔案中顯示特定於區域設定的值。

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 TutorialsPoint.COM!
Message in fr_FR: Bienvenue sur TutorialsPoint.COM!

命名約定說明

以下是屬性檔案的命名約定。

  • 對於對映到預設區域設定的屬性檔案,沒有字首是強制性的。message_en_US.properties 等效於 message.properties。

  • 對於對映到區域設定的屬性檔案,可以透過兩種方式附加字首。message_fr.properties 等效於 message_fr_FR.properties。

廣告

© . All rights reserved.