【问题标题】:Laravel 5 config locale, does not worksLaravel 5 配置语言环境,不起作用
【发布时间】:2015-06-13 23:32:03
【问题描述】:

修改完成:

关于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"

帮助?

【问题讨论】:

  • 设置在 config/app.php 上根本不起作用。并且 php artisan env 返回 local 配置在 .env

标签: php validation laravel locale laravel-5


【解决方案1】:

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

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

并且不再需要上面的中间件了。

【讨论】:

    【解决方案2】:
    php artisan config:clear
    
    php artisan cache:clear 
    
    php artisan config:cache
    

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

    如果您从应用程序中调用 env,强烈建议您将正确的配置值添加到配置文件中,然后从该位置调用 env,从而允许您将 env 调用转换为配置调用。

    阅读整个问题here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-08
      • 2014-03-11
      • 2015-12-09
      • 2014-01-17
      • 2016-09-09
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多