个性化阅读
专注于IT技术分析

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类的示例

让我们看一下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?
赞(0)
未经允许不得转载:srcmini » Java中的ResourceBundle类

评论 抢沙发

评论前必须登录!