Add support of language tags composed of multiple sub-tags

This commit is contained in:
Bubka
2025-03-27 15:44:59 +01:00
parent 25de6e40f2
commit cd038384eb
59 changed files with 226 additions and 109 deletions

View File

@ -118,11 +118,24 @@ export const useUserStore = defineStore({
*/
applyLanguage() {
const { isSupported, language } = useNavigatorLanguage()
let lang = 'en'
if (isSupported) {
loadLanguageAsync(this.preferences.lang == 'browser' ? language.value.slice(0, 2) : this.preferences.lang)
if (this.preferences.lang == 'browser') {
if (this.$2fauth.langs.includes(language.value)) {
lang = language.value
}
// If the language tag pushed by the browser is composed of
// multiple subtags (ex: fr-FR) we need to retry but only with
// the "language subtag" (ex: fr)
else if (this.$2fauth.langs.includes(language.value.slice(0, 2))) {
lang = language.value.slice(0, 2)
}
}
else lang = this.preferences.lang
}
else loadLanguageAsync('en')
loadLanguageAsync(lang)
},
/**