8000 [HttpFoundation][FrameworkBundle] Fix default locale is ignored when … · symfony/symfony@6123971 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6123971

Browse files
committed
[HttpFoundation][FrameworkBundle] Fix default locale is ignored when set_locale_from_accept_language is used
1 parent 39db9c2 commit 6123971

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ private function setLocale(Request $request): void
6868
{
6969
if ($locale = $request->attributes->get('_locale')) {
7070
$request->setLocale($locale);
71-
} elseif ($this->useAcceptLanguageHeader && $request->getLanguages()) {
72-
if ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales)) {
71+
} elseif ($this->useAcceptLanguageHeader) {
72+
if($request->getLanguages() && $preferredLanguage = $request->getPreferredLanguage($this->enabledLocales)) {
7373
$request->setLocale($preferredLanguage);
7474
}
7575
$request->attributes->set('_vary_by_language', true);

src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,17 @@ public function testRequestDefaultLocaleIfNoAcceptLanguageHeaderIsPresent()
142142
$this->assertEquals('de', $request->getLocale());
143143
}
144144

145+
public function testRequestVaryByLanguageAttributeIsSetIfUsingAcceptLanguageHeader()
146+
{
147+
$request = new Request();
148+
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['lt', 'de']);
149+
$event = $this->getEvent($request);
150+
151+
$listener->setDefaultLocale($event);
152+
$listener->onKernelRequest($event);
153+
$this->assertSame(true, $request->attributes->get('_vary_by_language'));
154+
}
155+
145156
public function testRequestSecondPreferredLocaleFromAcceptLanguageHeader()
146157
{
147158
$request = Request::create('/');

0 commit comments

Comments
 (0)
0