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