Laravel URL префикс языка со многими различными сайтами - PullRequest
1 голос
/ 15 октября 2019

В настоящее время я работаю над новым веб-сайтом и хочу использовать несколько языков на разных страницах, а URL должен содержать префикс. Это моя цель, и она должна быть достигнута:

Mywebsite/ --> Mywebsite/en
Mywebsite/en --> Should show the main page in en
Mywebsite/de --> Should show the main pahe in de
Mywebsite/en/legal --> Should show legal page in en
Mywebsite/legal --> Should show the legal page in the before selected language and redirect to Mywebsite/en/legal

Поэтому, если префикс отсутствует, сайт следует перенаправить и показать точную страницу на правильном языке.

Я пытался реализовать этоно не все дела работают.

web.php

Route::get('/', function () {
    return redirect(app()->getLocale());
});

Route::get('/legal', function () {
    return redirect(app()->getLocale() . '/legal');
});

Route::group(['prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}'], 'middleware' => 'localization'], function($locale) {

    Route::get('/', function () {
        return view('home');
    });

    Route::get('/home', function () {
        return view('home');
    });

    Route::get('/legal', function () {
        return view('legal');
    });

});

Localization.php

public function handle($request, Closure $next)
    {
        app()->setLocale($request->segment(1));
        return $next($request);
    }
  • app () -> getLocale () делаетне работает вообще
  • Route :: get ('/ legal', функция () также не работает

Что отсутствует или что я могу изменить, чтобы решить эту проблему?

Заранее спасибо!

...