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

问题描述

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

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 类中的视图来翻译,请参阅 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 应用程序中一样实现它

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...