Java I18n 简明教程
Java Internationalization - ResourceBundle Class
ResourceBundle 类用于存储与语言环境相关的文本和对象。我们通常使用属性文件来存储特定语言环境的文本并使用 ResourceBundle 对象来表示它们。以下是 Java 中基于应用程序使用特定语言环境的属性文件的步骤。
Step 1: Create Properties Files
假设我们需要英语语言环境的属性文件。然后创建一个属性文件名称为 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!
在这里你可以发现键是相同的,但值在两个属性文件中属于特定语言环境。
Step 2: Create ResourceBundle Object
使用属性文件名称和语言环境通过以下语法创建 ResourceBundle 对象。
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
Step 3: Get the value from ResourceBundle Object
通过传递键从 ResourceBundle 对象获取值。
String value = bundle.getString("message");
Example
以下示例说明如何使用 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!