<?php
namespace App\Controller\Common;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class RedirectController extends AbstractController
{
public function redirectWithLocale(Request $request)
{
if (!$request->attributes->get("_locale")) {
// http://php.net/manual/fr/locale.acceptfromhttp.php
// Pour retrouver la langue du navigateur la plus appropriƩe
// http://php.net/manual/fr/locale.getprimarylanguage.php
// Pour transformer une langue automatiquement en 2 lettres
$bestAvailableLocale = \Locale::getPrimaryLanguage(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']));
}
else{
$bestAvailableLocale = $request->attributes->get("_locale");
}
// Get defined locales from parameters
$availableLocales = $this->getParameter('locales_list');
// Check if locale found match accepted locale
if (in_array($bestAvailableLocale, $availableLocales)) {
$locale = $bestAvailableLocale;
} // Set default language
else {
$locale = $availableLocales[0];
}
// Redirect user
return $this->redirectToRoute('admin_dashboard', array(
'_locale' => $locale
));
}
}