Files
2025-04-30 14:08:39 +08:00

88 lines
3.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { LANGUAGES } from '../common/config.js'
const publicCogfig = {};
const errorList = {};
const emptyList = [];
LANGUAGES.forEach(val => {
if (!publicCogfig[val.type]) {
publicCogfig[val.type] = {};
errorList[val.type] = [];
}
})
// console.log(publicCogfig)
const pageLangs = require.context('../pages/', true, /\lang.js$/);
const componentsLangs = require.context('../components/', true, /\lang.js$/);
const commonLangs = require.context('../lang/', true, /\lang.js$/);
// pages下语言文件合并
const pagesModules = pageLangs.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1');
const value = pageLangs(modulePath);
// console.log(value)
LANGUAGES.forEach(val => {
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default && !value.default[val.type]) {
errorList[val.type].push(moduleName);
}
if ((typeof value == 'object') && !value.default) {
emptyList.push(moduleName);
}
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default) {
Object.assign(modules[val.type], value.default[val.type]);
}
})
return modules;
}, publicCogfig);
// console.log(Object.keys(pagesModules.zh).length)
// 公共组件下语言文件合并
const componentsModules = componentsLangs.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1');
const value = componentsLangs(modulePath);
LANGUAGES.forEach(val => {
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default && !value.default[val.type]) {
errorList[val.type].push(moduleName);
}
if ((typeof value == 'object') && !value.default) {
emptyList.push(moduleName);
}
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default) {
Object.assign(modules[val.type], value.default[val.type]);
}
})
return modules;
}, publicCogfig);
// console.log(errorList)
// 公共底包下语言文件合并
const commonModules = commonLangs.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1');
const value = commonLangs(modulePath);
LANGUAGES.forEach(val => {
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default && !value.default[val.type]) {
errorList[val.type].push(moduleName);
}
if ((typeof value == 'object') && !value.default) {
emptyList.push(moduleName);
}
// 排除建了lang.js没有内容时报错
if ((typeof value == 'object') && value.default) {
Object.assign(modules[val.type], value.default[val.type]);
}
})
return modules;
}, publicCogfig);
const totalLangs = {}
for (let attr in publicCogfig) {
if (!totalLangs[attr]) {
totalLangs[attr] = publicCogfig[attr];
}
}
// console.log('config配置后单页面lang.js缺少配置的页面',errorList)
// console.log('单页面lang.js无任何内容的页面',emptyList)
export default totalLangs;