我希望应用程序的用户可以在我的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