Java中的ResourceBundle类

ResourceBundle类用于使消息国际化。换句话说, 我们可以说它提供了一种全球化消息的机制。
硬编码的消息在编程方面不被认为是好的, 因为一个国家与另一个国家不同。因此, 我们使用ResourceBundle类将按摩全球化。 ResourceBundle类从包含消息的属性文件中加载这些信息。
按照惯例, 属性文件的名称应为filename_languagecode_country代码, 例如MyMessage_en_US.properties。
ResourceBundle类的常用方法
ResourceBundle类中有许多方法。让我们看一下ResourceBundle类的常用方法。

  • 公共静态ResourceBundle getBundle(String basename)返回默认语言环境的ResourceBundle类的实例。
  • 公共静态ResourceBundle getBundle(String basename, Locale locale)返回指定语言环境的ResourceBundle类的实例。
  • public String getString(String key)返回此资源束中相应密钥的值。
ResourceBundle类的示例
【Java中的ResourceBundle类】让我们看一下ResourceBundle类的简单示例。在此示例中, 我们将创建三个文件:
  • MessageBundle_zh_CN.properties文件包含美国国家/地区的本地化消息。
  • MessageBundle_in_ID.properties文件包含Indonaisa国家/地区的本地化消息。
  • InternationalizationDemo.java文件, 将这些属性文件打包装入并打印消息。
MessageBundle_en_US.properties
greeting=Hello, how are you?

MessageBundle_in_ID.properties
greeting=Halo, apa kabar?

InternationalizationDemo.java
import java.util.Locale; import java.util.ResourceBundle; public class InternationalizationDemo { public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("MessageBundle", Locale.US); System.out.println("Message in "+Locale.US +":"+bundle.getString("greeting")); //changing the default locale to indonasian Locale.setDefault(new Locale("in", "ID")); bundle = ResourceBundle.getBundle("MessageBundle"); System.out.println("Message in "+Locale.getDefault()+":"+bundle.getString("greeting")); } }

Output:Message in en_US : Hello, how r u? Message in in_ID : halo, apa kabar?

    推荐阅读