laravel不会自动检测请求区域设置吗?
我正在学习laravel 5.4语言环境章节。当我编写测试代码时,我会遇到一个问题。例如,我的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
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);
可能重复的