Не распознает ли 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
Другие вопросы по тегам