0
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']}

有谁知道为什么我的应用程序似乎找不到这些语言环境文件?

4

2 回答 2

0

似乎我的属性文件位于错误的文件夹中:java/xxx/i18n 而不是 resources/xxx/i18n

替换属性文件后,我的问题就解决了。大家都感谢您的帮助!

于 2012-06-05T19:00:01.293 回答
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>

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

于 2012-06-01T11:34:02.130 回答