7

在我的 play 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());
    }
}

我想在 play 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())
    )
  }
4

2 回答 2

5

您可以将语言存储在用户会话中。你可以在这里找到一个例子

此问题已在 Play Google 群组中提出

于 2012-05-16T11:32:01.163 回答
3

根据文档,在 Play 2.4 中,您可以在控制器内部执行

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

您需要有一个文件 conf/messages.fr 以便应用程序可以参考它来获取消息。您可以从messages.default文件开始并放置您自己的消息。

于 2016-02-12T16:39:33.693 回答