Skip to content

Commit dd4a526

Browse files
authored
fix(locale): lazy import (#1266)
1 parent e6be163 commit dd4a526

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

layer/app/plugins/i18n.ts

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
import 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

39
export 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

Comments
 (0)