12345678910111213141516171819202122232425262728293031 |
- 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, loadMessages, setupI18n };
|