Вопрос по internationalization, scala, playframework-2.0 – Как разрешить пользователю переключать язык в playframework 2

6

В моем контроллере игры 1.x у меня было это:

public static void language(final String language){
    Lang.change(language);
    Header referer = request.headers.get("referer");
    if(referer == null){
        index();
    }else{
        redirect(referer.value());
    }
}

Я хотел бы сделать то же самое в игре 2.x, но у меня сложилось впечатление, что функциональность больше не доступна. Это то, что я до сих пор

  def language(language:String) = Action { implicit request =>

    // TODO change language

    val referer = request.headers.get("referer")
    referer.map{ referer =>
      Redirect(referer, FOUND);
    }getOrElse(
      Ok(views.html.index())
    )
  }

Ваш Ответ

2   ответа
2

Согласнодокументация, в Play 2.4, внутри контроллера вы можете сделать

ctx().changeLang(new Lang(Lang.forCode("fr")));

Вам нужен файл conf / messages.fr, чтобы приложение могло ссылаться на него для сообщения. Вы можете начать сmessages.default подать и поставить свои собственные сообщения.

4

Вы можете сохранить язык в сеансе пользователя. Вы можете найти примерВот

Этот вопрос уже былспросил в группе Play Google

на самом деле такой системы не существует, поэтому вам нужно самостоятельно внедрить языковой cookie и передать язык в шаблон, см. этот пример:github.com/julienrf/chooze/blob/master/app/controllers/… Somatik

Похожие вопросы