Skip to content

Commit 10fe7bc

Browse files
authored
fix: handle default key in locale messages (#3534)
1 parent 2e50ba8 commit 10fe7bc

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2+
"default": "#3533",
23
"hello": "Hello world!"
34
}

src/runtime/messages.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { deepCopy, isArray, isFunction, isString } from '@intlify/shared'
1+
import { deepCopy, isArray, isFunction, isString, toTypeString } from '@intlify/shared'
22
import { createLogger } from '#nuxt-i18n/logger'
33

44
import type { I18nOptions, Locale, FallbackLocale, LocaleMessages, DefineLocaleMessage } from 'vue-i18n'
@@ -80,6 +80,8 @@ export async function loadInitialMessages<Context extends NuxtApp = NuxtApp>(
8080
return messages
8181
}
8282

83+
const isModule = (val: unknown): val is { default: unknown } => toTypeString(val) === '[object Module]'
84+
8385
async function loadMessage(
8486
locale: Locale,
8587
{ key, load }: LocaleLoader,
@@ -89,7 +91,7 @@ async function loadMessage(
8991
let message: LocaleMessages<DefineLocaleMessage> | null = null
9092
try {
9193
__DEBUG__ && logger.log({ locale })
92-
const getter = await load().then(r => ('default' in r ? r.default : r))
94+
const getter = await load().then(x => (isModule(x) ? x.default : x))
9395
if (isFunction(getter)) {
9496
message = await nuxt.runWithContext(() => getter(locale))
9597
__DEBUG__ && logger.log('dynamic load', logger.level >= 999 ? message : '')

0 commit comments

Comments
 (0)