我有一个奇怪的问题。
我有一个包含多个页面和3种不同语言的播放应用程序(我的application.conf就像application.langs =“es,en,fr”)
我有3个文件,messages.en messages.fr messages.es
在我的索引页面上,一切正常。我有按钮来更改语言,当我点击文本时,预期会改变正确的语言。
现在我有另一个页面,它应该完全相同,它有相同的按钮,调用相同的功能,但文本永远不会改变(它始终保持法语)。
最奇怪的是,当我看到cookie时,它是正确的!当我点击西班牙语按钮时,PLAY_LANG的值会改为es。例如。
知道这可能来自哪里?我在两个文件中检查了我的message.xx文件以及@Messages(“xxx”)。一切看起来都一样......
谢谢, Vinkun
编辑:
这是我使用的代码:
def index = IsAuthenticated { name =>
val user = User.findByEmail(name)
implicit request =>
Ok(views.html.index(loginForm, User.lastThree, user, ""))
}
def changeLanguage(lang:String) = Action {
request =>
val referrer = request.headers.get(REFERER).getOrElse(HOME_URL)
Redirect(referrer).withLang(Lang(lang))
}
def changeLanguageStory(lang:String) = Action {
request =>
val referrer = request.headers.get(REFERER).getOrElse("/story")
Redirect(referrer).withLang(Lang(lang))
}
def story = IsAuthenticated { name =>
val user = User.findByEmail(name)
implicit request =>
Ok(html.story("enjoy the story", user))
}
使用路线
GET /index/:lang controllers.Application.changeLanguage(lang: String)
GET /story/:lang controllers.Application.changeLanguageStory(lang: String)
application.conf
application.langs="fr,en,es"
以及我如何调用索引页面中的函数
<a href="@routes.Application.changeLanguage("en")"><img src="/assets/images/UK.jpg" width="30px" height="20px"/></a>
<a href="@routes.Application.changeLanguage("fr")"><img src="/assets/images/France.jpg" width="30px" height="20px"/></a>
<a href="@routes.Application.changeLanguage("es")"><img src="/assets/images/Mexico.jpg" width="30px" height="20px"/></a>
在故事页面
<a href="@routes.Application.changeLanguageStory("en")"><img src="/assets/images/UK.jpg" width="30px" height="20px"/></a>
<a href="@routes.Application.changeLanguageStory("fr")"><img src="/assets/images/France.jpg" width="30px" height="20px"/></a>
<a href="@routes.Application.changeLanguageStory("es")"><img src="/assets/images/Mexico.jpg" width="30px" height="20px"/></a>
当然我有文件消息messages.en messages.es messages.fr
在索引页面上,一切正常。当我单击其他语言图片时,它会相应地更改页面的语言。 在故事页面;它总是采用“消息”文件的语言,而不是其他语言,尽管PLAY_LANG cookie被正确修改。
感谢您的帮助