播放框架 2.5 scala i18n
Play framework 2.5 scala i18n
我已经按照 https://www.playframework.com/documentation/2.5.x/ScalaI18N 中的文档进行操作,控制器内部的翻译工作正常。
但是,我需要 Twirl 模板中的翻译。
使用 implicit messages
and/or 使用 Messages("test.testing")
我得到以下错误:
could not find implicit value for parameter messages: play.api.i18n.Messages
我的控制器:
class HomeController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport {
def updateLocale(lang: String) = Action { implicit request =>
printf(request.headers.get("Accept-Language").getOrElse("niente"))
printf(Messages("test.testing"))
Ok(views.html.index(Messages("test.testing")))
}
这也让我怀疑如何允许更改应用程序中的语言...
我在这里错过了什么?
谢谢
将Messages
替换为注入的messagesApi
:
class HomeController @Inject()(val messagesApi: MessagesApi)
extends Controller with I18nSupport {
def updateLocale(lang: String): EssentialAction = Action {
implicit request =>
printf(request.headers.get("Accept-Language").getOrElse("niente"))
printf(messagesApi("test.testing"))
Ok(views.html.index(messagesApi("test.testing")))
}
}
我已经按照 https://www.playframework.com/documentation/2.5.x/ScalaI18N 中的文档进行操作,控制器内部的翻译工作正常。
但是,我需要 Twirl 模板中的翻译。
使用 implicit messages
and/or 使用 Messages("test.testing")
我得到以下错误:
could not find implicit value for parameter messages: play.api.i18n.Messages
我的控制器:
class HomeController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport {
def updateLocale(lang: String) = Action { implicit request =>
printf(request.headers.get("Accept-Language").getOrElse("niente"))
printf(Messages("test.testing"))
Ok(views.html.index(Messages("test.testing")))
}
这也让我怀疑如何允许更改应用程序中的语言...
我在这里错过了什么?
谢谢
将Messages
替换为注入的messagesApi
:
class HomeController @Inject()(val messagesApi: MessagesApi)
extends Controller with I18nSupport {
def updateLocale(lang: String): EssentialAction = Action {
implicit request =>
printf(request.headers.get("Accept-Language").getOrElse("niente"))
printf(messagesApi("test.testing"))
Ok(views.html.index(messagesApi("test.testing")))
}
}