Я реализую перевод на моем приложении Symfony3. Я прочитал the book и внедрил _locale
var в начале моего маршрута. Я также установил перенаправление от /
до /en
и определим резервные копии переводчика.Symfony3 местный язык не используется в FOSUserBundle route
Это работает как предназначение, за исключением маршрута FOSUserBundle. Поскольку они не определены в моей собственной маршрутизации, они не заботятся о {_locale}, и когда я нахожу их, они возвращаются к языку по умолчанию. (/de/mypage
=>/profile
=>/en/mypage
)
Моих файлы перевод сохраняются в app/ressources/translations
, и весь мой перевод делается ветка стороны.
app_localized:
resource: "@AppBundle/Controller/"
type: annotation
prefix: /{_locale}
app:
path:/
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /en
permanent: true
я видел в книге было рекомендовано установить перевод в контроллере, но в моем случае, я получил некоторые, и не думаю, что это ценно, чтобы повторить в каждом из них проверка языка.
У меня также есть вопрос о том, как хранить сеанс var в сессии, и поставить слушателя в глобальном масштабе, но кажется немного чересчур, поэтому я думаю, что, вероятно, я чего-то не вижу.
Итак, как обрабатывать URL-адрес globale через URL-адрес, в том числе по маршруту FOSUserBundle, без повторного кода в каждом контроллере?
На самом деле, мой FOSRout такой. fos_js_routing: ресурс: "@ FOSJsRoutingBundle/Resources/конфигурация/маршрутизация/routing.xml"
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
prefix: /{_locale}
requirements:
_locale: '%app_locales%'
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /{_locale}/profile
requirements:
_locale: '%app_locales%'
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /{_locale}/register
requirements:
_locale: '%app_locales%'
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /{_locale}/resetting
requirements:
_locale: '%app_locales%'
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /{_locale}/profile
requirements:
_locale: '%app_locales%'
Да я реализовал запасной вариант и dEFAULT_LOCALE Params. О маршруте, я попробовал, но у меня все еще есть проблемы. То же самое применяется, когда я пытаюсь изменить текущий язык. –
Возможно ли увидеть все ваши routing.yml с помощью маршрута FOSUser? –
уверен, я отредактирую свое первое сообщение –