在不改变JSF语言环境的情况下更改语言

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

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

但是,现在有一个要求,对于这个网站,数字格式必须始终有一个,作为小数分隔符。 所以,我想保持语言环境固定为fr。

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


接缝你需要一个特殊的格式化解决方案,所以覆盖格式化器可能是更好的解决方案。 我认为JSF支持替换默认的数字格式。


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

例如

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

或类似的东西

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

正如你遇到的那样,它确实会默认为UIViewRoot#getLocale()

也可以看看:

  • <f:convertNumber>标记文档 - 读取locale属性
  • 链接地址: http://www.djcxy.com/p/67353.html

    上一篇: Changing language without changing locale in JSF

    下一篇: Localizing concatenated or dynamic strings