首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从正确的i18n属性文件中检索JSF中的密钥

从正确的i18n属性文件中检索JSF中的密钥
EN

Stack Overflow用户
提问于 2013-01-03 12:11:37
回答 2查看 630关注 0票数 2

有人知道下一个方法有什么问题吗?

代码语言:javascript
复制
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'):

代码语言:javascript
复制
getMessageBundleString("home", "es_ES")
getMessageBundleString("home", "uk_UK")

messages_es_ES.properties:
home=Inicio

messages_uk_UK.properties:
home=Home

谢谢

下面是我的一些faces-config.xml内容:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-03 14:55:21

这一备选案文起作用(将国家和语言分开):

代码语言:javascript
复制
public static String getMessageBundleString(String key, String language, String country) throws MissingResourceException {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String messageBundleName = facesContext.getApplication().getMessageBundle();
    ResourceBundle bundle = ResourceBundle.getBundle(messageBundleName, new Locale(language, country));
        //Valid ones: "es","ES"; "en","GB"!!!
    return bundle.getString(key);
}
票数 1
EN

Stack Overflow用户

发布于 2013-01-03 12:25:55

你试过这种变体了吗?

代码语言:javascript
复制
getMessageBundleString("home", "es")
getMessageBundleString("home", "en")
messages_es.properties:
home=Inicio
messages_en.properties:
home=Home
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14138694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档