Sanakey
2024-08-29 45b43f4ff4bea965638166ff619db1ef5afcad70
提交 | 用户 | age
4d2fb0 1 import type { LocaleType } from '#/config';
d67772 2
99ac30 3 import { set } from 'lodash-es';
V 4
d67772 5 export const loadLocalePool: LocaleType[] = [];
V 6
7 export function setHtmlPageLang(locale: LocaleType) {
8   document.querySelector('html')?.setAttribute('lang', locale);
9 }
10
11 export function setLoadLocalePool(cb: (loadLocalePool: LocaleType[]) => void) {
12   cb(loadLocalePool);
13 }
14
99ac30 15 export function genMessage(langs: Record<string, Record<string, any>>, prefix = 'lang') {
V 16   const obj: Recordable = {};
17
18   Object.keys(langs).forEach((key) => {
f6cef1 19     const langFileModule = langs[key].default;
V 20     let fileName = key.replace(`./${prefix}/`, '').replace(/^\.\//, '');
21     const lastIndex = fileName.lastIndexOf('.');
22     fileName = fileName.substring(0, lastIndex);
23     const keyList = fileName.split('/');
24     const moduleName = keyList.shift();
99ac30 25     const objKey = keyList.join('.');
f6cef1 26
V 27     if (moduleName) {
28       if (objKey) {
29         set(obj, moduleName, obj[moduleName] || {});
30         set(obj[moduleName], objKey, langFileModule);
31       } else {
32         set(obj, moduleName, langFileModule || {});
33       }
99ac30 34     }
V 35   });
36   return obj;
37 }