Middleware
class Localization
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Session::has('locale')){
App::setLocale(Session::get('locale'));
}
return $next($request);
}
}
Select
<form action="{{route('language-switcher')}}" method="post" id="lang-switcher">
<div class="search-container">
<select name="change" id="font-options">
<option {{(App::isLocale('ru')) ? 'selected' : ''}} value="ru">RU</option>
<option {{(App::isLocale('en')) ? 'selected' : ''}} value="en">EN</option>
</select>
{{csrf_field()}}
<div class="search-arrow"></div>
</div>
</form>
// Controller
public function switcher(Request $request){
$locale = $request->change;
Session::put('locale', $locale);
return redirect()->back();
}
Route
// Home
Route::get('/', 'MainController@index')->name('index');
// About
Route::get('/about', 'MainController@about')->name('about');
// Switcher lang
Route::post('/switcher-language/', 'MainController@switcher')->name('language-switcher');
Вопрос:
На данный момент локация определяется через сессию и грузить нужный контент, как сделать чтобы на главном языке (ru) была ссылка /about а на англ. (en) /en/about