Scala 如何在play框架操作中获取当前语言?
我正在将Play2.4项目从Java迁移到Scala 在Java中,我可以使用Scala 如何在play框架操作中获取当前语言?,scala,playframework,playframework-2.4,Scala,Playframework,Playframework 2.4,我正在将Play2.4项目从Java迁移到Scala 在Java中,我可以使用lang().code()获取当前语言 如何在Scala中执行相同操作?您需要一个消息sapi(doc:and)来调用该方法,该方法返回用户的当前语言 它使用此算法查找最合适的语言: def preferred(request: RequestHeader) = { val maybeLangFromCookie = request.cookies.get(langCookieName).flatMap(c
lang().code()
获取当前语言
如何在Scala中执行相同操作?您需要一个
消息sapi
(doc:and)来调用该方法,该方法返回用户的当前语言
它使用此算法查找最合适的语言:
def preferred(request: RequestHeader) = {
val maybeLangFromCookie = request.cookies.get(langCookieName).flatMap(c => Lang.get(c.value))
// match selected lang with play.i18n.langs or return the default one
val lang = langs.preferred(maybeLangFromCookie.toSeq ++ request.acceptLanguages)
Messages(lang, this)
}
我不使用Java API,但我认为您可以使用DI注入器获得messageApi实例:
@Inject MessagesApi messagesApi
我当然阅读了文档,但我找不到获取请求的当前语言的方法。文档显示了如何从
请求中获取acceptLanguages
字段。play.api.i18N
中的Lang
对象允许您访问默认语言和可用语言。好的,谢谢。也许我应该描述一下我的整个问题。基本上,我希望能够通过客户端的按钮选择语言。我在Java中使用changeLang()修改所选语言。然后在另一个请求中,我使用lang().code()检索当前语言。如何在Scala中实现类似的操作?