Search code examples
phpvalidationlaravellocalelaravel-5

Laravel 5 config locale, does not works


Modifications done:

on config/app.php

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

on .env

APP_LOCALE=pt

I've also duplicated the /resources/lang/en files to /resources/lang/pt files as docs suggests.

The problem:

All my validation messages are still in english, and running php artisan tinker:

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

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

Help?


Solution

  • I've already figured out how to solve that:

    <?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);
        }
    
    }
    

    On Kernel.php

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

    UPDATE:

    My config was cached by command:

    php artisan config:cache
    

    So, I've done:

    php artisan config:clear
    

    And the middleware above isn't necessary anymore.