Sulu:如何使自定义实体可翻译?
Sulu: how to make custom entity translatable?
所以我有我的自定义实体类型,按照官方教程创建它:
https://docs.sulu.io/en/2.2/book/extend-admin.html
但是我得到的实体是不可翻译的,比如标准页面或文章。我也没有任何关于如何使其可翻译的信息。预期的行为只是作为那些标准类型工作。
如何实现?
基本上要做三件事:
您必须为您的自定义实体添加一个新的 Translation
实体。因此,如果您有一个 Event
实体,则需要一个额外的 EventTranslation
实体。参见 https://github.com/sulu/sulu-workshop/tree/master/src/Entity
您需要告诉 Sulu,您的自定义实体可以通过将可用语言环境添加到 AppAdmin
class 中的视图来翻译,请参阅 https://github.com/sulu/sulu-workshop/blob/master/src/Admin/EventAdmin.php#L74
您需要调整自定义实体的管理控制器(它现在将收到一个 locale
请求参数)以将本地化属性持久保存到 CustomEntityTranslation
而不是 CustomEntity
本人,参见 https://github.com/sulu/sulu-workshop/blob/master/src/Controller/Admin/EventController.php
总之,Sulu 只负责在右上角显示语言环境切换器并将当前选择的语言环境作为 locale
参数附加到您的 api 调用中。其他一切完全取决于你,你必须像在普通的 symfony 应用程序中那样实现它
所以我有我的自定义实体类型,按照官方教程创建它:
https://docs.sulu.io/en/2.2/book/extend-admin.html
但是我得到的实体是不可翻译的,比如标准页面或文章。我也没有任何关于如何使其可翻译的信息。预期的行为只是作为那些标准类型工作。 如何实现?
基本上要做三件事:
您必须为您的自定义实体添加一个新的
Translation
实体。因此,如果您有一个Event
实体,则需要一个额外的EventTranslation
实体。参见 https://github.com/sulu/sulu-workshop/tree/master/src/Entity您需要告诉 Sulu,您的自定义实体可以通过将可用语言环境添加到
AppAdmin
class 中的视图来翻译,请参阅 https://github.com/sulu/sulu-workshop/blob/master/src/Admin/EventAdmin.php#L74您需要调整自定义实体的管理控制器(它现在将收到一个
locale
请求参数)以将本地化属性持久保存到CustomEntityTranslation
而不是CustomEntity
本人,参见 https://github.com/sulu/sulu-workshop/blob/master/src/Controller/Admin/EventController.php
总之,Sulu 只负责在右上角显示语言环境切换器并将当前选择的语言环境作为 locale
参数附加到您的 api 调用中。其他一切完全取决于你,你必须像在普通的 symfony 应用程序中那样实现它