From f7cd3d17b8cd41ec8cfb867b1404c0ac452a2c80 Mon Sep 17 00:00:00 2001 From: c39cfbb3 <145777845+c39cfbb3@users.noreply.github.com> Date: Sat, 7 Oct 2023 11:44:46 +0800 Subject: [PATCH] L10N/Factory: Support "Accept-Language: zh-Hans-CN" and alike Signed-off-by: c39cfbb3 <145777845+c39cfbb3@users.noreply.github.com> --- lib/private/L10N/Factory.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index f7d3fec4ff6..7361ab1a9dd 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -490,10 +490,14 @@ class Factory implements IFactory { [$preferred_language] = explode(';', $preference); $preferred_language = str_replace('-', '_', $preferred_language); + $preferred_language_parts = explode('_', $preferred_language); foreach ($available as $available_language) { if ($preferred_language === strtolower($available_language)) { return $this->respectDefaultLanguage($app, $available_language); } + if ($preferred_language_parts[0].'_'.$preferred_language_parts[count($preferred_language_parts) - 1] === strtolower($available_language)) { + return $available_language; + } } // Fallback from de_De to de