summaryrefslogtreecommitdiffstats
path: root/scripts/build-locales-coverage.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build-locales-coverage.js')
-rw-r--r--scripts/build-locales-coverage.js37
1 files changed, 37 insertions, 0 deletions
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",
+);