Мне нужно достичь разных локалей на разных путях. Теперь существует веб-страница на странице пути /
и администратора в разделе path /admin
.
Пользователь Admin должен иметь EN или FR locale (зависит от того, что он выбрал) на веб-странице и только EN на странице администратора. Локаль не может содержаться в URL-адресе.
Проблема заключается в том, что когда зарегистрированный админ проверяет веб-страницу с FR и переходит на страницу администратора, находящуюся в EN, веб-страница должна быть на FR, когда администратор возвращается.
Я думаю о хранении отдельных локалей для веб- страниц и страниц администрирования в сеансе и читать их в зависимости от пути.
Любые предложения без жесткого кодирования или лучшего подхода?
Вы можете добавить требования к маршруту для определения списка возможных локалей.
См. Раздел " Добавление требований для маршрутизации"
# app/config/routing.yml homepage: path: /{_locale} defaults: { _controller: AppBundle:Main:homepage, _locale: en } requirements: _locale: en|fr
Мой подход заключался в создании прослушивателя событий, который заставляет желаемый язык в зависимости от доступного пути. Путь анализируется просто с помощью регулярного выражения.
locale
не может быть в URL.