Play framework 2.5 scala i18n

Я следил за документацией в https://www.playframework.com/documentation/2.5.x/ScalaI18N и переводы внутри контроллеров работают нормально. Однако мне нужны переводы в шаблонах Twirl. С implicit messages и/или с использованием Messages("test.testing") я получаю следующую ошибку:

could not find implicit value for parameter messages: play.api.i18n.Messages

Мой контроллер:

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

  def updateLocale(lang: String) = Action { implicit request =>
    printf(request.headers.get("Accept-Language").getOrElse("niente"))
    printf(Messages("test.testing"))
    Ok(views.html.index(Messages("test.testing")))
  }

Это также заставляет меня сомневаться, как я могу разрешить смену языка в приложении...

Что мне здесь не хватает?

Спасибо


person Henrique Gonçalves    schedule 05.04.2016    source источник


Ответы (1)


Замените Messages введенным messagesApi:

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

      def updateLocale(lang: String): EssentialAction = Action {
        implicit request =>
          printf(request.headers.get("Accept-Language").getOrElse("niente"))
          printf(messagesApi("test.testing"))
          Ok(views.html.index(messagesApi("test.testing")))
      }
    }
person Andrzej Jozwik    schedule 05.04.2016
comment
Через некоторое время я понял, что добавляю неявные сообщения не в тот шаблон. Я также изменил свой контроллер с сообщений на messagesApi, как вы упомянули. Я принял этот ответ. Спасибо - person Henrique Gonçalves; 06.04.2016