src/Aqarmap/Bundle/MainBundle/Locale/DefaultLocaleResolver.php line 40
<?phpnamespace Aqarmap\Bundle\MainBundle\Locale;use JMS\I18nRoutingBundle\Router\LocaleResolverInterface;use Symfony\Component\HttpFoundation\Request;/*** Default Locale Resolver.*/class DefaultLocaleResolver implements LocaleResolverInterface{public function __construct(private readonly string $cookieName, $acceptHeaderLanguages = true, private array $hostMap = []){}public function resolveLocale(Request $request, array $availableLocales): ?string{if ($this->hostMap && isset($this->hostMap[$host = $request->getHost()])) {return $this->hostMap[$host];}// if a locale has been specifically set as a query parameter, use itif ($request->query->has('hl')) {$hostLanguage = $request->query->get('hl');if (preg_match('#^[a-z]{2}(?:_[a-z]{2})?$#i', $hostLanguage)) {return $hostLanguage;}}// check if a session exists, and if it contains a localeif ($request->hasPreviousSession()) {$session = $request->getSession();if ($session->has('_locale')) {return $session->get('_locale');}}// if user sends a cookie, use itif ($request->cookies->has($this->cookieName)) {$hostLanguage = $request->cookies->get($this->cookieName);if (preg_match('#^[a-z]{2}(?:_[a-z]{2})?$#i', $hostLanguage)) {return $hostLanguage;}}return null;}}