@intlayer/core
Version:
Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.
25 lines (23 loc) • 1.11 kB
JavaScript
import { getLocaleFromStorageServer } from "../utils/localeStorage.mjs";
import { localeResolver } from "./localeResolver.mjs";
import { getPreferredLanguages } from "./localeDetector.mjs";
import { internationalization } from "@intlayer/config/built";
import { DEFAULT_LOCALE, LOCALES } from "@intlayer/config/defaultValues";
//#region src/localization/getLocale.ts
const getLocale = async (ctx = {}) => {
const defaultLocale = internationalization?.defaultLocale ?? DEFAULT_LOCALE;
const availableLocales = internationalization?.locales ?? LOCALES;
const storedLocale = getLocaleFromStorageServer({
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