【发布时间】: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 实现/版本?你管理
<f:view locale>吗? -
@BalusC Mojarra - jsf-impl-1.2_15-b01-redhat-8。我没有在任何地方使用该标签。干杯!
标签: validation jsf jsf-2 internationalization