Symfony 2.3 разные локали на разных путях

0

Мне нужно достичь разных локалей на разных путях. Теперь существует веб-страница на странице пути / и администратора в разделе path /admin.

Пользователь Admin должен иметь EN или FR locale (зависит от того, что он выбрал) на веб-странице и только EN на странице администратора. Локаль не может содержаться в URL-адресе.

Проблема заключается в том, что когда зарегистрированный админ проверяет веб-страницу с FR и переходит на страницу администратора, находящуюся в EN, веб-страница должна быть на FR, когда администратор возвращается.

Я думаю о хранении отдельных локалей для веб- страниц и страниц администрирования в сеансе и читать их в зависимости от пути.

Любые предложения без жесткого кодирования или лучшего подхода?

Теги:
locale
routing
multilanguage

2 ответа

1
Лучший ответ

Вы можете добавить требования к маршруту для определения списка возможных локалей.

См. Раздел " Добавление требований для маршрутизации"

# app/config/routing.yml
homepage:
    path:      /{_locale}
    defaults:  { _controller: AppBundle:Main:homepage, _locale: en }
    requirements:
        _locale:  en|fr
  • 0
    Существует требование, что locale не может быть в URL.
  • 0
    извини, пропустил это. если вы используете ручной выбор локали (а не автоопределение или что-то подобное), это вообще не вопрос пути - просто сохраните локаль в сеансе. Также вы можете создать прослушиватель событий onRequest, который настроит для пользователя соответствующую локаль в соответствии с URI и его предпочтениями.
0

Мой подход заключался в создании прослушивателя событий, который заставляет желаемый язык в зависимости от доступного пути. Путь анализируется просто с помощью регулярного выражения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню