@intlayer/core
Version:
Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.
24 lines (22 loc) • 1.12 kB
JavaScript
import { getPreferredLanguages } from "./localeDetector.mjs";
import { DefaultValues } from "@intlayer/config/client";
import configuration from "@intlayer/config/built";
import { getLocaleFromStorage, localeResolver } from "@intlayer/core";
//#region src/localization/getLocale.ts
const getLocale = async (ctx = {}) => {
const defaultLocale = configuration?.internationalization?.defaultLocale ?? DefaultValues.Internationalization.DEFAULT_LOCALE;
const availableLocales = configuration?.internationalization?.locales ?? DefaultValues.Internationalization.LOCALES;
const storedLocale = getLocaleFromStorage({
getCookie: ctx.getCookie,
getHeader: ctx.getHeader
});
if (storedLocale) return storedLocale;
const acceptLanguageHeader = ctx.getHeader?.("accept-language");
if (!acceptLanguageHeader) return defaultLocale;
const userFallbackLocale = localeResolver(getPreferredLanguages(acceptLanguageHeader, availableLocales), availableLocales, defaultLocale);
if (userFallbackLocale) return userFallbackLocale;
return defaultLocale;
};
//#endregion
export { getLocale };
//# sourceMappingURL=getLocale.mjs.map