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

Validation 从浏览器发送的Accept语言不会更改JSF验证消息区域设置,validation,jsf,jsf-2,internationalization,Validation,Jsf,Jsf 2,Internationalization,在我正在开发的JSF应用程序中,我们广泛使用消息包和区域设置。几乎所有标签都定义在一组*。属性文件中,每种语言都有一个文件,等等。这非常有效,每当用户在浏览器上更改其语言首选项并刷新页面时,这些标签都会相应更改 唯一不变的标签是“本机”JSF验证消息。在服务器启动期间,这些消息始终使用JVM中定义的语言(我们使用JBoss 7.1和eap 6.3)。因此,例如,如果在启动脚本中定义了this:-Duser.language=en,则验证消息将始终使用英语 示例:验证错误:值是必需的 但是,如果我

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

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

示例:验证错误:值是必需的

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

示例:瓦利达奥:瓦洛雷·内切萨里奥

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

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

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

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

pt
pt
EN

如果我正确理解你的要求,听起来你想要的是 消息包

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


我相信下面的答案会对你有所帮助:

如果我正确理解你的要求,听起来你想要的似乎是 消息包

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


我相信下面的答案会对您有所帮助:

哪个JSF impl/版本?您是否管理
?@BalusC Mojarra-jsf-impl-1.2_15-b01-redhat-8。我哪里都不用那个标签。干杯哪个JSF impl/版本?您是否管理
?@BalusC Mojarra-jsf-impl-1.2_15-b01-redhat-8。我哪里都不用那个标签。干杯谢谢你的回答。我对消息包很熟悉。此特定应用程序不自定义消息。这些包是“内置”jsf jar的。问题是,根据浏览器的首选项,文本没有被翻译成正确的语言。谢谢您的回答。我对消息包很熟悉。此特定应用程序不自定义消息。这些包是“内置”jsf jar的。问题在于,根据浏览器的首选项,文本没有被翻译成正确的语言。