JSF FacesMessage本地化

时间:2010-11-27 14:00:41

标签: jsf localization

我现在的问题是我无法使用FacesMessage进行本地化

我试过了:

try {
    ResourceBundle bundle = ResourceBundle.getBundle("translations", context.getViewRoot().getLocale());
    text = bundle.getString("loginFail");
} catch (Exception e) {
    System.out.println("EXCEPTION: " + e);
}

FacesContext.getCurrentInstance().addMessage("", new FacesMessage(text));

但抛出以下异常

java.util.MissingResourceException: Can't find bundle for base name translations, locale cs

faces-config.xml 包含:

<application>
    <locale-config>
        <default-locale>cs</default-locale>
        <supported-locale>en</supported-locale>
    </locale-config>
    <resource-bundle>
        <base-name>tr.translations</base-name>
        <var>txt</var>
    </resource-bundle>
    <message-bundle>
        tr.translations
    </message-bundle>
</application>

文件 translations_cs.properties translations_en.properties 在tr包中,位置绝对可以。

你知道如何让它运作吗? 提前致谢

1 个答案:

答案 0 :(得分:7)

getBundle()中的基本名称应为tr.translations,与faces-config.xml中的基本名称完全相同。