Интернационализация в валидаторах Hibernate - PullRequest
6 голосов
/ 07 июня 2011

Поддерживает ли валидаторы Hibernate интернационализацию.Я увидел банку и увидел различные файлы ValidationMessages.properties.

Можем ли мы создать собственные сообщения об ошибках, которые будут интернационализированы?Я не хочу использовать сообщения об ошибках, предоставляемые по умолчанию в валидаторах Hibernate.

Нам нужно использовать наши собственные сообщения, и они должны быть интернационализированы.

А также, какие языки поддерживаются валидаторами Hibernate.В банке я видел файлы свойств для английского, французского, немецкого, турецкого и монгольского языков.

Можем ли мы добавить еще несколько языков, например испанский, португальский и т. Д.?

1 Ответ

6 голосов
/ 08 июня 2011

I18N является неотъемлемой частью спецификации Bean Validation.

По умолчанию сообщения извлекаются из пакета ресурсов с именем «ValidationMessages». Так что просто предоставьте этот пакет (например, ValidationMessages.properties) для языков, которые вам нужны для переопределения сообщений по умолчанию из Hibernate Validator (которые извлекаются из пакета "org.hibernate.validator.ValidationMessages").

Помимо языков, которые вы упомянули, Hibernate Validator 4.2 будет предоставлять сообщения на китайском ( HV-359 ) и испанском ( HV-483 ).

Если вы вообще не хотите работать с файловыми пакетами ресурсов, вы также можете предоставить свои собственные MessageInterpolator или ResourceBundleLocator реализации.

Используя Hibernate Validator PlatformResourceBundleLocator, также можно использовать пакеты с другими именами, отличными от "ValidationMessages", например:

Validation
    .byProvider(HibernateValidator.class)
    .configure()
    .messageInterpolator(
        new ResourceBundleMessageInterpolator(
            new PlatformResourceBundleLocator("com.mycompany.Messages")))
    .buildValidatorFactory()
    .getValidator();`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...