2014-11-05 3 views
2

У меня есть класс и использование аннотации для проверки свойств класса.Как локализовать сообщения проверки Bean

Моя веб-страница (jsf2.2/primefaces/maven) является многоязычной (DE-utch, FR-rench, IT-alian).

Моя проблема в том, что валидатор hibernate поддерживает некоторые языки (de, en, es, fr, hu, tr, pt_BR, mn_MN, zn_CN), но не итальянский! (перечисленные в банке, org-> hibernate-> validator) Итак, когда я использую итальянскую версию своей веб-страницы, сообщения проверки отображаются на английском языке (выбор по умолчанию для спящего режима).

Как я могу переопределить это и предоставить пользовательские сообщения проверки правильности?

Я не хочу возиться с спящим банком, потому что проект является maven, и банка автоматически извлекается.

ответ

3

Ok я сумел преодолеть это без баловаться с спящим баночке.

1) Если кто-то хочет, чтобы переопределить ValidationMessages.properties по умолчанию, вы должны выбрать соответствующие файлы (подсказка: скопировать их из спящего режима банку: ValidationMessages.properties, ValidationMessages_de.properties, ValidationMessages_fr.properties) и изменить их соответствующим образом.

2) Поместите их все в папку проекта src/main/resources/. Таким образом, папка содержит все файлы * .properties.

3) Для того, чтобы обеспечить проверку для более языков (за исключением спящего режима по умолчанию), для моего случая итальянского языка, я создал «ValidationMessages_it.properties» и поместите его в/Главных/ресурсах/ папку Src. (SRC/основные/ресурсы/ValidationMessages_it.properties).

Итак, теперь, когда мой язык установлен на итальянский язык, спящий режим выглядит первым в этой папке, если имеются сообщения о переопределении/других подтверждениях (свойства ValidationMessages _ *.). Он находит мой созданный файл (ValidationMessages_it.properties) и использует эти значения в качестве сообщений проверки достоверности!

Это решение прост, но у него много проблем/времени, чтобы его найти. Я не нашел документацию о том, как импортировать этот простой способ пользовательских сообщений проверки для разных локалей, отличных от тех, которые уже реализованы в hibernate-validator.

Внимание: Это решение для Maven проекта, если проект не Maven вы должны поставить * properties.files в/основной/Java/ папку /Src, as answeared in another similar question comments

+2

Нет необходимости извлечь что-нибудь. Просто добавьте файлы свойств, которые вам нужны или хотите переопределить. Они должны быть в корне classpath. Предоставленный пользователю файл свойств ValidationMessages имеет приоритет над встроенными. – Hardy

2

Вы можете предоставить свой собственный файл языка, поставив

ValidationMessages_it_IT.properties 

на вашем пути к классам.

Этот вопрос является дубликатом Localization with bean validation in JSF

Смежные вопросы