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