【发布时间】:2015-09-03 17:47:39
【问题描述】:
我在play I18N guide 上做了一些不同于国际化指南的工作
我将结果强制为查询字符串中的语言,它可以工作,但需要以“正确的方式”完成。 这是保留工作并在以后寻找更好的方法的好方法:
注意:我使用“MessagesApi”来实现它。
请看下面的代码:
package controllers
import play.api._
import play.api.mvc._
import play.api.i18n.I18nSupport
import play.api.i18n.Messages.Implicits._
import play.api.i18n.MessagesApi
import javax.inject.Inject
import play.api.i18n.Lang
import play.api.i18n._
class Application @Inject() ( val messagesApi: MessagesApi) extends Controller with I18nSupport {
def index = Action { implicit request =>
request.getQueryString("lang") match{
case Some(lang) => messagesApi.setLang(Ok(views.html.index()(messagesApi,Lang(lang))),Lang(lang))
case None => messagesApi.setLang(Ok(views.html.index()(messagesApi,Lang("en"))),Lang("en"))
}
}}
index.scala.html
@()(implicit message: MessagesApi ,l: Lang)
<li><a href="./?lang=en"><img src="@routes.Assets.versioned("images/BR.png")" /></a></li>
<li><a href="./?lang=en"><img src="@routes.Assets.versioned("images/US.gif")" /></a></li>
<header>
<h1>@message("intro")</h1>
</header>
<p>@Html(message("description"))</p>
conf/application.conf
play.i18n.langs = [ "en", "pt","fr" ]
【问题讨论】:
-
有什么问题?
-
最好的方法是什么?它太硬编码了
标签: scala playframework internationalization playframework-2.4