fix(l10n): Don't fallback from 3-letter languages to 2-letter

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/55808/head
Joas Schilling 2025-10-16 11:28:32 +07:00 committed by backportbot[bot]
parent 93a1bc1f68
commit 37a513f79a
2 changed files with 7 additions and 1 deletions

@ -475,7 +475,7 @@ class Factory implements IFactory {
// Fallback from de_De to de
foreach ($available as $available_language) {
if (substr($preferred_language, 0, 2) === $available_language) {
if ($preferred_language_parts[0] === $available_language) {
return $available_language;
}
}

@ -362,6 +362,12 @@ class FactoryTest extends TestCase {
[null, 'de,en', ['ru', 'en'], 'en'],
[null, 'de-DE,en-US;q=0.8,en;q=0.6', ['ru', 'en'], 'en'],
// Don't fall back from kab (Kabyle) to ka (Georgian) - Unless specifically requested
[null, 'kab;q=0.8,en;q=0.6', ['ka', 'en'], 'en'],
[null, 'kab;q=0.8,de;q=0.6', ['ka', 'en', 'de'], 'de'],
[null, 'kab;q=0.8,de;q=0.7,ka;q=0.6', ['ka', 'en', 'de'], 'de'],
[null, 'kab;q=0.8,ka;q=0.7,de;q=0.6', ['ka', 'en', 'de'], 'ka'],
// Language for app
['files_pdfviewer', 'de', ['de'], 'de'],
['files_pdfviewer', 'de,en', ['de'], 'de'],