我目前有一个JSF应用程序,它根据用户选择的语言设置语言环境。他得到一个下拉菜单,在选择英语时,我将区域设置设置为 en 等。这适用于数字格式以及从我的资源包加载的语言字符串。
所以对于 en,我得到英语单词和一个 . 作为小数分隔符。对于 fr,我得到法语和 ,作为小数分隔符。
但是,现在要求对于此网站,数字格式必须始终具有 ,作为小数位分隔符。所以,我想将语言环境固定为 fr。
用户仍然必须能够更改其语言。那么,是否可以在 JSF 中加载不同的语言而不更改区域设置?
接缝 您需要一个特殊的格式化解决方案,因此覆盖格式化程序可能是更好的解决方案。我认为 JSF 支持替换默认的数字格式。
只需显式指定您在此处使用的<f:convertNumber>
标签的 locale
属性即可。
例如
<f:convertNumber ... locale="fr" />
或类似的东西
<f:convertNumber ... locale="#{app.defaultNumberLocale}" />
否则,它确实会默认为 UIViewRoot#getLocale()
,正如您正在经历的那样。
另请参阅:
-
<f:convertNumber>
标记文档 - 阅读locale
属性