如何在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)
)
如何能在第一場(密碼1)確認消息中聲明一種適當的參數將被使用的方式(minLength)?
的形式定義調用verifying
,只接受字符串的郵件不帶參數:
def verifying(error: => String, constraint: (T => Boolean)): Mapping[T] = {
verifying(Constraint { t: T =>
if (constraint(t)) Valid else Invalid(Seq(ValidationError(error)))
})
}
此外,格式定義過程中調用消息()不起作用,因爲它會導致默認語言被使用,而不是的每個請求的語言。