script/compile-translations.js (21 lines of code) (raw):

const fs = require('fs'); const path = require('path'); const po = require('gettext-parser').po; const dirName = require('path').resolve(__dirname, `../translations`); function getFileByExtensionFromPath(_path, extension) { return fs.readdirSync(_path).filter(file => file.match(new RegExp(`.*\.(${extension})$`, 'i'))); } function createJSONTranslationsFromPO() { const poFiles = getFileByExtensionFromPath(dirName, 'po'); poFiles.forEach((fileName) => { const translations = fs.readFileSync(path.join(dirName, '', fileName)); const parsedTranslations = po.parse(translations); const jsonFileName = path.join(dirName, '', `${fileName.split('.')[0]}.json`); fs.writeFileSync( jsonFileName, JSON.stringify(parsedTranslations) ); // eslint-disable-next-line no-console console.log('Created', jsonFileName); }); } createJSONTranslationsFromPO();