РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
194 of 201 menu

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

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

<?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:

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

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

<?php use Illuminate\Support\Facades\App; class TestController extends Controller { public function index($lang) { App::setLocale($lang); return view('test.index'); } } ?>

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить