Improve i18n language matching (#5939)

pull/5941/head
Ionys 2025-06-22 01:02:52 +02:00 committed by GitHub
parent 5aeda2dab0
commit 072226bde2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 5 deletions

View File

@ -75,13 +75,22 @@ export function currentLocale() {
if (locale in messages) { if (locale in messages) {
return locale; return locale;
} }
// some locales are further specified such as "en-US". // If the locale is a 2-letter code, we can try to find a regional variant
// e.g. "fr" may not be in the messages, but "fr-FR" is
if (locale.length === 2) {
const regionalLocale = `${locale}-${locale.toUpperCase()}`;
if (regionalLocale in messages) {
return regionalLocale;
}
} else {
// Some locales are further specified such as "en-US".
// If we only have a generic locale for this, we can use it too // If we only have a generic locale for this, we can use it too
const genericLocale = locale.split("-")[0]; const genericLocale = locale.slice(0, 2);
if (genericLocale in messages) { if (genericLocale in messages) {
return genericLocale; return genericLocale;
} }
} }
}
return "en"; return "en";
} }