У меня есть меню выбора в нижней части сайта.Каждый вариант - это название страны.Сайт по умолчанию английский, но пользователь должен иметь возможность выбрать одну из 5 доступных стран, и сайт должен перевести текст на этот выбранный язык.
С кодом ниже появляется «Missing required parameters for [Route: site.translate] [URI: {language}].
».Знаете ли вы, где находится ошибка?
// LocaleMiddleware
class LocaleMiddleware
{
protected $languages = ['en','fr','es', 'de'];
public function handle($request, Closure $next)
{
if(!session()->has('locale'))
{
session()->put('locale', $request->getPreferredLanguage($this->languages));
}
app()->setLocale(session('locale'));
return $next($request);
}
}
// Контроллер TranslateLocale
class TranslateLocale extends Controller
{
public function language($language)
{
if(Session::has(locale)){
session()->set('locale', $language);}
else{
session()->set('locale', 'en');
}
return redirect()->back();
}
}
Маршрут:
Route::get('/{language}', [
'uses' => 'TranslateLocale@language',
'as' =>'site.translate'
]);
HTML-меню выбора в нижнем колонтитуле для пользователя, чтобы выбрать язык:
<h3>Language</h3>
<form method="get" action="{{route('site.translate')}}">
{{csrf_field()}}
<select name="language" class="form-control" id="exampleFormControlSelect1">
<option selected class="selected" value="de">German</option>
<option value="en">English</option>
<option value="fr">French</option>
<option value="es">Spanish</option>
<option>5</option>
</select>
</form>