UNPKG

nuxt-i18n-micro

Version:

Nuxt I18n Micro is a lightweight, high-performance internationalization module for Nuxt, designed to handle multi-language support with minimal overhead, fast build times, and efficient runtime performance.

38 lines (37 loc) 1.6 kB
import { getEnabledLocaleCodes, getEnabledLocales } from "@i18n-micro/utils/active-locales"; import { resolveI18nConfigWithRuntimeOverrides } from "@i18n-micro/utils/runtime-config"; import { getI18nConfig } from "#i18n-internal/strategy"; import { useRuntimeConfig } from "#imports"; import { detectCurrentLocale } from "./locale-detector.js"; export const useLocaleServerMiddleware = (event, defaultLocale, currentLocale) => { const config = resolveI18nConfigWithRuntimeOverrides( getI18nConfig(), useRuntimeConfig(event).public ); const { locales, defaultLocale: configDefaultLocale, fallbackLocale } = config; const enabledLocales = getEnabledLocales(locales); const detectedLocale = currentLocale || detectCurrentLocale( event, { fallbackLocale, defaultLocale: defaultLocale || configDefaultLocale, locales: enabledLocales, localeCookie: config.localeCookie || "user-locale", autoDetectLanguage: true }, defaultLocale ); const localeConfig = enabledLocales.find((l) => l.code === detectedLocale) ?? null; const availableLocales = getEnabledLocaleCodes(locales); const isDefault = detectedLocale === (defaultLocale || configDefaultLocale || "en"); const isFallback = detectedLocale === (fallbackLocale || defaultLocale || configDefaultLocale || "en"); return { current: detectedLocale, default: defaultLocale || configDefaultLocale || "en", fallback: fallbackLocale || defaultLocale || configDefaultLocale || "en", available: availableLocales, locale: localeConfig, isDefault, isFallback }; };