开发手册 欢迎您!
软件开发者资料库

Java内化 - ResourceBundle类

Java Internalization ResourceBundle类 - 从简单和简单的步骤学习Java内部化,从基本概念到高级概念,包括概述,环境设置,区域设置,区域设置详细信息,显示语言,ResourceBundle,NumberFormat,格式货币,格式百分比,设置最小/最大精度,设置舍入模式,解析数字,DecimalFormat,格式数字,特定于区域设置的DecimalFormat,DecimalFormatSymbols,分组数字,DateFormat,格式化日期,格式化时间,格式化日期和时间,SimpleDateFormat,解析日期,特定于区域设置的SimpleDateFormat,DateFormatSymbols,UTC,转换时间区域,可用时区

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对象从属性文件中显示特定于语言环境的值.

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

命名约定的注释

以下是属性文件的命名约定.

  • 对于映射到默认语言环境的属性文件,不需要前缀. message_en_US.properties等同于message.properties.

  • 对于映射到locale的属性文件,可以通过两种方式附加前缀. message_fr.properties等同于message_fr_FR.properties.