Skip to content

Commit e5f47af

Browse files
Merge branch '6.3' into 6.4
* 6.3: [Cache] fix the previous fix [Cache] Fix expiration time for CouchbaseCollection [FrameworkBundle] Update docblock AbstractController [HttpFoundation][FrameworkBundle] Fix default locale is ignored when set_locale_from_accept_language is used add missing translations [Validator] updated Lithuanian translation [Validator] fix some non-sense Lithuanian translations [Validator] updated Slovenian translation [Validator] updated Finnish translation [RateLimit] Test and fix peeking behavior on rate limit policies [Validator] Add `Charset` french translation [Tests] Streamline CompiledUrlGenerator tests [Serializer] Skip uninitialized properties with deep_object_to_populate fix Constraints\Email::ERROR_NAMES
2 parents 474fa5f + fc981cf commit e5f47af

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

EventListener/LocaleListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private function setLocale(Request $request): void
6969
if ($locale = $request->attributes->get('_locale')) {
7070
$request->setLocale($locale);
7171
} elseif ($this->useAcceptLanguageHeader) {
72-
if ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales)) {
72+
if ($request->getLanguages() && $preferredLanguage = $request->getPreferredLanguage($this->enabledLocales)) {
7373
$request->setLocale($preferredLanguage);
7474
}
7575
$request->attributes->set('_vary_by_language', true);

Tests/EventListener/LocaleListenerTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,28 @@ public function testRequestPreferredLocaleFromAcceptLanguageHeader()
131131
$this->assertEquals('fr', $request->getLocale());
132132
}
133133

134+
public function testRequestDefaultLocaleIfNoAcceptLanguageHeaderIsPresent()
135+
{
136+
$request = new Request();
137+
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['lt', 'de']);
138+
$event = $this->getEvent($request);
139+
140+
$listener->setDefaultLocale($event);
141+
$listener->onKernelRequest($event);
142+
$this->assertEquals('de', $request->getLocale());
143+
}
144+
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->assertTrue($request->attributes->get('_vary_by_language'));
154+
}
155+
134156
public function testRequestSecondPreferredLocaleFromAcceptLanguageHeader()
135157
{
136158
$request = Request::create('/');

0 commit comments

Comments
 (0)