const { readdirSync, writeFileSync } = require("fs");
const files = readdirSync(`${__dirname}/../src/locales`);

const flatten = (object) =>
  Object.keys(object).reduce(
    (initial, current) => ({ ...initial, ...object[current] }),
    {},
  );

const locales = files.filter(
  (file) => file !== "README.md" && file !== "percentages.json",
);

const percentages = {};

for (let index = 0; index < locales.length; index++) {
  const currentLocale = locales[index];
  const data = flatten(require(`${__dirname}/../src/locales/${currentLocale}`));

  const allKeys = Object.keys(data);
  const translatedKeys = allKeys.filter((item) => data[item] !== "");

  const percentage = (100 * translatedKeys.length) / allKeys.length;

  percentages[currentLocale.replace(".json", "")] = parseInt(percentage);
}

writeFileSync(
  `${__dirname}/../src/locales/percentages.json`,
  `${JSON.stringify(percentages, null, 2)}\n`,
  "utf8",
);