@primevendetta

Сохранение локализации на субдоменах?

Столкнулся с проблемой при реализации локализации при работе с субдоменами. Сами субдомены никак с локализацией не связаны (это не ru.domain.com!) Суть проблемы в следующем - локализация работает только в том поддомене, в группе роутов которого лежит роут с контроллером смены локали.

Т.е. если роут смены локали sub1.domain.com/lang/ru то локализация работает только в пространстве sub1.domain.com/...

На субдомене "sub2.domain.com/..." локализация не срабатывает и значения из файлов локализации не подтягиваются. При этом App::getLocale() на "sub2.domain.com/..." показывает, что локаль успешно сменилась.

Не могу понять где копать, если App::getLocale() показывает ['en'] , а шаблон выводит значение из файла локализации 'ru'.

Общий принцип смены локали реализован по примеру https://habrahabr.ru/post/264435, только логика из роута убрана в контроллер.

Пробовал создать одну глобальную группу, в корень которой поместить роут контроллера смены локали и группы субдоменов - не помогло.

Помогите, пожалуйста...
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@primevendetta Автор вопроса
Нашлось решение.

Куки как и сессию необходимо расшарить на все субдомены.

Поскольку все куки в Laravel защищены, то расшарить их можно только в незашифрованном виде вот так.

С сессиями все проще - необходимо в config/session.php в значение SESSION_DOMAIN добавить точку в начале ".domain.com"

Выбрал вариант с сессией. Оказалось, что нужно было просто в нужном месте точку поставить :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
в куки уберите, а не в сессию
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы