generated from template/vite-react-template
	change locales
This commit is contained in:
		
							
								
								
									
										40
									
								
								scripts/merge-lng.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								scripts/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