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

时间:2012-08-14 12:23:16

标签: java jsf localization translation

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

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

但是,现在要求对于此网站,数字格式必须始终具有十进制分隔符。所以,我正在考虑将语言环境固定为fr。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

E.g。

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

或类似

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

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

另见: