Laravel 5.5 Локализация в маршруте - PullRequest
0 голосов
/ 28 января 2019

мы пытаемся перенаправить на разные языки, но не очень хорошо работаем в настоящее время.Мы работаем с языковыми папками.

В настоящее время у нас есть: example.com/hotelA (если кто-то получит к нему доступ, он автоматически изменит язык в соответствии с IP).

Теперь мы хотели бы иметь прямые ссылки длявсе языки:

  • example.com/**en**/hotelA/
  • example.com/**tr**/hotelA/

Мы установили переключатель на нашей странице следующим образом:

Route::get('language/{locale}', function ($locale)
{
    App::setLocale($locale);
    Session::put('locale',$locale);
    Session::put('custlocale',$locale);

    return back();
});

Но это работает только тогда, когда кто-то нажимает кнопку.Итак, мы попробовали:

Route::get('/{locale}/{slug}/', 'frontEnd\HotelController@showHotel'), function ($locale)
{
    App::setLocale($locale);
    Session::put('locale',$locale);
    Session::put('custlocale',$locale);

    return back();
});

Не работает на самом деле.Таким образом, мы пробовали много других вещей, но мы не могли решить это должным образом.Есть идеи, как решить это правильно?Может быть, лучшие практики?

1 Ответ

0 голосов
/ 28 января 2019

App::setLocale($locale) только изменит языковой стандарт для текущего запроса, а установка языкового стандарта в сеансе не изменит языковой стандарт, используемый Laravel.

Если вы хотите использовать языковой стандарт, установленный всеанс, вы можете добавить промежуточное программное обеспечение на свой веб-сайт, который берет языковой стандарт из сеанса и устанавливает его для текущего запроса, используя App::setLocale().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...