Scala 在Play Framework 2中自定义验证消息

Scala 在Play Framework 2中自定义验证消息,scala,internationalization,validation,playframework-2.0,Scala,Internationalization,Validation,Playframework 2.0,我正在尝试自定义正在使用的验证消息 我在文件中找到以下条目: 我在conf/messages文件中重新定义了验证消息: error.max=TEST, Maximal: {0} 但我仍然得到默认消息。我重新启动了play应用程序,但它仍然不工作 我做错了什么 编辑: 解决方案是在特定(依赖于语言的)消息文件中定义消息。 将此行添加到文件conf/messages.de时: error.max=TEST GERMAN, Maximal: {0} 工作起来很有魅力!否则,conf/message

我正在尝试自定义正在使用的验证消息

我在文件中找到以下条目:

我在conf/messages文件中重新定义了验证消息:

error.max=TEST, Maximal: {0}
但我仍然得到默认消息。我重新启动了play应用程序,但它仍然不工作

我做错了什么

编辑:

解决方案是在特定(依赖于语言的)消息文件中定义消息。 将此行添加到文件conf/messages.de时:

error.max=TEST GERMAN, Maximal: {0}
工作起来很有魅力!否则,conf/messages中的条目将被忽略(如上所述)。非常违反直觉,我会说…

我有一个类似的问题(虽然我使用的是另一种语言),也许它也适用于你

我必须在我的控制器中放入以下内容(否则将根据浏览器请求的语言确定)

在我看来,我必须为这种语言添加一个额外的隐含论点:

@(title:String)(implicit lang:play.api.i18n.Lang)

我不确定您的浏览器要求使用哪种语言,但这可能会导致它还原为默认消息。上述构造确保它使用配置中定义的可用语言。我不确定,但可能需要您将邮件文件重命名为类似于
messages.en-US
(取决于您的配置)。

谢谢,它可以工作!这确实令人困惑,要么是一个bug,要么是糟糕的文档。我要更新答案
implicit val defaultLang = Lang.availables.headOption.getOrElse(Lang.defaultLang)
@(title:String)(implicit lang:play.api.i18n.Lang)