JSF 语言环境:浏览器定义的语言似乎被忽略

2024-01-15

目前,我的团队正在使用 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(使用前将#替换为@)

JSF 语言环境:浏览器定义的语言似乎被忽略 的相关文章

随机推荐