Добрый день!
Я работаю над проектом Laravel и схожу с ума от выбора языка.
Я установил на app.php
locale , который является текущим языком, и массив с именем locales , где у меня есть все языки (испанский и английский сейчас):
'locale' => 'es',
'locales' => [
'en' => 'English',
'es' => 'Castellano',
],
Я создал маршрут, к которому пользователь может обратиться, чтобы изменить язык с шаблоном /lang/es
или /lang/en
таким образом:
Route::get('/lang/{lang}', ['as'=>'lang.switch', 'uses'=>'HomeController@storeLang']);
А вот и функция storeLang :
public function storeLang($lang){
$cookie = null;
if (array_key_exists($lang, Config::get('app.locales'))) {
$cookie = Cookie::forever('locale', $lang);
//App::setLocale($lang);
var_dump(Config::get('app.locale'));
exit();
}
if ($cookie) {
return Redirect::back()->withCookie($cookie);
}
return back();
}
}
Моя идея состояла в том, чтобы проверить, является ли $ lang , который мы передаем, правильным и, если да, создать cookie-файл, который длится вечно с сохраненным языком, но не делает языковой стандарт * Чтобы изменить 1024 *, я полагаю, что мне нужно что-то добавить, потому что этот var_dump не возвращает мне измененный язык, и я не знаю, как сделать cookie для изменения языкового стандарта.
С другой стороны, как вы можете видеть, я прокомментировал App :: setLocale ($ lang) . Я использовал его, и он, кажется, работал, потому что в этом случае var_dump возвращал мне правильный язык, на который я хотел перейти, но в то время, когда я возвращался на страницу, все было со старым язык снова.
Я злюсь на это, было бы здорово получить помощь, спасибо!