UNPKG

@intlayer/core

Version:

Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.

26 lines (24 loc) 1.05 kB
import { internationalization } from "@intlayer/config/built"; //#region src/localization/localeResolver.ts /** * Resolves the most specific locale from a user-provided list, * or falls back to the default locale if no match is found. */ const localeResolver = (selectedLocale, locales = internationalization?.locales, defaultLocale = internationalization?.defaultLocale) => { const requestedLocales = [selectedLocale].flat(); const normalize = (locale) => locale.trim().toLowerCase(); try { for (const requested of requestedLocales) { const normalizedRequested = normalize(requested); const exactMatch = locales.find((locale) => normalize(locale) === normalizedRequested); if (exactMatch) return exactMatch; const [requestedLang] = normalizedRequested.split("-"); const partialMatch = locales.find((locale) => normalize(locale).split("-")[0] === requestedLang); if (partialMatch) return partialMatch; } } catch {} return defaultLocale; }; //#endregion export { localeResolver }; //# sourceMappingURL=localeResolver.mjs.map