generated from template/vite-react-template
init
This commit is contained in:
40
script/merge-lng.ts
Normal file
40
script/merge-lng.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import glob from 'fast-glob';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
const files = await glob('src/data/**/*.json');
|
||||
|
||||
console.log(files);
|
||||
// 过滤en.json
|
||||
const enFiles = files.filter((file) => file.includes('en.json'));
|
||||
const zhFiles = files.filter((file) => file.includes('zh.json'));
|
||||
|
||||
// console.log(enFiles);
|
||||
export const readFiles = (files: string[]) => {
|
||||
const data = files.map((file) => {
|
||||
const content = fs.readFileSync(file, 'utf-8');
|
||||
return JSON.parse(content);
|
||||
});
|
||||
return data;
|
||||
};
|
||||
|
||||
export const mergeFiles = (files: string[]) => {
|
||||
const data = readFiles(files);
|
||||
return data.reduce((acc, curr) => {
|
||||
return { ...acc, ...curr };
|
||||
}, {});
|
||||
};
|
||||
|
||||
const enData = mergeFiles(enFiles);
|
||||
const zhData = mergeFiles(zhFiles);
|
||||
|
||||
// console.log(enData);
|
||||
// console.log(zhData);
|
||||
const outputZhFile = '../public/locales/zh/translation.json';
|
||||
const outputEnFile = '../public/locales/en/translation.json';
|
||||
|
||||
fs.writeFileSync(path.resolve(__dirname, outputZhFile), JSON.stringify(zhData, null, 2));
|
||||
fs.writeFileSync(path.resolve(__dirname, outputEnFile), JSON.stringify(enData, null, 2));
|
||||
Reference in New Issue
Block a user