Язык сайта по URL или субдомену
Локализация по URL
Сначала надо указать, в каком месте будет указываться текущий язык сайта.
# routes/web.php Route::get('/{lang}/news', [NewsController::class, 'index']);
Через код выше можно обращаться к следующим страницам:
- /ru/news
- /en/news
Вместо {lang}
можно подставить любой код языка. Также можно указать только поддерживаемые языки.
# routes/web.php Route::get('/{lang}/news', [NewsController::class, 'index'])->where('lang', 'ru|en');
Строка «ru|en» означает, что вместо {lang}
может быть значение «ru» или «en».
В контроллере текущий язык сайта устанавливается через метод App::setLocale()
.
# app/Http/Controllers/NewsController.php use Illuminate\Support\Facades\App; // … public function index($lang) { // установить текущий язык App::setLocale($lang); }
Локализация по субдомену
Определять язык по субдомену можно через метод Route::domain()
.
# routes/web.php Route::domain('{lang}.example.ru')->group(function(){ Route::get('/', [NewsController::class, 'index']); });
В контроллере текущий язык сайта устанавливается через метод App::setLocale()
.
# app/Http/Controllers/NewsController.php use Illuminate\Support\Facades\App; // … public function index($lang) { // установить текущий язык App::setLocale($lang); }
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта