fix: validate languages (#3638)
This commit is contained in:
parent
73e9f35ab1
commit
7251748d59
1 changed files with 6 additions and 0 deletions
|
|
@ -46,6 +46,12 @@ export const getLocaleOnServer = (): Locale => {
|
||||||
languages = new Negotiator({ headers: negotiatorHeaders }).languages()
|
languages = new Negotiator({ headers: negotiatorHeaders }).languages()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate languages
|
||||||
|
if (!Array.isArray(languages) || languages.length === 0 || !languages.every(lang => typeof lang === 'string' && /^[\w-]+$/.test(lang))) {
|
||||||
|
console.error(`Invalid languages: ${languages}`)
|
||||||
|
languages = [i18n.defaultLocale]
|
||||||
|
}
|
||||||
|
|
||||||
// match locale
|
// match locale
|
||||||
const matchedLocale = match(languages, locales, i18n.defaultLocale) as Locale
|
const matchedLocale = match(languages, locales, i18n.defaultLocale) as Locale
|
||||||
return matchedLocale
|
return matchedLocale
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue