目前,我的团队正在用Java开发Web 2.0应用程序,而我们正在将JSF用于表示层.我们从表示层开始,因此我们尚未添加业务和数据层.
我们使用的技术:
-JSF(Mojarra 2.0.3)
-Primefaces 2.1(组件的JSF库)
-Spring Security 3.0.5
-jBoss 5.1
我被要求向应用程序添加语言环境支持.因此,我将faces-config.xml文件配置如下:
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>pt</supported-locale>
<supported-locale>en</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
<message-bundle>
com.<company>.<product>.i18n.MessageBundle
</message-bundle>
</application>
我创建了MessageBundle后缀文件并部署了该应用程序.我读到,JSF使用3条标准来选择语言环境:
1)在请求语言环境(接受语言请求标头)和支持的语言环境之间进行匹配
2)在Faces配置文件中定义的应用程序默认语言环境
3)JVM默认语言环境
当我尝试在浏览器选项中更改语言时,应用程序不会更改语言环境.即使我只配置默认语言以外的一种语言.我在这里想念什么吗?这是预期的还是实际上在我更改浏览器语言时(如果它是受支持的语言)它应该更改内容?
我非常感谢任何提示,或者至少是关于在哪里可以找到答案的指针,因为我已经用谷歌搜索了它,但是没有运气.
提前致谢.
解决方法:
更改浏览器定义的区域设置后,需要在浏览器中刷新页面.您还需要认识到< message-bundle>用于本地化的转换/验证消息,而不用于本地化的内容.在那里,您应该使用< resource-bundle>在faces-config.xml和/或< f:loadBundle>中在XHTML中.