我现在的问题是我无法使用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包中,位置绝对可以。
你知道如何让它运作吗? 提前致谢
答案 0 :(得分:7)
getBundle()
中的基本名称应为tr.translations
,与faces-config.xml
中的基本名称完全相同。