【问题标题】:Accept-language sent from browser does not change JSF validation messages locales从浏览器发送的接受语言不会更改 JSF 验证消息区域设置
【发布时间】:2016-04-18 16:30:48
【问题描述】:

在我正在开发的 JSF 应用程序中,我们广泛使用消息包和语言环境。几乎所有标签都定义在一组 *.properties 文件中,每种语言都有一个文件,等等。当用户在浏览器上更改其语言首选项并刷新页面时,这非常有用,这些标签会相应改变。

唯一不变的标签是“本机”JSF 验证消息。在服务器启动期间,这些消息始终使用 JVM 中定义的语言(我们使用 JBoss 7.1 和 eap 6.3)。因此,例如,如果在启动脚本中定义了 this:-Duser.language=en,验证消息将始终为英文。

示例:验证错误:必填项

但是,如果我们将属性更改为 -Duser.language=pt,验证消息将以葡萄牙语出现。

示例:验证错误:Valor é necessário

所有其他标签都没有这种行为,因此它们会根据浏览器的语言偏好而改变。

我们没有在任何地方指定自定义验证消息。

在 faces-config.xml 我们有以下内容:

    <locale-config>
        <default-locale>pt</default-locale>
        <supported-locale>pt</supported-locale>
        <supported-locale>en</supported-locale>
    </locale-config>

【问题讨论】:

  • 哪个 JSF 实现/版本?你管理&lt;f:view locale&gt;吗?
  • @BalusC Mojarra - jsf-impl-1.2_15-b01-redhat-8。我没有在任何地方使用该标签。干杯!

标签: validation jsf jsf-2 internationalization


【解决方案1】:

如果我理解你在问什么,听起来你想要的是 消息包。

消息包的工作方式与资源包类似,但它们适用于警告和错误。

相信下面的回答会对你有所帮助:https://stackoverflow.com/a/2668602/4042348

【讨论】:

  • 感谢您的回答。我熟悉消息包。这个特定的应用程序不会自定义消息。这些捆绑包是“内置”的 jsf jar。问题是根据浏览器的偏好,文本没有被翻译成正确的语言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多