`
orange5458
  • 浏览: 347641 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ResourceBundle

阅读更多

1.简介

      资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包中加载它。使用这种方式,可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。
     这使编写的程序可以:

1)轻松地本地化或翻译成不同的语言

2)一次处理多个语言环境

3)以后可以轻松进行修改,以便支持更多的语言环境

      资源包属于这样的系列,其成员共享一个公共的基本名称,但是名称中还有标识其语言环境的其他组件。例如,某个资源包系列的基本名称可能是 "MyResources"。该系列应该有一个默认资源包,其名称与其系列名相同( "MyResources"),如果不支持指定的语言环境,则应该将此资源包用作最后的手段。然后,此系列可根据需要提供特定于语言环境的成员,例如一个名为 "MyResources_de" 的德语资源包。
       一个系列中的每个资源包都包含相同的项,但是这些项已经针对该资源包所代表的语言环境进行了翻译。例如,"MyResources" 和 "MyResources_de" 可能有用在取消操作按钮上的 String。在 "MyResources" 中,String 可能包含 "Cancel",而 "MyResources_de" 中则可能包含 "Abbrechen"。
       如果不同的国家/地区有不同的资源,则可以对它们进行限定:例如,"MyResources_de_CH" 包含瑞士 (CH) 中包含德语 (de) 的对象。如果只想修改限定中的某些资源,就可以这样做。
2.实例

1)代码

    SRC

    |-com.siyuan.test.util

        |-ResourceBundleTest.java

    |-MyResources_en.properties

    |-MyResources.properties

    (1)ResourceBundleTest.java   

package com.siyuan.test.util;

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

public class ResourceBundleTest {

	public static void main(String[] args) {
		//输出本地Locale
		System.out.println(Locale.getDefault());
		//使用默认的Locale.UK,并且存在XX_en与之对应
		ResourceBundle resourceBundle1 = ResourceBundle.getBundle("MyResources", Locale.UK);
		System.out.println(resourceBundle1.getString("welcome"));
		System.out.println(resourceBundle1.getLocale());
		//使用本地Locale
		ResourceBundle resourceBundle2 = ResourceBundle.getBundle("MyResources", Locale.getDefault());
		System.out.println(resourceBundle2.getString("welcome"));
		System.out.println(resourceBundle2.getLocale());
		//使用默认的Locale.CHINA,并且与本地Locale一致
		ResourceBundle resourceBundle3 = ResourceBundle.getBundle("MyResources", Locale.CHINA);
		System.out.println(resourceBundle3.getString("welcome"));
		System.out.println(resourceBundle3.getLocale());
		//使用默认的Locale.JAPAN,不存在XX_ja与只对应,也不与本地Locale一致
		ResourceBundle resourceBundle4 = ResourceBundle.getBundle("MyResources", Locale.JAPAN);
		System.out.println(resourceBundle4.getString("welcome"));
		System.out.println(resourceBundle4.getLocale());
	}

}

   (2)MyResources_en.properties

welcome=hello

    (3)MyResources.properties

welcome=nihao

 2)运行结果

zh_CN
hello
en
nihao

nihao

nihao

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics