11import type { RouteLocationNormalized } from 'vue-router'
2+ import { consola } from 'consola'
3+
4+ const log = consola . withTag ( 'Docus' )
5+
6+ // Lazy import functions for locale files (bundled but not eagerly loaded)
7+ const localeFiles = import . meta. glob < { default : Record < string , unknown > } > ( '../../i18n/locales/*.json' )
28
39export default defineNuxtPlugin ( async ( ) => {
410 const nuxtApp = useNuxtApp ( )
@@ -13,15 +19,26 @@ export default defineNuxtPlugin(async () => {
1319 let locale = configuredLocale
1420 let resolvedMessages : Record < string , unknown >
1521
16- try {
17- const localeMessages = await import ( `../../i18n/locales/${ configuredLocale } .json` )
18- resolvedMessages = localeMessages . default || localeMessages
22+ // Try to load the requested locale file
23+ const localeKey = `../../i18n/locales/${ configuredLocale } .json`
24+ const localeLoader = localeFiles [ localeKey ]
25+
26+ if ( localeLoader ) {
27+ const localeModule = await localeLoader ( )
28+ resolvedMessages = localeModule . default
1929 }
20- catch {
21- console . warn ( `[Docus] Missing locale file for "${ configuredLocale } ". Falling back to "en".` )
30+ else {
31+ log . warn ( `Missing locale file for "${ configuredLocale } ". Falling back to "en".` )
2232 locale = 'en'
23- const fallback = await import ( '../../i18n/locales/en.json' )
24- resolvedMessages = fallback . default || fallback
33+ const fallbackKey = '../../i18n/locales/en.json'
34+ const fallbackLoader = localeFiles [ fallbackKey ]
35+ if ( fallbackLoader ) {
36+ const fallbackModule = await fallbackLoader ( )
37+ resolvedMessages = fallbackModule . default
38+ }
39+ else {
40+ resolvedMessages = { } as Record < string , unknown >
41+ }
2542 }
2643
2744 nuxtApp . provide ( 'locale' , locale )
0 commit comments