java代码加国际化功能 java代码加国际化功能怎么加( 二 )


4System.out.println("k1="+mf.format(new Object[]{"巨亚红"}));
结果为:
5、设置缺省国际化资源文件 。
上面中我们设置的两个Locale已有资源文件,但是如果我们随便设置一个Locale,如果没有它对应的资源文件怎么办?那么就需要设置一个缺省的国际化资源文件了 。只要添加一个名为MessgesBundle.properties的资源文件可以了,在里面进行相应的设置就OK了 。
注意点:
缺省的Locale是由操作系统决定的 。
Locale由语言和国家代码构成 。
国际化资源文件是由baseName+Locale构成,如: MessgesBundle_en_US.properties
缺省的国际化资源文件是由baseName.properties命名的,如:MessgesBundle.properties
如果资源文件放在了包里,那么baseName就要加上包名了,否则找不到 。
附上出处链接:
Java中如何实现程序国际化1 Java国际化的思路
Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中java代码加国际化功能,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件 。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家、语言改变 。
Java程序的国际化主要通过如下三个类完成:
? java.util.ResourceBundle:用于加载一个国家、语言资源包 。
? java.util.Locale:用于封装一个特定的国家/区域、语言环境 。
? java.text.MessageFormat:用于格式化带占位符的字符串 。
为了实现程序的国际化,必须先提供程序所需要的资源文件 。资源文件的内容是很多key-value对 。其中key是程序使用的部分 , 而value则是程序界面的显示字符串 。
资源文件的命名可以有如下三种形式:
? baseName _ language _country.properties
? baseName _language.properties
? baseName.properties
其中baseName是资源文件的基本名,用户可以自由定义 。而language和country都不可随意变化,必须是Java所支持的语言和国家 。
2 Java支持的语言和国家
事实上 , Java不可能支持所有国家和语言,如需要获取Java所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含了Java所支持的语言和国家 。
下面的程序简单地示范了如何获取Java所支持的国家和语言:
public class LocaleList
{
public static void main(String[] args)
{
//返回Java所支持的全部国家和语言的数组
Locale[] localeList = Locale.getAvailableLocales();
//遍历数组的每个元素,依次获取所支持的国家和语言
for (int i = 0; ilocaleList.length ; i++ )
{
//打印出所支持的国家和语言
System.out.println(localeList[i].getDisplayCountry() + "=" + locale
List[i].getCountry()+ " " + localeList[i].getDisplayLanguage()
+ "=" + localeList[i].getLanguage());
}
}
}
通过该程序,我们就可以获得Java程序所支持的国家/语言环境 。
3 完成程序国际化
对于如下最简单的程序:
public class RawHello
{
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
这个程序的执行结果也很简单:肯定是打印出简单的“Hello World”字符串,不管在哪里执行都不会有任何改变java代码加国际化功能!为了让该程序支持国际化,则肯定不能让程序直接输出“Hello World”的字符串,这种写法直接输出一个字符串常量,永远不会有任何改变 。为了让程序可以输出不同的字符串 , 此处绝不可使用该字符串常量 。
为了让上面输出的字符串常量可以改变 , 我们将需要输出的各种字符串(不同国家/语言环境对应不同的字符串)定义在资源包中 。

推荐阅读