5

I am working Multi-language website. I have created a middleware for locale. Locale is working fine with Home, Login & Registration views. But, it is not working with auth/passwords/reset.blade.php and auth/passwords/email.blade.php. When I press logout, the Locale session destroys.

Laravel 5.3 routes/web.php

Route::group(['middleware' => 'locale'], function(){
    Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index');

});

Route::get('setlocale/{locale}', function($locale){
     \Session::put('locale', $locale);
     return back();
}); 

Middleware: locale

<?php

namespace Onebook\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Config;

class Locale
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {   
        $locale = 'en';
        if(Session::has('locale')){
            $locale = Session::get('locale');
        }
        else{
            $locale = Config::get('app.locale');
        }
        \App::setlocale($locale);
        return $next($request);
    }
}
cfnerd
  • 3,658
  • 12
  • 32
  • 44
G Naga Subrahmanyam
  • 308
  • 1
  • 5
  • 19

0 Answers0