У меня какая-то странная проблема … как говорится в названии …
Я делаю пост-запрос на изменение значения lang путем установки cookie lang forever.
После этого я проверяю, существуют ли файлы cookie и app()->setLocale(\Cookie::get('lang'))
а затем использовать {{ app()->getLocale() }}
который возвращает сохраненное значение lang как ан или же фр.
Но страница по-прежнему загружается config/app.php => 'locale'=>'en'
…
Могу ли я хотя бы изменить config('app.locale') value to \Cookie::get('lang')
или ты знаешь в чем тут проблема?
Спасибо
ОБНОВИТЬ:
Я нашел ответ, мне нужно добавить к каждому файлу внутри папки представлений — новое значение локали, чтобы иметь возможность извлекать содержимое на правильном языке. Я не знаю почему, потому что у меня никогда не было проблем раньше, но если у кого-то еще есть проблемы, это может быть решение.
Возможно, вы изменили язык не в нужном месте. Вы должны использовать app/Providers/AppServiceProvider.php
сделать это.
Innside boot
метод вы можете добавить что-то вроде этого:
$this->app->setLocale(\Cookie::get('lang', 'en')
И тогда у вас будет постоянно установлен язык — когда для cookie установлено значение из cookie, в противном случае en
Тогда, по вашему мнению, вам не нужно ничего делать. Вы можете просто использовать:
{{ trans('some.translated') }}
и он будет переведен на действительный язык, когда вы установите перевод в файлах перевода.
app()->setLocale('fr')
изменит языковой стандарт на время запроса на «fr». Так что если после установки, вы звоните app()->getLocale()
, он вернет ‘fr’.
Если ваше приложение читает язык из config('app.locale')
в некоторых местах вы можете изменить значение на ходу так:
config(['app.locale' => 'fr'])
Тогда config('app.locale')
вернет ‘fr’ на время запроса