Playframework[Scala]:从2.5迁移到2.6后i18n出现问题

Playframework[Scala]:从2.5迁移到2.6后i18n出现问题,playframework,playframework-2.5,playframework-2.6,Playframework,Playframework 2.5,Playframework 2.6,我正在将我的项目从play 2.5迁移到play 2.6。 一切似乎都正常,但是,在我的视图中,由scala控制器呈现的i18n有一个问题(java控制器没有这个问题) 为了提供i18n,在这两种情况下都使用了play.api.i18n.Messages.apply方法,但对于Scala控制器(派生自AbstractController或InjectedController),只有Messages.lang文件中的标记,而不是值 我如何解决这个问题 在您的控制器课程中: 注入控制器组件和acto

我正在将我的项目从play 2.5迁移到play 2.6。 一切似乎都正常,但是,在我的视图中,由scala控制器呈现的i18n有一个问题(java控制器没有这个问题)

为了提供i18n,在这两种情况下都使用了
play.api.i18n.Messages.apply
方法,但对于Scala控制器(派生自
AbstractController
InjectedController
),只有
Messages.lang
文件中的标记,而不是值


我如何解决这个问题

在您的
控制器
课程中:

  • 注入控制器组件和actor系统
  • 使用assets finder的隐式值
  • 使用
    AbstractController
    I18nSupport
    扩展它:

    class myController @Inject()
     (controllerComponents: ControllerComponents,actorSystem: ActorSystem)
     (implicit assetsFinder: AssetsFinder) 
     extends AbstractController(cc) with I18nSupport{ 
     ??? //Body of your controller class. 
    } 
    
  • 在您的
    视图中

    在视图文件中,使用三个隐式值
    RequestHeader
    Messages
    AssetsFinder

    @(whatever: Any)(implicit req: RequestHeader, messages: Messages, assetsFinder: AssetsFinder)