我正在将项目从播放2.5迁移到2.6。 一切似乎都很好,但是,在我的视图中,由scala控制器呈现的i18n出现了问题(而Java控制器没有这种问题)。
要提供i18n,两种情况都使用play.api.i18n.Messages.apply
方法,但是对于Scala控制器(源自AbstractController
或InjectedController
),只有Messages.lang
文件中的标记,没有价值。
我该如何解决?
答案 0 :(得分:1)
在您的controller
班上:
用AbstractController
和I18nSupport
扩展它:
class myController @Inject()
(controllerComponents: ControllerComponents,actorSystem: ActorSystem)
(implicit assetsFinder: AssetsFinder)
extends AbstractController(cc) with I18nSupport{
??? //Body of your controller class.
}
在您的views
中:
在视图文件中,使用RequestHeader
,Messages
和AssetsFinder
的三个隐式值:
@(whatever: Any)(implicit req: RequestHeader, messages: Messages, assetsFinder: AssetsFinder)