我希望應用程序的用戶可以在我的play2(play 2.1.1,scala 2.10.1)web應用程序中更改語言。我在i18n的模板中使用了@ Messages.get(...)。更改播放框架中模板中文本的語言2.1.1
我
application.langs="en,ru"
在application.conf
。我通過 「en」 或 「RU」,以這種方法:
def index = Action {
Ok(views.html.index())
}
def changeLanguage(lang:String) = Action {
implicit request =>
Logger.logger.debug("Change user lang to : " + lang)
val referrer = request.headers.get(REFERER).getOrElse(HOME_URL)
Redirect(referrer).withLang(Lang(lang))
}
路線:
GET / controllers.Application.index
GET /index controllers.Application.changeLanguage(lang ?= "ru")
模板一堆(views.html.index):
@()(implicit l: Lang)
@import play.i18n.Messages
...
<a href="/about">@Messages.get("about")</li>
...
<a href="index?lang=ru" id="ru"></a>
<a href="index?lang=en" id="en"></a>
...
重定向後頁面,我用相同的語言看到它。 :(
我看了很多老回答:在我的模板隱語言參數不工作,與withLang(...)方法調用過於重定向或動作沒有一個很好的解決方案,以便長時間
它應該使用'.withLang(...)'方法。你可以嘗試將'(implicit l:Lang)'改成'(implicit l:play.api.i18n.Lang)'和'@import play.i18n.Messages'到'@import play.api.i18n.Messages' ? – EECOLOR 2013-04-09 20:02:31
@EECOLOR,它沒有工作 – Tolsi 2013-04-10 07:10:13