SonataTranslationBundle default_locale и локали для каждого объекта - PullRequest
0 голосов
/ 22 октября 2018

Я вернулся к работе с пакетами администратора Sonata, и у меня возник вопрос, связанный с пакетом перевода Sonata (расширение Gedmo Doctrine) с базовым переводом одной таблицы.Согласно документации, нам нужно установить 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 '.Если кто-то из вас может, добавьте тег, чтобы его можно было легко сортировать.

...