Glob Import
Vite supports importing multiple modules from the file system via the special import.meta.glob function:
Global Scope
By using import.meta.glob, you can load all language files at once, but you need to exclude the language set by fallbackLocale. If there is an encapsulation in the index file, it should also be excluded.
ts
// src/plugins/localer.ts
import { createLocaler } from 'vue-localer';
import enUS from '~/locales/en-US';
export default createLocaler({
fallbackLocale: 'en-US',
messages: {
'en-US': enUS,
'ja-JP': () => import('~/locales/ja-JP'),
'ko-KR': () => import('~/locales/ko-KR'),
...import.meta.glob(['~/locales/*.ts', '!~/locales/index.ts', '!~/locales/en-US.ts']),
},
});Local Scope
In the same way, this can also be done in the local scope, by excluding the language set in fallbackLocale.
ts
import { defineLocale } from 'vue-localer';
import enUS from './en-US';
export default defineLocale<typeof enUS>('demo', {
'en-US': enUS,
'ja-JP': () => import('./ja-JP'),
'ko-KR': () => import('./ko-KR'),
...import.meta.glob(['./*.ts', '!./en-US.ts']),
});