Commit ae3f8329c25ef24c44c54690116fd7d3dc35ae85

Authored by 江麻妞
Committed by GitHub
1 parent 2b76b884

perf: optimize i18n to add the initial locale to the locale pool during initialization (#577)

src/locales/setupI18n.ts
... ... @@ -3,6 +3,7 @@ import type { I18n, I18nOptions } from 'vue-i18n';
3 3  
4 4 import { createI18n } from 'vue-i18n';
5 5  
  6 +import { setLoadLocalePool } from './useLocale';
6 7 import { localeSetting } from '/@/settings/localeSetting';
7 8 import { useLocaleStoreWithOut } from '/@/store/modules/locale';
8 9  
... ... @@ -16,6 +17,10 @@ async function createI18nOptions(): Promise<I18nOptions> {
16 17 const defaultLocal = await import(`./lang/${locale}.ts`);
17 18 const message = defaultLocal.default?.message ?? {};
18 19  
  20 + setLoadLocalePool((loadLocalePool) => {
  21 + loadLocalePool.push(locale);
  22 + });
  23 +
19 24 return {
20 25 legacy: false,
21 26 locale,
... ...
src/locales/useLocale.ts
... ... @@ -17,6 +17,10 @@ interface LangModule {
17 17  
18 18 const loadLocalePool: LocaleType[] = [];
19 19  
  20 +export function setLoadLocalePool(cb: (loadLocalePool: LocaleType[]) => void) {
  21 + cb(loadLocalePool);
  22 +}
  23 +
20 24 function setI18nLanguage(locale: LocaleType) {
21 25 const localeStore = useLocaleStoreWithOut();
22 26  
... ...