Hibernate验证器的国际化

ash*_*ram 6 java internationalization hibernate-validator

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

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

我们需要使用自己的自定义消息,它们应该国际化.

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

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

Gun*_*nar 7

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"之外的其他名称的bundle,如下所示:

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