Laravel локализация с URL - PullRequest
       10

Laravel локализация с URL

0 голосов
/ 08 апреля 2019

Я занимаюсь разработкой многоязычного веб-приложения с использованием фреймворка Laravel. Так что в этом приложении у меня есть специальное условие, чтобы сделать многоязычную функцию, как показано ниже.

  • пользователь может выбрать один из флагов и изменить язык вручную. Он меняет его URL на / {lang} .. так, например, webapp.com/cs - так он увидит все, что на чешском языке. webapp.com/en - все на английском.
  • Выбранная локализация должна быть постоянной, поэтому она не исчезнет при изменении страницы пользователя или чего-то еще - она ​​всегда должна быть в URL.

Я создал маршрут для установки локали в сеансе следующим образом.

    Route::get('/{locale}', function ($locale) {
    session()->put('locale', $locale);
    return back();
  });

И создал промежуточное ПО и добавил его в $ middlewareGroups в http \ Kernel.

Ниже мое промежуточное ПО.

public function handle($request, Closure $next)
    {
        if (session()->has('locale')) {
            app()->setLocale(session('locale'));
        }

        return $next($request);
    }

Локализация идет хорошо, и она дает правильные переводы и все. Но мне нужно показать в URL, что это за язык. как пример webapp.com/cs,webapp.com/en. Было бы здорово, если бы кто-нибудь помог мне с этой проблемой.

Спасибо.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы можете попробовать это,

На каждом вашем маршруте вы можете добавить текущий местный язык, например,

Route::get('/home/'.app()->getLocale(),'HomeController@index');

и еще одну вещь, которую вы должны увидеть

Laravel app () -> getLocale () внутри маршрутов всегда печатает значение по умолчанию "en"

Надеюсь, это поможет:)

...