laravel不会自动检测请求区域设置吗?

laravel不会自动检测请求区域设置吗?,laravel,laravel-5,laravel-5.4,laravel-localization,Laravel,Laravel 5,Laravel 5.4,Laravel Localization,我正在学习laravel 5.4语言环境章节。当我编写测试代码时,我会遇到一个问题。例如,我的resources/lang目录中有两个语言目录: /resources /lang /en messages.php /zh-CN messages.php 我将默认区域设置为zh CN,回退区域设置为en。当我将Accept Language设置为zh CN时,我可以获得zh CN中的翻译字符串。但当我将Acc

我正在学习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
时,我仍然会得到zh CN中的字符串。那么laravel不会自动检测请求区域设置吗?如果我的应用程序想向那些
接受语言
英语
,向那些
接受语言
zh CN
的人显示英语,我需要手动执行,对吗?我认为laravel将自动检测请求区域设置。

在进行这些更改后,始终建议运行以下命令:

php artisan cache:clear
php artisan view:clear
php artisan route:clear

首先在
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);
可能重复的