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

私は現在、Faceletsを使用してi18nを実装しています。3つの.propertiesファイルがあります。

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

faces-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

デフォルトのロケールが「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 に答える
0

プロパティファイルを間違ったフォルダに配置したようです:resources / xxx/i18nではなくjava/xxx / i18n

プロパティファイルを置き換えた後、私の問題は解決しました。みんなあなたの助けに感謝します!

于 2012-06-05T19:00:01.293 に答える