Shinobi/tools/translationUpdateAll.js

48 lines
1.4 KiB
JavaScript

const fs = require('fs').promises;
const { spawn } = require('child_process');
const path = require('path');
const languagesDir = path.join(__dirname, '../languages/');
async function translateFiles() {
try {
const files = await fs.readdir(languagesDir);
for (const file of files) {
if (path.extname(file) === '.json' && file !== 'en_CA.json') {
const languageCode = path.basename(file, '.json');
await translateLanguageFile('en_CA', 'en', languageCode);
}
}
} catch (err) {
console.error('Error reading language files:', err);
}
}
function translateLanguageFile(sourceLang, targetLang, languageCode) {
return new Promise((resolve, reject) => {
const command = 'node';
const args = [`${__dirname}/translateLanguageFile.js`, sourceLang, targetLang, languageCode];
const process = spawn(command, args);
process.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
process.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
process.on('close', (code) => {
if (code === 0) {
console.log(`Successfully translated ${languageCode}`);
resolve();
} else {
console.error(`Translation process for ${languageCode} exited with code ${code}`);
reject(new Error(`Process exited with code ${code}`));
}
});
});
}
translateFiles();