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.

21 lines (20 loc) 1.09 kB
import { detectCurrentLocale } from "./utils/locale-detector.js"; import { useRuntimeConfig } from "#imports"; export const useLocaleServerMiddleware = (event, defaultLocale, currentLocale) => { const config = useRuntimeConfig(event); const { locales, defaultLocale: configDefaultLocale, fallbackLocale } = config.public.i18nConfig; const detectedLocale = currentLocale || detectCurrentLocale(event, { fallbackLocale, defaultLocale: defaultLocale || configDefaultLocale }); const localeConfig = locales?.find((l) => l.code === detectedLocale) ?? null; const availableLocales = locales?.map((l) => l.code) ?? []; 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 }; };