Files
freeCodeCamp/tools/crowdin/actions/convert-chinese/index.js
Nicholas Carrigan e46e80e08f feat(client): add chinese traditional
Add chinese traditional to the all-langs validation and necessary
client build configs.
2021-05-05 21:06:54 +05:30

42 lines
1.2 KiB
JavaScript

/* eslint-disable import/no-unresolved */
const fs = require('fs-extra');
const path = require('path');
const opencc = require('node-opencc');
const getFiles = async (directory, fileList = []) => {
const files = await fs.readdir(directory);
for (const file of files) {
const fileStat = await fs.stat(path.join(directory, file));
if (fileStat.isDirectory()) {
fileList = await getFiles(path.join(directory, file), fileList);
} else {
fileList.push(path.join(directory, file));
}
}
return fileList;
};
(async () => {
console.info('Getting file list...');
const fileList = [];
const curriculum = await getFiles(
path.join(__dirname, '/../../../../curriculum/challenges/chinese')
);
fileList.push(...curriculum);
const client = await getFiles(
path.join(__dirname, '/../../../../client/i18n/locales/chinese')
);
fileList.push(...client);
for (const file of fileList) {
console.info(`Translating ${file}`);
const fileText = await fs.readFile(file, 'utf-8');
const translatedText = await opencc.simplifiedToTraditional(fileText);
await fs.outputFile(
file.replace('chinese', 'chinese-traditional'),
translatedText
);
}
})();