读书人

JAVA国际化的一个小例子系统为啥不使

发布时间: 2012-01-10 21:26:51 作者: rapoo

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是根据系统的默认国家和语言来找的默认资源吧

估计过程是这样的:
先找指定的语言,如果没有
再找默认的语言(系统的),如果没有
找默认资源(无后缀的那个)

读书人网 >J2SE开发

热点推荐