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

时间:2015-04-08 20:02:54

标签: php validation laravel locale laravel-5

完成修改:

config / app.php

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

.env

APP_LOCALE=pt

我还将 / resources / lang / en 文件复制为 / resources / lang / pt 文件为docs suggests

问题:

我的所有验证消息仍为英文,并且正在运行 php artisan tinker

>>> Lang::getLocale()
=> "en"

>>> env('APP_LOCALE')
=> "pt"

帮助?

2 个答案:

答案 0 :(得分:3)

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

<?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

上面的中间件不再是必需的了。

答案 1 :(得分:0)

    php artisan config:clear

    php artisan cache:clear 

    php artisan config:cache

如果在部署过程中使用config:cache命令,则必须确保只从配置文件中调用env函数,而不从应用程序中的其他任何地方调用。

如果要从应用程序内部调用env,则强烈建议您向配置文件中添加适当的配置值,然后从该位置调用env,从而使您可以将env调用转换为配置调用。

通过https://github.com/laravel/framework/issues/21727

读取整个线程