Sulu:如何使自定义实体可翻译?

Sulu: how to make custom entity translatable?

所以我有我的自定义实体类型,按照官方教程创建它:

https://docs.sulu.io/en/2.2/book/extend-admin.html

但是我得到的实体是不可翻译的,比如标准页面或文章。我也没有任何关于如何使其可翻译的信息。预期的行为只是作为那些标准类型工作。 如何实现?

基本上要做三件事:

  1. 您必须为您的自定义实体添加一个新的 Translation 实体。因此,如果您有一个 Event 实体,则需要一个额外的 EventTranslation 实体。参见 https://github.com/sulu/sulu-workshop/tree/master/src/Entity

  2. 您需要告诉 Sulu,您的自定义实体可以通过将可用语言环境添加到 AppAdmin class 中的视图来翻译,请参阅 https://github.com/sulu/sulu-workshop/blob/master/src/Admin/EventAdmin.php#L74

  3. 您需要调整自定义实体的管理控制器(它现在将收到一个 locale 请求参数)以将本地化属性持久保存到 CustomEntityTranslation 而不是 CustomEntity 本人,参见 https://github.com/sulu/sulu-workshop/blob/master/src/Controller/Admin/EventController.php

总之,Sulu 只负责在右上角显示语言环境切换器并将当前选择的语言环境作为 locale 参数附加到您的 api 调用中。其他一切完全取决于你,你必须像在普通的 symfony 应用程序中那样实现它