const path = require('path');
const twoskyConfig = require('../../.twosky.json')[0];

const {languages} = twoskyConfig;
const LOCALES_DIR = '../../client/src/__locales';
const LOCALES_LIST = Object.keys(languages);
const BASE_FILE = 'en.json';

const main = () => {
    const pathToBaseFile = path.join(LOCALES_DIR, BASE_FILE);
    const baseLanguageJson = require(pathToBaseFile);

    const summary = {};

    LOCALES_LIST.forEach((locale) => {
        const pathToFile = path.join(LOCALES_DIR, `${locale}.json`);
        if (pathToFile === pathToBaseFile) {
            return;
        }

        let total = 0;
        let translated = 0;

        const languageJson = require(pathToFile);
        for (let key in baseLanguageJson) {
            total += 1;
            if (key in languageJson) {
                translated += 1;
            }
        }

        summary[locale] = Math.round(translated / total * 10000) / 100;
    });

    console.log('Translations summary:');
    for (let key in summary) {
        console.log(`${key}, translated ${summary[key]}%`);
    }
}

main();