L10N/Factory: Support "Accept-Language: zh-Hans-CN" and alike

Signed-off-by: c39cfbb3 <145777845+c39cfbb3@users.noreply.github.com>
This commit is contained in:
c39cfbb3 2023-10-07 11:44:46 +08:00 committed by Ferdinand Thiessen
parent 54d1ec58bf
commit f7cd3d17b8

View file

@ -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