src/Controller/Common/RedirectController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Common;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. class RedirectController extends AbstractController
  7. {
  8.     public function redirectWithLocale(Request $request)
  9.     {
  10.         if (!$request->attributes->get("_locale")) {
  11.             // http://php.net/manual/fr/locale.acceptfromhttp.php
  12.             // Pour retrouver la langue du navigateur la plus appropriĆ©e
  13.             // http://php.net/manual/fr/locale.getprimarylanguage.php
  14.             // Pour transformer une langue automatiquement en 2 lettres
  15.             $bestAvailableLocale = \Locale::getPrimaryLanguage(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']));
  16.         }
  17.         else{
  18.             $bestAvailableLocale $request->attributes->get("_locale");
  19.         }
  20.         // Get defined locales from parameters
  21.         $availableLocales $this->getParameter('locales_list');
  22.         // Check if locale found match accepted locale
  23.         if (in_array($bestAvailableLocale$availableLocales)) {
  24.             $locale $bestAvailableLocale;
  25.         } // Set default language
  26.         else {
  27.             $locale $availableLocales[0];
  28.         }
  29.         // Redirect user
  30.         return $this->redirectToRoute('admin_dashboard', array(
  31.             '_locale' => $locale
  32.         ));
  33.     }
  34. }