From b20d074f664e81164ee8b68010831280a218cd41 Mon Sep 17 00:00:00 2001 From: MatTheCat Date: Wed, 24 Aug 2022 11:19:19 +0200 Subject: [PATCH] [HttpKernel] Use Accept-Language header even if there are no enabled locales --- src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md | 3 ++- .../Component/HttpKernel/EventListener/LocaleListener.php | 2 +- .../HttpKernel/Tests/EventListener/LocaleListenerTest.php | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index 1cf5f7f10c733..c3840220a0479 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -18,7 +18,8 @@ CHANGELOG `workflow.state_machine` * Add `rate_limiter` configuration option to `messenger.transport` to allow rate limited transports using the RateLimiter component * Remove `@internal` tag from secret vaults to allow them to be used directly outside the framework bundle and custom vaults to be added - * Deprecate "framework.form.legacy_error_messages" config node + * Deprecate `framework.form.legacy_error_messages` config node + * Set locale from request rather than default locale if `framework.enabled_locales` is empty and `framework.set_locale_from_accept_language` is true 6.1 --- diff --git a/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php b/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php index ede5e7f88bd44..750098fd24397 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php @@ -68,7 +68,7 @@ private function setLocale(Request $request) { if ($locale = $request->attributes->get('_locale')) { $request->setLocale($locale); - } elseif ($this->useAcceptLanguageHeader && $this->enabledLocales && ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales))) { + } elseif ($this->useAcceptLanguageHeader && ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales))) { $request->setLocale($preferredLanguage); $request->attributes->set('_vary_by_language', true); } diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php index 824d906340460..63e5f4bd18058 100644 --- a/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php @@ -179,7 +179,7 @@ public function testRequestNoLocaleFromAcceptLanguageHeader() $listener->setDefaultLocale($event); $listener->onKernelRequest($event); - $this->assertEquals('de', $request->getLocale()); + $this->assertEquals('fr_FR', $request->getLocale()); } public function testRequestAttributeLocaleNotOverridenFromAcceptLanguageHeader()