<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class LocaleController extends AbstractController
{
/**
* @Route("/change-locale/{locale}", name="change_locale")
*/
public function changeLocale($locale, Request $request): Response
{
// on stock la langue demandée dans la SESSION
$request->getSession()->set('_locale', $locale);
$baseURL = $request->getSchemeAndHttpHost().$request->getBaseUrl();
$currentLoc = $request->getLocale();
$referer = $request->headers->get('referer');
if ($referer == $baseURL) {
$localeToEdit = '/'.$currentLoc;
}else{
$localeToEdit = '/'.$currentLoc.'/';
}
$refererLocale = str_replace($localeToEdit, '/'.$locale.'/', $referer);
return $this->redirect($refererLocale);
}
}