如何使启用了 Composite Fields 和 i18n 的 MultiValueField 正常工作?

How to make MultiValueField with Composite Fields and i18n enabled work properly?

有没有人尝试过在 Magnolia 中使用 MultiValueField 的表单,该表单具有启用了 i18n 的 Composite 字段并且工作正常?

目前,我在将项目添加到英语然后切换到其他语言并再次添加项目然后切换回英语时遇到了一些奇怪的行为,但项目都消失了。在一个 JIRA post 中它说它已经修复,但我仍然遇到这个问题。还遇到了 DelegatingMultiValueTransformer 显然不支持的排序问题。

如果是这样,你能告诉我你用来使它正常工作的配置吗?如果需要定制,你能给我一些想法吗?

非常感谢对此的任何帮助。

顺便说一句,我现在使用的是最新版本 5.4.6。

也许您以后不想在一个请求中提出两个问题 ;)

关于语言问题:
您是否检查过是否在子字段上也启用了 i18n,因为您使用的是删除转换器? AFAIK 与委托您需要在层次结构中的所有字段上启用它们。

关于变压器和订购:
IMO 唯一的出路是编写自定义转换器。查看 MultiValueTransformer 的源代码,在检查子值时只向下两层的代码部分,您需要更深入。
您还需要为您的值定义不同的结构存储,因为 MultiValueTransformer 使用的结构不足以满足多个级别。
也许你可以扩展一个更专业的 MultiValue*Transformer 或者你可以尝试 MultiValueJSONTransformer 如果将所有值存储在 json 数组中对你来说就足够了(你仍然需要扩展它并重新填充值打开对话框进行编辑时返回对话框)。

HTH,
一月