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 に答える