예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     // Detect the bot case => if bot we do nothing
     $isBot = isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT']);
     /**
      * If User has never been logged => it will be redirected to his local url
      */
     if (!$request->cookie('locale') && !$isBot) {
         $locale = \App::getLocale();
         // if local doesn't match the current user local => we redirect
         $preferedLocale = $request->getPreferredLanguage($this->locales);
         // If local doesn't match the current user => we redirect the user to the correct url
         if ($locale !== $preferedLocale) {
             // Get Locales of the preferred local
             Session::put('locale', $preferedLocale);
         }
     } elseif ($request->cookie('locale')) {
         Session::put('locale', $request->cookie('locale'));
     }
     if ($request->has('force_locale')) {
         Session::put('locale', $request->get('force_locale'));
         \App::setLocale(Session::get('locale', env('APP_DEFAULT_LOCALE', 'en')));
         return $next($request)->withCookie(cookie()->forever('locale', Session::get('locale')));
     }
     \App::setLocale(Session::get('locale', env('APP_DEFAULT_LOCALE', 'en')));
     return $next($request);
 }
예제 #2
0
 public function handle($request, Closure $next)
 {
     $choosenLang = Session::get('locale');
     if (!$choosenLang) {
         $choosenLang = \App::getLocale();
         Session::put('locale', $choosenLang);
     }
     app()->setLocale($choosenLang);
     return $next($request);
 }
예제 #3
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if (Auth::check()) {
         if ($request->user()->mayEnterCabinet()) {
             if (!$request->user()->hasLocale(\App::getLocale())) {
                 $request->user()->addLocale(\App::getLocale());
             }
             return $next($request);
         }
     }
     return redirect('/');
 }
예제 #4
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     /*
             if(\Session::get('locale') == "") {
                 switch(strtolower($this->langauge)){
                     case 'ge' :
                         \Session::put('locale','ge');
                         break;
                     case 'ru' :
                         \Session::put('locale','ru');
                         break;
                     case 'ua' :
                         \Session::put('locale','ru');
                         break;
                     default:
                         \Session::put('locale','en');
                         break;
                 }
             }*/
     $locale = !empty($request->cookie('locale')) ? $request->cookie('locale') : \App::getLocale();
     \App::setLocale($locale);
     return $next($request);
 }