我正在使用表单助手和自定义表单模板在 Play 框架中呈现我的表单,如下所示:
@(lang: Lang)(myForm: Form[MyModel])
@import play.i18n._
@import helper._
@implicitField = @{ FieldConstructor(formTemplate.f) }
@form ( action = routes.Application.index() ){
@inputText(
field = myForm("username"),
'_label -> Messages.get(lang, "username")
)
}
当使用不同的值调用模板时lang
,标签将以相应的语言显示。
但是,提交表单时,错误消息总是以主要语言显示。(即对于Required
字段它总是This field is required.
)
正如对这篇文章的回答所提到的,我在我的语言文件中更改了默认错误消息(目前只有 2 个):
消息.en:
username=Username
error.required=This field is required
消息.nl:
username=Gebruikersnaam
error.required=Dit veld is verplicht
如何确保错误以正确的语言打印?
我已经尝试在我的自定义模板中执行以下操作,但没有成功:
@(elements: helper.FieldElements)
<!-- snipped some HTML code -->
<span class="help">
@(elements.infos(elements.args.get('_lang) match {
case Some(language) => language.asInstanceOf[play.api.i18n.Lang]
case None => new Lang("en","uk")
}).mkString(", "))
</span>
并加入'_lang -> lang
我的@inputText
电话。
我习惯用 Java 编程,只在 Play 模板中做过一些 Scala。我正在使用 Play 2.0.4。