Не распознает ли laravel локаль запроса автоматически?
Я изучаю laravel 5.4 главу локали. Когда я пишу код для тестирования, у меня возникает вопрос. Например, у меня есть две языковые директории в моем resources/lang
каталог:
/resources
/lang
/en
messages.php
/zh-CN
messages.php
Я установил язык по умолчанию zh-CN
резервная локаль en
, Когда я установил Accept-Language
в zh-CN
Я могу получить перевод строки в ZH-CN. Но когда я установил Accept-Language
в en
Я до сих пор получаю строку в ж-кн. Таким образом, laravel не определяет локаль запроса автоматически? И если мое приложение хочет показать английский для тех, Accept-Language
является en
и показать китайский тем Accept-Language
является zh-CN
Мне нужно сделать это вручную, это правильно? Я, хотя laravel автоматически обнаружит локаль запроса.
1 ответ
Сначала настройте доступные языки в вашем config/app.php
.
'available_locales' => array('en', 'de', 'fr', 'it'),
Теперь добавьте этот код в свой routes/web.php
. Он определит язык браузера и установит языковой стандарт, если язык доступен.
$availableLanguages = Config::get('app.available_locales');
$lang = Request::getPreferredLanguage($availableLanguages);
if ($lang) Config::set('app.locale', $lang);
После внесения этих изменений всегда рекомендуется выполнить следующие команды:
php artisan cache:clear
php artisan view:clear
php artisan route:clear