Как объявить локализуемые сообщения проверки формы в Play Framework 2.2.1, в том числе для сообщений, требующих параметров?Локализуемые сообщения проверки формы
Например, учитывая эти локализации сообщений в conf/messages
:
password.tooShort="Password needs at least {0} characters."
password.doNotMatch="Passwords don't match."
И определение формы, как это:
val minLength = 8
val changePasswordForm = Form (
Password ->
tuple(
Password1 -> nonEmptyText.verifying("password.tooShort", p => p.length() >= minLength),
Password2 -> nonEmptyText
).verifying("password.doNotMatch", passwords => passwords._1 == passwords._2)
)
Как сообщение проверки для первого поля (Password1) будет объявлен в способ, которым будет использоваться соответствующий параметр (minLength)?
Определение формы вызывает verifying
, который принимает только сообщения типа String без параметров:
def verifying(error: => String, constraint: (T => Boolean)): Mapping[T] = {
verifying(Constraint { t: T =>
if (constraint(t)) Valid else Invalid(Seq(ValidationError(error)))
})
}
Кроме того, вызов сообщения() при определении вида не работает, потому что это приводит к языку по умолчанию используется, вместо языка каждого запроса.