next-intlayer
Version:
Simplify internationalization i18n in Next.js with context providers, hooks, locale detection, and multilingual content integration.
27 lines (25 loc) • 983 B
JavaScript
import configuration from "@intlayer/config/built";
import { getLocaleFromStorage, localeDetector } from "@intlayer/core";
import { Locales } from "@intlayer/types";
import { cookies, headers } from "next/headers.js";
//#region src/server/getLocale.ts
const getLocale = async () => {
const defaultLocale = configuration?.internationalization?.defaultLocale ?? Locales.ENGLISH;
const headersList = await headers();
const cookiesList = await cookies();
const storedLocale = getLocaleFromStorage({
getCookie: (name) => cookiesList.get(name)?.value ?? null,
getHeader: (name) => headersList.get(name) ?? null
});
if (storedLocale) return storedLocale;
const negotiatorHeaders = {};
headersList.forEach((value, key) => {
negotiatorHeaders[key] = value;
});
const userFallbackLocale = localeDetector(negotiatorHeaders);
if (userFallbackLocale) return userFallbackLocale;
return defaultLocale;
};
//#endregion
export { getLocale };
//# sourceMappingURL=getLocale.mjs.map