| 123456789101112131415161718192021222324 |
- export function langMessageFactory(
- requireModules: Record<string, () => Promise<unknown>>,
- prefix = 'lang'
- ) {
- const lang: Recordable = {}
- const filenames = Object.keys(requireModules)
- for (let filename of filenames) {
- const langAtom = (requireModules[filename] as any).default
- filename = filename.replace(`./${prefix}/`, '').replace(/^\.\//, '')
- filename = filename.substring(0, filename.lastIndexOf('.'))
- const locals = filename.split('/')
- const langname = locals.pop()
- let current = lang
- for (const name of locals) {
- lang[name] = current = lang[name] || {}
- }
- current[langname] = langAtom
- }
- return lang
- }
|