📅  最后修改于: 2020-11-15 03:36:19             🧑  作者: Mango
ResourceBundle类用于存储对语言环境敏感的文本和对象。通常,我们使用属性文件存储特定于语言环境的文本,然后使用ResourceBundle对象表示它们。以下是在基于Java的应用程序中使用语言环境特定的属性文件的步骤。
假设我们需要用于英语语言环境的属性文件。然后创建一个属性文件名XXX_en_US.properties,其中XXX是文件名,en_US代表English(US)的语言环境。
Messages_zh_CN.properties
message=Welcome to TutorialsPoint.COM!
现在让我们为法语语言环境创建属性文件。然后创建一个属性文件名XXX_fr_FR.properties,其中XXX是文件名,而fr_FR代表French(France)的语言环境。
Messages_fr_FR.properties
message=Bienvenue sur TutorialsPoint.COM!
在这里,您可以确定键是相同的,但是两个属性文件中的值都是特定于区域设置的。
使用以下语法使用属性文件名和语言环境创建ResourceBundle对象。
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
通过传递键从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。
对于映射到语言环境的属性文件,可以通过两种方式附加前缀。 message_fr.properties等同于message_fr_FR.properties。