我们要求在不同的区域设置中单独显示某个页面。 (例如,如果讨论主题与英语相关,则在某个页面中我们从messages_en.properties中获取消息,但如果讨论主题是法语或德语,我们需要以适当的语言显示消息。< / p>
如何更改以下bean调用以将区域设置作为xhtml页面#{messages['label.hello']}
中的参数。
以上默认为英语语言环境,如何动态传递语言环境?
答案 0 :(得分:3)
在服务器端,只需执行此操作
private @In LocaleSelector localeSelector;
并设置如下
localeSelector.setLanguage("en");
localeSelector.setCountry("US");
答案 1 :(得分:2)
我想要注意的是,JSF还会在您的浏览器中读取首选语言,并显示您的应用程序是否支持该语言。
因此,如果您支持许多语言,那么您就不需要定义服务器端语言环境。
在faces-config.xml
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>se</supported-locale>
<supported-locale>dk</supported-locale>
<supported-locale>no</supported-locale>
<supported-locale>it</supported-locale>
<!-- etc -->
</locale-config>