我创建一个区域设置,并尝试使用所述区域设置创建一个 ResourceBundle。如果我使用芬兰语言环境,ResourceBundle 似乎不接受/理解它 - 相反,它会得到一个空语言环境。当使用英语语言环境时,它似乎工作得很好。
Locale obj = new Locale("en");
ResourceBundle resource = ResourceBundle.getBundle("web_resources", obj);
log.debug(resource.getLocale());
log.debug(obj);
记录“en”、“en”。
Locale obj = new Locale("fi");
ResourceBundle resource = ResourceBundle.getBundle("web_resources", obj);
log.debug(resource.getLocale());
log.debug(obj);
记录“”、“fi”。
我还测试了 fr(法语)和 German(德)语言环境 - 它们也不起作用。添加国家代码似乎没有帮助。我错过了什么?
最佳答案
您的类路径根目录中是否有 web_resources_fi.properties 的 web_resources_fi.class ?如果没有,则 ResourceBundle.getBundle 查找 web_resources.class 或 web_resources.properties(在查找基本名称附加了默认区域设置的此类文件之后)。
参见http://download.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle%28java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader%29有关此方法如何工作的详细信息。
关于java - ResourceBundle 仅理解 "en"区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062747/