0

我目前正在使用 Neos / Flow 开发的网站包括一个作为 Flow 插件实现的自行开发的商店系统。产品、变体和凭证被保存为领域模型。由于客户希望以不同的语言提供他们的网站,我需要找到一种方法来管理域对象的翻译。我找不到嵌入到 Neos/Flow 中的方法,所以我的第一个想法是简单地将翻译标识符插入可翻译字段(描述和类似的东西)中,然后在视图中使用翻译 viewhelper。如果客户不想自己编辑这些字段,这将完全正常。

我的下一个想法是为每个语言维度和每个可翻译字段(如 description_en;description_es,...)实现一个额外的字段。但就可维护性和可更改性而言,这将是最糟糕的方法。我通常从事 TYPO3 项目,其中域对象的翻译非常容易并且开箱即用。所以在 Neos 内部的这种体验是非常令人沮丧的。

有没有人遇到过类似的问题,甚至找到了解决方案?

4

2 回答 2

1

到目前为止,每当我们需要拥有多语言内容时,我们都会通过将数据存储在 Neos Content Repository 中来解决这个问题。这种方式语言处理又名尺寸工作开箱即用。此外,通过使用内联编辑或内容模块的检查器,为该记录构建 UI 非常容易。

请注意,在 CR 中存储数据并不一定意味着您必须将其存储在 /site 根节点下。您还可以添加一个新的根节点/products 来存储您的产品。

您可以查看https://github.com/neos/metadata-contentrepositoryadapter,其中元数据存储在其自己的根目录下。

希望有帮助,干杯,丹尼尔

于 2018-05-24T12:07:48.767 回答
0

作为记录,类似的事情也可以通过纯 Flow 中的 Doctrine Translateable 扩展来实现:

https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md

请参阅http://flowframework.readthedocs.io/en/stable/TheDefinitiveGuide/PartIII/Persistence.html#on-the-doctrine-event-system了解如何在 Flow 中激活扩展。

但是,更简洁的方法确实是将域模型和内容分开(除非您构建 CMS 并且内容是您的域;)

于 2018-08-01T11:02:32.923 回答