【问题标题】:Playframework [Scala]: Problems with i18n after migrating from 2.5 to 2.6Playframework [Scala]:从 2.5 迁移到 2.6 后 i18n 的问题
【发布时间】:2018-07-16 09:17:05
【问题描述】:

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: playframework playframework-2.5 playframework-2.6


    【解决方案1】:

    在你的controller 班级:

    1. 注入控制器组件和actor系统
    2. 使用资产查找器的隐含价值。
    3. AbstractControllerI18nSupport 扩展它:

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

    在你的views

    在您的视图文件中使用RequestHeaderMessagesAssetsFinder 三个隐式值:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      相关资源
      最近更新 更多