Laravel : App::setLocale doesn't work

Oooof finally after two hours ><' !! It's the line place of locale class in middleware -.-' !!! I set it in last line like this :

    ...
    ...
    \App\Http\Middleware\VerifyCsrfToken::class,
        \App\Http\Middleware\Locale::class,        
    ];

and All is fine and working ! thanks for you all :))))


The only solution which I found was set locale in constructor method of middle ware, like this:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Http\Request;

class Localization
{

    protected $app;

    public function __construct(Application $app, Request $request)
    {
        if($locale = $request->header('Content-Language')){
            if(in_array($locale, ['en', 'fa'])){
                $app->setLocale($locale);
            }
        }
    }

    /**
     * Handle an incoming request.
     *
     * @param  Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

With ♥♥♥ and over 2 hours trying!