Передача языка локали через URL в Laravel

В предыдущем уроке мы жестко устанавливали язык локали прямо в контроллере. Вот как это было:

app/Http/Controllers/TestController.php<?php
  use Illuminate\Support\Facades\App;
  
  class TestController extends Controller
  {
    public function index()
    {
      App::setLocale('ru'); // 'en' или 'ru'
      return view('test.index');
    }
  }
?>

Теперь мы сделаем так, чтобы язык можно было менять через URL. Мы хотим, чтобы адрес /en/page открывал страницу на английском, а адрес /ru/page — на русском.

Для этого добавим в маршрут переменный параметр lang. Он будет принимать значение en или ru:

routes/web.php<?php
  Route::get('/{lang}/page', [TestController::class, 'index']);
?>

Теперь в контроллере метод index должен принять этот параметр. Передадим его в функцию App::setLocale, которая и установит нужный язык:

app/Http/Controllers/TestController.php<?php
  use Illuminate\Support\Facades\App;
  
  class TestController extends Controller
  {
    public function index($lang)
    {
      App::setLocale($lang);
      return view('test.index');
    }
  }
?>
Задание 1

Создайте три языка: английский, русский и немецкий. Для каждого языка сделайте в файлах локализации сообщение с приветствием. Добавьте в маршрут параметр для языка. Проверьте, что при переходе по адресам /en/about, /ru/about и /de/about сообщения выводятся на правильных языках.