import type { LocaleSetupOptions, SupportedLanguagesType } from '@vben/locales'; import type { App } from 'vue'; import { $t, setupI18n as coreSetup, loadLocalesMap } from '@vben/locales'; import { preferences } from '@vben/preferences'; const modules = import.meta.glob('./langs/*.json'); const localesMap = loadLocalesMap(modules); /** * 加载应用特有的语言包 * 这里也可以改造为从服务端获取翻译数据 * @param lang */ async function loadMessages(lang: SupportedLanguagesType) { const appLocaleMessages = await localesMap[lang]?.(); return appLocaleMessages?.default; } async function setupI18n(app: App, options: LocaleSetupOptions = {}) { await coreSetup(app, { defaultLocale: preferences.app.locale, loadMessages, missingWarn: !import.meta.env.PROD, ...options, }); } export { $t, setupI18n };