6

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

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

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

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

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

4

1 回答 1

9

I18N 是 Bean 验证规范的组成部分。

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

除了您提到的语言之外,Hibernate Validator 4.2 将提供中文 ( HV-359 ) 和西班牙文 ( HV-483 ) 消息。

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

使用 Hibernate ValidatorPlatformResourceBundleLocator也可以使用具有其他名称而不是“ValidationMessages”的包,如下所示:

Validation
    .byProvider(HibernateValidator.class)
    .configure()
    .messageInterpolator(
        new ResourceBundleMessageInterpolator(
            new PlatformResourceBundleLocator("com.mycompany.Messages")))
    .buildValidatorFactory()
    .getValidator();`
于 2011-06-07T21:18:59.657 回答