更新时间:2022-08-09 来源:黑马程序员 浏览量:
在开发一个国际化的Web应用时,通常会存储许多用于保存各个国家语言的资源文件,这些资源文件都需要使用类加载器来加载,这样的加载方式比较麻烦,为了方便获取这些资源文件,JDK提供了一个ResourceBundle类,该类位于java.util包中,用于描述一个资源包,一个资源包用于包含一组与某个本地环境相关的对象,可以从一个资源包中获取特定的本地环境的对象。对于不同的本地环境,可以有不同的ResourceBundle对象与之关联。
在设计一个国际化的应用时,应该把程序显示的文本内容(例如,菜单和按钮的标题)从源文件中分离出来,放在独立的资源文件(扩展名为.properties的文件)中,并针对不同的本地环境编写不同的资源文件,例如,在英语资源文件中写入“hello”,在中文资源文件中写入“你好”,这些资源文件共同组成一个资源包。
一个资源包中每个资源文件都必须拥有共同的基名。除了基名,每个资源文件的名称中还必须有标识其本地信息的附加部分。
例如,一个资源包的基名是myproperties,对应资源文件的名称如下。
(1)默认资源文件名:myproperites.properties。
(2)对应的中文资源文件名为:myproperites_zh.properties。
(3)对应的英文资源文件名为:myproperites_en.properties。
在上述资源文件中,“zh”和“en”代表本地环境的语言代码。如果要为使用相同语言的不同国家的资源文件,则还需在语言代码的后面增加代表国家的代码,例如,英语(美国)对应的资源文件名称为“myproperites_en_US.properties”。
一般情况下,每个资源包中都有一个默认的资源文件,以资源包的基名命名,不带标识本地信息的附加部分,如果应用程序在资源包中找不到某个本地环境匹配的资源文件,就会选择该资源包中的默认资源文件。