@@ -194,13 +194,12 @@ declare module 'vue-router' {
194194}`
195195
196196export function generateI18nTypes ( nuxt : Nuxt , { userOptions : options , normalizedLocales } : I18nNuxtContext ) {
197- const vueI18nTypes = options . types === 'legacy' ? [ 'VueI18n' ] : [ 'ExportedGlobalComposer' , 'Composer' ]
197+ const legacyTypes = options . types === 'legacy'
198+ const i18nType = legacyTypes ? 'VueI18n' : 'Composer'
198199 const generatedLocales = simplifyLocaleOptions ( nuxt , options )
199200 const resolvedLocaleType = isString ( generatedLocales ) ? 'Locale[]' : 'LocaleObject[]'
200201 const narrowedLocaleType = normalizedLocales . map ( x => JSON . stringify ( x . code ) ) . join ( ' | ' ) || 'string'
201202
202- const i18nType = `${ vueI18nTypes . join ( ' & ' ) } & NuxtI18nRoutingCustomProperties<${ resolvedLocaleType } >`
203-
204203 const globalTranslationTypes = `
205204declare global {
206205 var $t: (${ i18nType } )['t']
@@ -213,30 +212,30 @@ declare global {
213212
214213 // prettier-ignore
215214 return `// Generated by @nuxtjs/i18n
216- import type { ${ vueI18nTypes . join ( ', ' ) } } from 'vue-i18n'
217- import type { NuxtI18nRoutingCustomProperties, ComposerCustomProperties } from '${ relative (
215+ import type { ${ i18nType } } from 'vue-i18n'
216+ import type { ComposerCustomProperties } from '${ relative (
218217 join ( nuxt . options . buildDir , 'types' ) ,
219218 resolve ( runtimeDir , 'types.ts' )
220219 ) } '
221220import type { Strategies, Directions, LocaleObject } from '${ relative (
222221 join ( nuxt . options . buildDir , 'types' ) ,
223- resolve ( distDir , 'types.d.ts ' )
222+ resolve ( distDir , 'types.d.mts ' )
224223 ) } '
225224
226225declare module 'vue-i18n' {
227226 interface ComposerCustom extends ComposerCustomProperties<${ resolvedLocaleType } > {}
228- interface ExportedGlobalComposer extends NuxtI18nRoutingCustomProperties <${ resolvedLocaleType } > {}
229- interface VueI18n extends NuxtI18nRoutingCustomProperties <${ resolvedLocaleType } > {}
227+ interface ExportedGlobalComposer extends ComposerCustomProperties <${ resolvedLocaleType } > {}
228+ interface VueI18n extends ComposerCustomProperties <${ resolvedLocaleType } > {}
230229}
231230
232231declare module '@intlify/core-base' {
233232 // generated based on configured locales
234233 interface GeneratedTypeConfig {
235234 locale: ${ narrowedLocaleType }
235+ legacy: ${ legacyTypes }
236236 }
237237}
238238
239-
240239declare module '#app' {
241240 interface NuxtApp {
242241 $i18n: ${ i18nType }
0 commit comments