JAVA国际化的一个小例子,系统为啥不使用默认资源类????
理论上,如果找不到给定Locale的资源,应该使用默认资源啊。
为啥我的程序都使用中文资源呢?????
本小程序包含3个源文件:
主类代码:
import java.util.Locale;
import java.util.ResourceBundle;
public class Main {
public static void main(String[] args) {
ResourceBundle rb = null;
rb = ResourceBundle.getBundle( "MyResource ");
System.out.println(rb.getObject( "key "));
rb = ResourceBundle.getBundle( "MyResource ", Locale.FRANCE);
System.out.println(rb.getObject( "key ")); //这里为什么还输出中文?
}
------------------------------------
默认资源类代码:
import java.util.ListResourceBundle;
public class MyResource extends ListResourceBundle {
@Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{ "key ", "hello "}
};
}
}
----------------------------------------------------------------------
中文资源类代码:
import java.util.ListResourceBundle;
public class MyResource_zh extends ListResourceBundle {
@Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{ "key ", "你好 "}
};
}
------解决方案--------------------大概Java是根据系统的默认国家和语言来找的默认资源吧
估计过程是这样的:
先找指定的语言,如果没有
再找默认的语言(系统的),如果没有
找默认资源(无后缀的那个)