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

时间:2013-02-13 10:18:43

标签: scala internationalization validation playframework-2.0

我正在尝试在Play中自定义验证消息。

我在文件$PLAY_HOME/src/main/resources/messages中找到了以下条目:

error.max=Must be less or equal to {0}

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

error.max=TEST, Maximal: {0}

但我仍然收到默认消息。我重新启动了播放应用程序,但它仍然无法正常工作。

我做错了什么?

编辑:

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

error.max=TEST GERMAN, Maximal: {0}

就像一个魅力!否则,将忽略conf / messages中的条目(如上所述)。非常违反直觉,我会说...

1 个答案:

答案 0 :(得分:2)

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

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

implicit val defaultLang = Lang.availables.headOption.getOrElse(Lang.defaultLang)

在我看来,我不得不为该语言添加一个额外的隐含参数:

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

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