UNPKG

@intlayer/core

Version:

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

26 lines (24 loc) 1.07 kB
import configuration 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 = configuration?.internationalization?.locales, defaultLocale = configuration?.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((loc) => normalize(loc) === normalizedRequested); if (exactMatch) return exactMatch; const [requestedLang] = normalizedRequested.split("-"); const partialMatch = locales.find((loc) => normalize(loc).split("-")[0] === requestedLang); if (partialMatch) return partialMatch; } } catch (_error) {} return defaultLocale; }; //#endregion export { localeResolver }; //# sourceMappingURL=localeResolver.mjs.map