1

我正在尝试自定义 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 中的条目将被忽略(如上所述)。非常违反直觉,我会说...

4

1 回答 1

2

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

我必须将以下内容放在我的控制器中(否则它将取决于浏览器请求的语言)。

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

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

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

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

于 2013-02-13T20:02:51.943 回答