誰かが次の方法の何が悪いのか知っていますか?
public static String getMessageBundleString(String key, String localeAcronym) throws MissingResourceException {
FacesContext facesContext = FacesContext.getCurrentInstance();
String messageBundleName = facesContext.getApplication().getMessageBundle();
ResourceBundle bundle = ResourceBundle.getBundle(messageBundleName, new Locale(localeAcronym));
//THE LOCALE OF THIS BUNDLE IS ALWAYS 'es_ES' !!!
return bundle.getString(key);
}
Primefaces / JSF環境で、適切なi18nプロパティファイルからキーを取得したいと思います。
ただし、常にmessages_es_ES.propertiesファイルから取得します。
次の呼び出しは同じ値(='Inicio')を返します。
getMessageBundleString("home", "es_ES")
getMessageBundleString("home", "uk_UK")
messages_es_ES.properties:
home=Inicio
messages_uk_UK.properties:
home=Home
ありがとう
ここに私のfaces-config.xmlコンテンツのいくつかがあります:
<application>
<locale-config>
<supported-locale>es_ES</supported-locale>
<supported-locale>uk_UK</supported-locale>
</locale-config>
<message-bundle>cfg.i18n.messages</message-bundle>
<resource-bundle>
<base-name>cfg.i18n.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>