Laravel 5配置语言环境,不起作用


Laravel 5 config locale, does not works

完成的修改:

config/app.php

'locale' => env('APP_LOCALE', 'en'),
'fallback_locale' => 'en',

.env

APP_LOCALE=pt

正如文档所建议的,我还将/resources/lang/en文件复制到了.resources/lang/pt

问题:

我所有的验证消息仍然是英文的,并且运行php-artist-tick:

>>> Lang::getLocale()
=> "en"
>>> env('APP_LOCALE')
=> "pt"

帮助?

我已经想好了如何解决这个问题:

<?php namespace App'Http'Middleware;
use Closure;
use Session;
use App;
use Config;
class Locale {
    /**
     * Handle an incoming request.
     *
     * @param  'Illuminate'Http'Request  $request
     * @param  'Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        App::setLocale(env('APP_LOCALE'));
        return $next($request);
    }
}

Kernel.php上

protected $middleware = [
    .
    .
    .
    'App'Http'Middleware'Locale'
];

更新:

我的配置被命令缓存:

php artisan config:cache

所以,我做了:

php artisan config:clear

而且上面的中间件已经不必要了。

php artisan config:clear
php artisan cache:clear 
php artisan config:cache

如果在部署期间使用config:cache命令,则必须确保仅从配置文件中调用env(),而不是从应用程序中的其他位置调用。

如果您在应用程序中调用env,强烈建议您将适当的配置值添加到配置文件中,并从该位置调用env以允许您将env调用转换为config调用。

在这里阅读整个问题。