【问题标题】:Changing language without changing locale in JSF在 JSF 中更改语言而不更改语言环境
【发布时间】:2012-08-14 12:23:15
【问题描述】:

我目前有一个 JSF 应用程序,它根据用户选择的语言设置区域设置。他得到一个下拉菜单,在选择英语时,我将语言环境设置为 en 等。 这适用于数字格式以及从我的 ResourceBundle 加载的语言字符串。

所以对于 en,我得到英文单词和一个 .作为小数分隔符。 对于 fr,我得到 French 和 a ,作为十进制分隔符。

但是,现在要求对于本网站,数字格式必须始终使用 , 作为小数分隔符。所以,我正在考虑将语言环境固定为 fr。

用户仍然必须能够更改他的语言。 那么,在 JSF 中是否可以在不更改语言环境的情况下加载不同的语言?

【问题讨论】:

    标签: java jsf localization translation


    【解决方案1】:

    你需要一个特殊的格式化解决方案,因此覆盖格式化程序可能是更好的解决方案。我认为 JSF 支持替换默认的数字格式。

    【讨论】:

    • 确实!看来我需要一些假期,因为我开始考虑过于复杂的解决方案;)
    【解决方案2】:

    只需明确指定您正在使用的<f:convertNumber> 标记的locale 属性。

    例如

    <f:convertNumber ... locale="fr" />
    

    或类似的东西

    <f:convertNumber ... locale="#{app.defaultNumberLocale}" />
    

    否则它确实会默认为 UIViewRoot#getLocale(),正如您所遇到的那样。

    另见:

    【讨论】:

    • 我确实走到了这一步。不过,阅读文档后,我认为您的 locale="fr_FR" 不起作用,因为 Locale(String) 的第一个参数必须是小写的两个字母 ISO-639 代码
    猜你喜欢
    • 2012-08-18
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多