i18n找不到区域设置属性

时间:2012-06-01 08:16:38

标签: java internationalization faces-config

java.util.MissingResourceException: Can't find bundle for base name xxx.i18n.base, locale en_US

我目前正在使用Facelets实现i18n。 我有三个.properties文件:

  • xxx.i18n.base.properties
  • xxx.i18n.base_en_US.properties
  • xxx.i18n.base_nl_NL.properties

面-config.xml中

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.0"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">

    <application>
        <locale-config>
            <default-locale>nl_NL</default-locale>
            <supported-locale>en_US</supported-locale>
        </locale-config>
        <resource-bundle>
            <base-name>xxx.i18n.base</base-name>
            <var>base</var>
        </resource-bundle>
    </application>
</faces-config>

正如错误所述,我无法找到en_US文件,但是当我为nl_NL设置我的语言环境时,也找不到它。最后,将语言环境放到像de_DE这样的地方会给我de_DE的结果,即使这个语言环境没有被定义为支持。

我正在使用以下语法从.properties文件中检索值

#{base['msg']}

有没有人知道为什么我的应用程序似乎无法找到这些区域设置文件?

2 个答案:

答案 0 :(得分:0)

如果您的默认语言环境是“nl_NL”,那么请更改您的faces-config.xml。

    <application>
      <locale-config>
        <default-locale>nl_NL</default-locale>
        <supported-locale>en_US</supported-locale>
      </locale-config>
      <resource-bundle>
        <base-name>xxx.i18n.base_nl_NL</base-name>
        <var>msg</var>
      </resource-bundle>
   </application>

还要确保属性文件的路径是否正确。

答案 1 :(得分:0)

似乎我已将我的属性文件放在错误的文件夹中: java / xxx / i18n而不是resources / xxx / i18n

更换属性文件后,问题解决了。 大家都感谢你的帮助!