我正在学习laravel 5.4 locale chapter。当我编写代码进行测试时,我得到了一个问题。例如,我的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不会自动检测请求区域设置?如果我的应用程序想要向那些Accept-Language
en
显示英语,并向那些Accept-Language
zh-CN
显示中文,我需要手动执行,这是正确的吗?我虽然laravel会自动检测请求区域设置。
答案 0 :(得分:0)
执行这些更改后,始终建议您运行以下命令:
php artisan cache:clear
php artisan view:clear
php artisan route:clear
答案 1 :(得分:0)
首先在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);