从浏览器发送的Accept语言不会更改JSF验证消息区域设置

时间:2016-01-13 15:51:32

标签: validation jsf jsf-2 internationalization

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

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

示例:验证错误:需要值

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

示例: Errodevalidação:Valoréadversário

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

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

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

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

1 个答案:

答案 0 :(得分:0)

如果我明白你的要求是正确的,那听起来就像你想要的那样 消息包。

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

我相信以下答案会对您有所帮助:https://msdn.microsoft.com/en-us/library/mt622450.aspx