2016-01-13 82 views
0

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

唯一不会更改的标签是'native'JSF验证消息。这些消息总是使用服务器启动期间在JVM中定义的语言(我们使用JBoss 7.1和eap 6.3)。因此,例如,如果在启动脚本中定义了这一点:-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> 
+1

哪个JSF impl/version?你是否在管理''? – BalusC

+0

@BalusC Mojarra - jsf-impl-1.2_15-b01-redhat-8。我没有在任何地方使用该标签。干杯! –

回答

0

如果我明白你问的权利,这听起来像你想的 消息包。

消息包像资源包一样工作,除了它们适用于警告和错误。

我相信下面的答案会帮助你:https://stackoverflow.com/a/2668602/4042348

+0

感谢您的回答。我熟悉消息包。这个特定的应用程序不定制消息。捆绑包是“内置”jsf jar。根据浏览器的偏好,问题在于文本没有被翻译成适当的语言。 –