- 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。
广告