2

我正在学习 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 不会自动检测请求语言环境?如果我的应用程序想向那些 is 显示英文,向那些isAccept-Language显示en中文,我需要手动执行,对吗?我虽然 laravel 会自动检测请求语言环境。Accept-Languagezh-CN

4

2 回答 2

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);
于 2019-09-15T08:38:46.980 回答
0

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

php artisan cache:clear
php artisan view:clear
php artisan route:clear
于 2017-04-01T09:51:51.130 回答