SonataTranslationBundle default_locale и локали для каждого объекта
Я вернулся к работе с пакетами администратора Sonata, и у меня возник вопрос, связанный с пакетом перевода Sonata (расширение доктрины Gedmo) с базовым переводом в одну таблицу. Согласно документации, нам нужно установить default_locale
и список locales
для проекта в нашем конфигурационном файле. Этот шаблон отлично работает для проектов с фиксированными локалями. Но в моем случае (который я тоже считаю очень распространенным) я хочу, чтобы он был немного динамичным в зависимости от сохраненной конфигурации.
Есть объекты сущностей, называемые Game
который имеет реляционную сущность (oneToMany) под названием Language
с помощью которого можно установить несколько языков для Game
и установить один из них как default_locale
, Теперь, в моей административной панели CRUD, я хочу, чтобы это было отражено согласно конфигурации, если она уже определена. В противном случае, чтобы иметь запасной язык.
Таким образом, все будет примерно так:
1. Установите запасную локаль из локали вошедшего в систему пользователя.
2. Языковые опции для Game
CRUD должен поступать из локалей, определенных в Game -> Languages
,
Насколько я пытался, я могу изменить список "локалей" из configuration()
метод в классе администратора, но поскольку субъект не присутствует в этом методе ($this->getSubject() = null), фиксированная строка работает, но динамические значения из свойства объекта не могут быть установлены.
Версии моего проекта:
PHP: 7.2
Symfony: 3.4
Sonata-Core-Bundle: 3.11.2
Sonata-Admin-Bundle: 3.40.1
Sonata-Translation-Bundle: 2.3.1
STOF-Doctrine-Bundle: 1.3.0
GEDMO-Extension-Bundle: 2.4.36
NB. Из-за отсутствия репутации я не смог добавить тег " sonata-translation-bundle ". Если кто-то из вас может, добавьте тег, чтобы его можно было легко сортировать.