1

twirl テンプレートで国際化を使用しようとしています。このガイドに従いました: https://stackoverflow.com/a/30800825/1567737

に問題がありimplicit messages: Messagesます。エラーが発生する最小限の設定に減らしました。

テストコントローラー
import javax.inject.Inject
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, Controller}

class TestController @Inject()(val messagesApi: MessagesApi) 
    extends Controller with I18nSupport {

  def index = Action {
    Ok(views.html.test.render())
  }

}
test.scala.html
@()(implicit messages: Messages)

routesGenerator := InjectedRoutesGeneratorbuild.sbt にも追加しました。

上記でリンクしたドキュメントとガイドによると、これで十分なはずです。それでも、次のコンパイル時エラーが発生します。

[error] app/controllers/TestController.scala:11: not enough arguments for method render: (messages: play.api.i18n.Messages)play.twirl.api.HtmlFormat.Appendable.
[error] Unspecified value parameter messages.
[error]     Ok(views.html.test.render())
  • 再生バージョン: 2.5.9
  • SBT バージョン: 0.13.11
  • スカラのバージョン: 2.11.7
4

1 に答える 1

1

どうやら暗黙のパラメーターはapplyメソッドでのみ機能します。明示的に呼び出すときではありませんrender

Ok(views.html.test.render())

でなければなりません

Ok(views.html.test())

于 2016-11-10T10:55:30.280 に答える