- Java 國際化教程
- Java I18N - 首頁
- Java I18N - 概述
- Java I18N - 環境設定
- Locale 類示例
- Java I18N - Locale 類
- Java I18N - Locale 細節
- Java I18N - 顯示語言
- ResourceBundle 類示例
- Java I18N - ResourceBundle 類
- NumberFormat 類示例
- Java I18N - NumberFormat 類
- Java I18N - 格式化貨幣
- Java I18N - 格式化百分比
- Java I18N - 設定最小/最大精度
- Java I18N - 設定舍入模式
- Java I18N - 解析數字
- DecimalFormat 類示例
- Java I18N - DecimalFormat 類
- Java I18N - 格式化模式
- Java I18N - 地區特定的 DecimalFormat
- Java I18N - DecimalFormatSymbols 類
- Java I18N - 分組數字
- DateFormat 類示例
- Java Java - DateFormat 類
- Java I18N - 格式化日期
- Java I18N - 格式化時間
- Java I18N - 格式化日期和時間
- SimpleDateFormat 類示例
- Java I18N - SimpleDateFormat 類
- Java I18N - 格式化日期
- Java I18N - DateFormatSymbols 類
- Java I18N - 日期格式模式
- 時區示例
- Java I18N - UTC
- Unicode 轉換
- Java I18N - 從字串到字串的轉換
- Java I18N - 從 Reader 到 Writer 的轉換
- 相關教程
- Java 教程
- JDBC 教程
- SWING 教程
- AWT 教程
- Servlet 教程
- JSP 教程
- Java I18N 有用資源
- Java I18N - 快速指南
- Java I18N - 有用資源
- Java I18N - 討論
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。
廣告