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.

26 lines (25 loc) 1.1 kB
import { isNoPrefixStrategy, useTranslationHelper } from "nuxt-i18n-micro-core"; import { defineNuxtPlugin, useRuntimeConfig, useRouter } from "#imports"; const i18nHelper = useTranslationHelper(); export default defineNuxtPlugin(async (nuxtApp) => { const config = useRuntimeConfig(); const i18nConfig = config.public.i18nConfig; const router = useRouter(); const locale = nuxtApp.$getLocale(); const routeName = nuxtApp.$getRouteName(); await nuxtApp.callHook("i18n:register", (translations, selectedLocale) => { i18nHelper.mergeTranslation(selectedLocale ?? locale, routeName, translations, true); }, locale); router.beforeEach(async (to, from, next) => { if (to.path !== from.path || isNoPrefixStrategy(i18nConfig.strategy)) { const locale2 = nuxtApp.$getLocale(to); const routeName2 = nuxtApp.$getRouteName(to); await nuxtApp.callHook("i18n:register", (translations, selectedLocale) => { i18nHelper.mergeTranslation(selectedLocale ?? locale2, routeName2, translations, true); }, locale2); } if (next) { next(); } }); });