From 72ece7c00b091011617fccf719df7f602cf4f7c7 Mon Sep 17 00:00:00 2001 From: kj_sh604 Date: Sun, 15 Mar 2026 16:19:36 -0400 Subject: refactor: scripts/ --- scripts/build-locales-coverage.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 scripts/build-locales-coverage.js (limited to 'scripts/build-locales-coverage.js') diff --git a/scripts/build-locales-coverage.js b/scripts/build-locales-coverage.js new file mode 100644 index 0000000..bab7f2f --- /dev/null +++ b/scripts/build-locales-coverage.js @@ -0,0 +1,37 @@ +const { readdirSync, writeFileSync } = require("fs"); +const files = readdirSync(`${__dirname}/../packages/excalidraw/locales`); + +const flatten = (object = {}, result = {}, extraKey = "") => { + for (const key in object) { + if (typeof object[key] !== "object") { + result[extraKey + key] = object[key]; + } else { + flatten(object[key], result, `${extraKey}${key}.`); + } + } + return result; +}; + +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}/../packages/excalidraw/locales/${currentLocale}`), + ); + + const allKeys = Object.keys(data); + const translatedKeys = allKeys.filter((item) => data[item] !== ""); + const percentage = Math.floor((100 * translatedKeys.length) / allKeys.length); + percentages[currentLocale.replace(".json", "")] = percentage; +} + +writeFileSync( + `${__dirname}/../packages/excalidraw/locales/percentages.json`, + `${JSON.stringify(percentages, null, 2)}\n`, + "utf8", +); -- cgit v1.2.3