| 4 | const languages = ['zh-CN', 'en-US']; |
| 5 | |
| 6 | async function main(){ |
| 7 | const workbook = new Workbook(); |
| 8 | |
| 9 | const worksheet = workbook.addWorksheet('test'); |
| 10 | |
| 11 | const bundleData = languages.map(item => { |
| 12 | return JSON.parse(fs.readFileSync(`./${item}.json`)); |
| 13 | }) |
| 14 | |
| 15 | const data = []; |
| 16 | |
| 17 | const messages = JSON.parse(fs.readFileSync('./messages.json')); |
| 18 | |
| 19 | bundleData.forEach((item, index) => { |
| 20 | for(let key in messages) { |
| 21 | const foundItem = data.find(item => item.id === key); |
| 22 | if(foundItem) { |
| 23 | foundItem[languages[index]] = item[key] |
| 24 | } else { |
| 25 | data.push({ |
| 26 | id: key, |
| 27 | defaultMessage: messages[key].defaultMessage, |
| 28 | description: messages[key].description, |
| 29 | [languages[index]]: item[key] |
| 30 | }) |
| 31 | } |
| 32 | } |
| 33 | }) |
| 34 | |
| 35 | console.log(data); |
| 36 | |
| 37 | worksheet.columns = [ |
| 38 | { header: 'ID', key: 'id', width: 30 }, |
| 39 | { header: 'defaultMessage', key: 'defaultMessage', width: 30 }, |
| 40 | { header: 'description', key: 'description', width: 50 }, |
| 41 | ...languages.map(item => { |
| 42 | return { |
| 43 | header: item, |
| 44 | key: item, |
| 45 | width: 30 |
| 46 | } |
| 47 | }) |
| 48 | ]; |
| 49 | |
| 50 | worksheet.addRows(data); |
| 51 | |
| 52 | workbook.xlsx.writeFile('./bundle.xlsx'); |
| 53 | } |
| 54 | |
| 55 | main(); |