Hibernate验证器的国际化

时间:2011-06-07 07:23:29

标签: java internationalization hibernate-validator

Hibernate验证器是否支持国际化。我看到了jar,我可以看到各种ValidationMessages.properties文件。

我们可以创建自己的自定义错误消息,这些消息将被国际化吗?我不想在Hibernate验证器中使用默认提供的错误消息。

我们需要使用自己的自定义消息,并且应该将其国际化。

以及Hibernate验证器支持的语言是什么。在jar中我看到了英语,法语,德语,土耳其语和蒙古语的属性文件。

我们可以添加更多语言,例如西班牙语,葡萄牙语等?

1 个答案:

答案 0 :(得分:6)

I18N是Bean Validation规范的组成部分。

默认情况下,从名为“ValidationMessages”的资源包中检索消息。因此,只需提供此捆绑包(例如ValidationMessages.properties),以覆盖来自Hibernate Validator的默认消息(从捆绑“org.hibernate.validator.ValidationMessages”中检索)所需的语言。

除了你提到的语言,Hibernate Validator 4.2还会提供中文(HV-359)和西班牙语(HV-483)消息。

如果您不想使用基于文件的资源包,您也可以提供自己的MessageInterpolatorResourceBundleLocator实施。

使用Hibernate Validator的PlatformResourceBundleLocator它也可以使用包含“ValidationMessages”以外的其他名称的包:

Validation
    .byProvider(HibernateValidator.class)
    .configure()
    .messageInterpolator(
        new ResourceBundleMessageInterpolator(
            new PlatformResourceBundleLocator("com.mycompany.Messages")))
    .buildValidatorFactory()
    .getValidator();`