0

Как сделать интернационализацию проверки java bean?Интернационализация проверки Java-бонуса с ValidationMessages.properties

Перед интернационализация я есть (что-то вроде) следующее сообщение об ошибке проверки:

email is not a valid email address (was some-nonexistant-user[at]invalid.email)

И в соответствии с: https://docs.oracle.com/javaee/6/tutorial/doc/gkahi.html можно создать файл ValidationMessages.properties интернационализация текст

Например если я добавлю содержимое (сохраняя его на английском языке в демонстрационных целях, все это должно быть на другом языке)

org.hibernate.validator.constraints.Email.message=is invalid email format

Теперь это создает следующую ошибку проверки:

email is invalid email format (was some-nonexistant-user[at]invalid.email)

Так что это, кажется, только дайте мне контроль небольшой части текста, но как я настроить, например, was часть? И может иметь полный контроль над всем текстом? что-то вроде:

{property} is invalid (data = {value})

, который вместо того, чтобы дать бы мне выход

email is invalid (data = some-nonexistant-user[at]invalid.email)

+1

Я сделал это раньше, вам нужно будет создать завернутый 'MessageInterpolator', я боюсь. –

ответ

1

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

См раздел 4.3.2 на http://beanvalidation.org/1.0/spec/#validationapi-message

+0

Итак, нет способа настроить сообщения дальше, не прибегая к собственному MessageInterpolator? – netbrain

+1

Да, так оно и есть, основываясь на моем чтении. В основном есть интерполятор по умолчанию, который делает это только для вас. Все более сложное зависит от вас .. но, возможно, кто-то поставил для вас что-то открытое исходное. Я этого не делал. Другое, что вы можете сделать, это просто совместить объекты ContraintViolation с несостоявшимся значением и добавить что-то в сообщение. Другими словами, выполните обработку сообщения. – RichW