2013-02-05 1 views
3

Я установил, комплект: https://github.com/lunetics/LocaleBundle, которые помогают переключаться между языками. Все работает отлично, в твинге, перевод работает отлично. Но когда я хочу перевести любое сообщение в контроллер, я получаю французский (fr) вместо определенного языка (например, en).Как получить локаль в контроллере Symfony 2.1?

Как я могу получить текущий выбранный язык в контроллере?

Я использую: $this->getRequest()->getLocale(), но он не работает, он дает мне FR для каждой культуры.

мой язык по умолчанию настройки в parameter.ini является FR

ответ

0

После просмотра внутри кода LuneticsLocaleBundle и Symfony 2.1 Документация, я discovred, что symfony2.1 проходит локали в маршруте. Проблема возникает при рендеринге действия из шаблона twig, где symfony создает запрос nes. Итак, чтобы решить эту проблему, я переопределяю код LuneticsLocaleBundle, и я добавил $this->get('session')->set('_locale', $_locale); в switchAction из LocaleController пакета.

Таким образом, локаль будет храниться в сеансе.

Я надеюсь, что это тоже поможет.