Как правильно сделать мультиязычность в Laravel, что бы язык был в роуте, типа pl/team/1
?
Использовать prefix
с middleware
- примерно такой код будет в routes.php
Route::get('/signout', ['as' => 'auth.signout', 'uses' => 'Auth\AuthController@signout']);
Route::get('/login', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@login']);
Route::post('/create', ['as' => 'auth.create', 'uses' => 'Auth\AuthController@create']);
Route::post('/signin', ['as' => 'auth.signin', 'uses' => 'Auth\AuthController@signin']);
Route::get('/', function(){
return Redirect::to('/ro');
});
Route::group(['middleware' => 'isAdmin:admin', 'namespace' => 'Admin'], function(){
//...
});
Route::group(['middleware' => 'Localization'], function() {
Route::get('/{lang}/offers/view/{offer_id}', ['as' => 'offers.view', 'uses' => 'OffersController@view']);
Route::get('/{lang}/news/view/{offer_id}', ['as' => 'news.view', 'uses' => 'NewsController@view']);
});
Route::group(['prefix' => '{lang}', 'middleware' => 'Localization'], function() {
Route::get('/', ['as' => 'site.index', 'uses' => 'SiteController@index']);
Route::get('/contacts', ['as' => 'site.contacts', 'uses' => 'SiteController@contacts']);
Route::get('/offers', ['as' => 'offers.index', 'uses' => 'OffersController@index']);
Route::get('/news', ['as' => 'news.index', 'uses' => 'NewsController@index']);
Route::get('/info', ['as' => 'site.info', 'uses' => 'SiteController@info']);
Route::get('/info2', ['as' => 'site.info2', 'uses' => 'SiteController@info2']);
Route::get('/info3', ['as' => 'site.info3', 'uses' => 'SiteController@info3']);
Route::get('/info4', ['as' => 'site.info4', 'uses' => 'SiteController@info4']);
Route::get('/payments', ['as' => 'site.payments', 'uses' => 'SiteController@payments']);
});
Самый простой способ - воспользоваться специальным middleware: laravel-localization
Нужно обернуть группу роутов, которые вы хотите префиксовать в функцию:
// app/Http/routes.php
// тут обрабатываются URL с префиксами.
Route::group(['prefix' => LaravelLocalization::setLocale()], function()
{
/** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
Route::get('/', function()
{
return View::make('hello');
});
Route::get('test',function(){
return View::make('test');
});
});
/** OTHER PAGES THAT SHOULD NOT BE LOCALIZED **/
Дополнительные сведения читайте в документации.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не работает простейший ajax запросПри нажатии на кнопку должно отправляться письмо
здравствуйте, программирую на php без нескольких месяцев год, и пока что не могу точно понят в чём преимущество классов по сравнению с функциями,...
Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросовФайл, в котором обрабатываются данные,...
У меня в системе есть автоматические задачи при изменении статуса клиента, автоматически ставится задача у которой есть значение "выполнить...