zerobyte/app/server/lib/accept-language.ts
2026-04-04 13:05:31 +02:00

24 lines
438 B
TypeScript

const DEFAULT_LOCALE = "en-US";
export function getLocaleFromAcceptLanguage(acceptLanguage?: string | null) {
if (!acceptLanguage) {
return DEFAULT_LOCALE;
}
for (const value of acceptLanguage.split(",")) {
const languageTag = value.split(";")[0]?.trim();
if (!languageTag) {
continue;
}
try {
Intl.getCanonicalLocales(languageTag);
return languageTag;
} catch {
continue;
}
}
return DEFAULT_LOCALE;
}