Локализация доменных моделей в Neos / Flow - PullRequest
0 голосов
/ 24 мая 2018

Веб-сайт, который я в настоящее время разрабатываю с Neos / Flow, включает в себя самостоятельно разработанную систему магазинов, реализованную как Flow Plugin.Продукты, варианты и ваучеры хранятся как модели предметной области.Поскольку клиент хочет предоставить свой веб-сайт на разных языках, мне нужно найти способ управления переводами для доменных объектов.Я не могу найти способ, который запекается в Neos / Flow, поэтому моей первой мыслью было просто вставить идентификаторы перевода внутри переводимых полей (описание и тому подобное), которые затем используются внутри представления с помощью viewhelper перевода.Это будет работать совершенно нормально, если клиент не захочет редактировать эти поля самостоятельно.

Моя следующая идея состояла в том, чтобы просто реализовать дополнительное поле для каждого языкового измерения и каждого переводимого поля (например, description_en; description_es,…).Но это был бы худший подход с точки зрения ремонтопригодности и изменчивости.Я обычно работал над проектами TYPO3, где перевод объектов домена действительно прост и работает из коробки.Так что этот опыт внутри Neos очень расстраивает.

Кто-нибудь сталкивался с подобной проблемой или даже нашел решение этой проблемы?

Ответы [ 2 ]

0 голосов
/ 01 августа 2018

Для справки, нечто подобное можно было бы также достичь с помощью расширяемого Doctrine-перевода в чистом потоке:

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, а контент - это ваш домен;)

0 голосов
/ 24 мая 2018

всякий раз, когда у нас есть требование иметь многоязычный контент, мы решаем это, сохраняя данные в Neos Content Repository.Таким образом, обработка языка, ака измерения, работает из коробки.Кроме того, создание пользовательского интерфейса для этих записей очень просто с помощью встроенного редактирования или инспектора модуля содержимого.

Обратите внимание, что хранение данных в CR не обязательно означает, что вы должны хранить их в корневом узле / site.Вы также можете добавить новый корневой узел /products для хранения своих продуктов.

Вы можете взглянуть на https://github.com/neos/metadata-contentrepositoryadapter, где метаданные хранятся под своим собственным корнем.

Надеюсь, это поможет, ура, Даниэль

...