目前,我的团队正在使用 Java 开发 Web 2.0 应用程序,我们使用 JSF 作为表示层。我们从表示层开始,因此尚未添加业务和数据层。
我们使用的技术:
- JSF(莫贾拉 2.0.3)
- Primefaces 2.1(JSF 组件库)
- 春季安全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) 请求区域设置(Accept-Language 请求标头)与支持的区域设置之间的匹配
2) faces 配置文件中定义的应用程序默认区域设置
3) JVM默认语言环境
当我尝试更改浏览器选项中的语言时,应用程序不会更改区域设置。即使我只配置默认语言以外的一种语言。我在这里错过了什么吗?这是预期的结果还是实际上当我更改浏览器语言时它应该更改内容(前提是它是受支持的语言)?
我非常感谢任何提示或至少一个关于我在哪里可以找到答案的提示,因为我已经用谷歌搜索过但没有运气。
提前致谢。
更改浏览器定义的区域设置后,您需要刷新浏览器中的页面。您还需要认识到<message-bundle>
适用于本地化转换/验证消息,不适用于本地化内容。在那里你应该使用<resource-bundle>
in faces-config.xml
and/or <f:loadBundle>
在 XHTML 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)