2012-05-16 28 views
6

用戶切換語言在我的戲1.x的控制器我有這樣的:如何讓playframework 2

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

按照documentation,在播放2.4,在控制器內,你可以做

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

你需要有一個文件的conf/messages.fr,因此應用程序可以將其引用到消息中。您可以從messages.default文件開始並輸入自己的消息。

4

您可以將語言存儲在用戶會話中。你可以找到一個例子here

這個問題已經asked on the Play Google group

+1

實際上沒有這樣的系統,所以你必須自己實現語言cookie並將語言傳遞給模板,請參閱此示例:https://github.com/julienrf/chooze/blob/master/app/controllers /CookieLang.scala – Somatik