1

ビューに次のコードがあります:

@(lang:Lang)...
...
<div>
...
@helper.form(action = routes.item.add) {
     <p>@helper.inputText(myItem("name"))</p>
     ...
    }
...
</div>

私の国際化ファイルには、のエントリがありますname。例:

  • messages.enname=Name
  • messages.frname=Nom

ビューは常にこのためのフランス語のラベルでレンダリングされ、ビューで定義されinputTextたグローバルパラメータを使用するなど、別の言語に変更する方法がわかりません。lang

@helper.form(action = routes.item.add, lang)私は:または同じ種類のコードのようないくつかの解決策を探していましたinputText

4

2 に答える 2

1

私の解決策:

@(lang:Lang)...

@import play.i18n._

@translate(text: String) = @{
 Message.get(lang, text)
}
...
<div>
...
@helper.form(action = routes.item.add) {
     <p>@helper.inputText(myItem("name"), '_label -> translate("name"))</p>
     ...
    }
...
</div>

'_Playでは、規則に従ってフォームに属性を追加することができます。独自の変換関数を適用して、これを使用してラベルをオーバーライドしました。

于 2012-07-28T11:52:00.960 に答える
1

またはを使用していますScalaJava?Scalaを使用すると、暗黙の言語を設定できます。しかし、Javaの場合、これはPlay1.2.4のように簡単ではありません。

Lang.set(...) or .change()

これは2.1で解決されます:https ://play.lighthouseapp.com/projects/82401/tickets/174-20-i18n-add-ability-to-define-implicit-lang-for-java-api

Googleグループの以前のディスカッションを参照してください:https ://groups.google.com/forum/?fromgroups#!topic / play-framework / dE1SPBaTM6w

あなたはscalaを使用していますか?投稿を見てください:i18nエラー:コントローラーとテンプレートは異なる暗黙の言語を使用しています

于 2012-07-27T15:45:52.127 に答える