Internationalization 播放框架:在scala视图中的helper.form中设置Lang
我在视图中获得了以下代码:Internationalization 播放框架:在scala视图中的helper.form中设置Lang,internationalization,playframework-2.0,Internationalization,Playframework 2.0,我在视图中获得了以下代码: @(lang:Lang)... ... <div> ... @helper.form(action = routes.item.add) { <p>@helper.inputText(myItem("name"))</p> ... } ... </div> @(lang:lang)。。。 ... ... @helper.form(action=routes.item.add){ @helpe
@(lang:Lang)...
...
<div>
...
@helper.form(action = routes.item.add) {
<p>@helper.inputText(myItem("name"))</p>
...
}
...
</div>
@(lang:lang)。。。
...
...
@helper.form(action=routes.item.add){
@helper.inputText(myItem(“名称”))
...
}
...
在我的国际化文件中,我有name
的条目。
e、 g:
- 在
:messages.en
name=name
- 在
:messages.fr
name=Nom
inputText
,我不知道如何更改另一个语言,例如使用视图中定义的全局参数lang
我在寻找一些解决方案,比如:
@helper.form(action=routes.item.add,lang)
或者是inputText
级别的同类代码。您使用的是Scala
还是Java
?使用Scala可以设置隐式语言。但对于Java来说,这并不像Play 1.2.4那样简单:
Lang.set(...) or .change()
这将在2.1中解决:
请参阅Google群组中的先前讨论:
您是否在使用scala?请查看帖子:我的解决方案:
@(lang:Lang)...
@import play.i18n._
@translate(text: String) = @{
Message.get(lang, text)
}
...
<div>
...
@helper.form(action = routes.item.add) {
<p>@helper.inputText(myItem("name"), '_label -> translate("name"))</p>
...
}
...
</div>
@(lang:lang)。。。
@导入play.i18n_
@翻译(文本:字符串)=@{
Message.get(lang,text)
}
...
...
@helper.form(action=routes.item.add){
@inputText(myItem(“名称”),“\u标签->翻译(“名称”))
...
}
...
在游戏中,可以使用
'
约定向表单添加属性。我已经通过应用我自己的翻译功能覆盖了标签。感谢您提供的好链接!我从中找到了一个解决方案。我将发布此解决方案以供参考。为什么要将lang作为字符串传递?好问题:我认为传递lang是无用的,因为我的cookie中有它。稍后我会查看并更新我的答案。谢谢你的主意。但也许你还有另一个选择?你是在使用Scala还是Java?我直接将lang作为lang
传递。我使用Java。在你们的评论之后,我更新了问题和答案,谢谢你们指出这一点。