43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
/**
|
|
*
|
|
* 脚本用来自动引入所有的json文件
|
|
*/
|
|
|
|
function generateImports() {
|
|
const localesPath = path.join(__dirname, 'locales');
|
|
const namespaces = ['common', 'home', 'login', 'settings', 'upload', 'chat', 'me', 'permission'];
|
|
const languages = fs.readdirSync(localesPath);
|
|
let imports = '';
|
|
let translationsMap = 'const translations = {\n';
|
|
|
|
languages.forEach(lang => {
|
|
const langPath = path.join(localesPath, lang);
|
|
if (fs.statSync(langPath).isDirectory()) {
|
|
const files = fs.readdirSync(langPath).filter(file => file.endsWith('.json'));
|
|
|
|
files.forEach(file => {
|
|
const ns = file.replace('.json', '');
|
|
const varName = `${lang}${ns.charAt(0).toUpperCase() + ns.slice(1)}`;
|
|
|
|
imports += `import ${varName} from './locales/${lang}/${file}';\n`;
|
|
});
|
|
|
|
translationsMap += ` ${lang}: {\n`;
|
|
files.forEach((file, index) => {
|
|
const ns = file.replace('.json', '');
|
|
const varName = `${lang}${ns.charAt(0).toUpperCase() + ns.slice(1)}`;
|
|
translationsMap += ` ${ns}: ${varName}${index < files.length - 1 ? ',' : ''}\n`;
|
|
});
|
|
translationsMap += ' },\n';
|
|
}
|
|
});
|
|
|
|
translationsMap += '};\n\nexport default translations;';
|
|
|
|
const output = `// 自动生成的导入文件,请勿手动修改\n\n${imports}\n${translationsMap}`;
|
|
fs.writeFileSync(path.join(__dirname, 'translations-generated.ts'), output);
|
|
}
|
|
|
|
generateImports(); |