Java资源绑定(ResourceBundle)示例

java.util.ResourceBundle是用于国际化(多语言)的库。它能够根据为系统配置的默认区域设置返回消息。当开发适用于世界各地使用的系统时,就可以使用这样的功能。

1.它是如何工作的?

库是基于在属性命名中使用的区域设置和名称后缀读取属性文件。例如,考虑一个名为MyLabels_en_US.properties的标签文件。 当Locale设置表示US-Englishen_US时,此文件由ResourceBundle程序读取。

区域设置表示具有其属性的区域或位置。Locale通常用于使用我们的应用程序维护有关客户端的详细信息。 区域设置包含要用于相应位置的位置和语言的属性。 因此,Locale通过确定用户所属的位置来帮助ResourceBundle选择正确的标签文件。

2.示例

让我们看看下面的例子,以更清楚地说明这个问题:
MyLabels_en_US.properties 文件有以下内容 -

how_are_you = How are you?
Java

MyLabels_ms_MY.properties 文件有以下内容 -

how_are_you = apa khabar
Java

完整的程序代码如下 -

import java.util.Locale;
import java.util.ResourceBundle;

public class Application {

    public static void main(String[] args) {

        // en_US
        System.out.println("Current Locale: " + Locale.getDefault());
        ResourceBundle mybundle = ResourceBundle.getBundle("MyLabels");

        // read MyLabels_en_US.properties
        System.out.println("Say how are you in US English: " + mybundle.getString("how_are_you"));

        Locale.setDefault(new Locale("ms" "MY"));

        // read MyLabels_ms_MY.properties
        System.out.println("Current Locale: " + Locale.getDefault());
        mybundle = ResourceBundle.getBundle("MyLabels");
        System.out.println("Say how are you in Malaysian Malaya language: " + mybundle.getString("how_are_you"));

    }

}
Java

在执行此代码时,得到以下输出:

Current Locale: en_US
Say how are you in US English: How are you?
Current Locale: ms_MY
Say how are you in Malaysian Malaya language: apa khabar
Java

在输出中可以看到,取决于为Locale集设置的默认值。此实用程序主要用于Web应用程序,其中Web浏览器有助于了解远程用户的区域设置。这使得尽可能以特定语言显示网站成为可能。

你可能感兴趣的:(Java)