我使用的形式助手和一个自定义表单模板来渲染我的形式在这样的游戏框架:表单错误的i18n播放框架
@(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.
)
至于the answer到this post提到的,我改变了默认的错误消息,像这样在我的语言文件(目前只有2):
messages.en:
username=Username
error.required=This field is required
messages.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。
奇怪。放在'messages.nl'中的其他消息是否正确翻译?在你提到的其他问题中描述的方法完美地工作,你可以在https://play-authenticate.herokuapp.com/signup查看它(手动切换到波兰语或德语) – biesior
但是当然,我试过这个,它工作,感谢提醒我! – Aerus