java - ResourceBundle 仅理解 "en"区域设置

标签 java locale

我创建一个区域设置,并尝试使用所述区域设置创建一个 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/

相关文章:

python - f 字符串中的整数表示类型不返回预期格式

java - 如何在tomcat上部署java应用并在线访问

java - spark-submit找不到类(当类包含在jar中时)

PostgreSQL 的 `initdb` 失败,返回 "invalid locale settings; check LANG and LC_* environment variables"

android - 如何以应用程序的默认语言设置 google api 对话框的文本

c++ - 没有 stringstream 的逗号分隔数

java - 在 Java 中使用随机访问文件更新文件的一部分

java - (Java) 为什么这个构造函数会导致空指针异常?

java - 从android资源中选择一个值

javascript - 获取 laravel 应用程序的语言环境