summaryrefslogtreecommitdiffstats
path: root/ui/translation_report.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ui/translation_report.ts')
-rw-r--r--ui/translation_report.ts55
1 files changed, 25 insertions, 30 deletions
diff --git a/ui/translation_report.ts b/ui/translation_report.ts
index fae0359f..73e03dbb 100644
--- a/ui/translation_report.ts
+++ b/ui/translation_report.ts
@@ -11,6 +11,20 @@ import { it } from './src/translations/it';
import { fi } from './src/translations/fi';
import fs from 'fs';
+const files = [
+ { t: de, n: 'de' },
+ { t: eo, n: 'eo' },
+ { t: es, n: 'es' },
+ { t: fi, n: 'fi' },
+ { t: fr, n: 'fr' },
+ { t: it, n: 'it' },
+ { t: nl, n: 'nl' },
+ { t: ru, n: 'ru' },
+ { t: sv, n: 'sv' },
+ { t: zh, n: 'zh' },
+];
+const masterKeys = Object.keys(en.translation);
+
const readmePath = '../README.md';
const open = '<!-- translations -->';
@@ -21,37 +35,18 @@ const readmeTxt = fs.readFileSync(readmePath, { encoding: 'utf8' });
const before = readmeTxt.split(open)[0];
const after = readmeTxt.split(close)[1];
-const report = buildReport();
+const difference = (a: Array<string>, b: Array<string>): Array<string> => a.filter(x => !b.includes(x));
+
+const report =
+ 'lang | done | missing\n' +
+ '---- | ---- | -------\n' +
+ files.map(file => {
+ const keys = Object.keys(file.t.translation);
+ const pct: number = (keys.length / masterKeys.length) * 100;
+ const missing = difference(masterKeys, keys);
+ return `${file.n} | ${pct.toFixed(0)}% | ${missing}`;
+ }).join("\n");
const alteredReadmeTxt = `${before}${open}\n\n${report}\n${close}${after}`;
fs.writeFileSync(readmePath, alteredReadmeTxt);
-
-const difference = (a: Array<string>, b: Array<string>): Array<string> => a.filter(x => !b.includes(x));
-
-function buildReport(): string {
- const files = [
- { t: de, n: 'de' },
- { t: eo, n: 'eo' },
- { t: es, n: 'es' },
- { t: fi, n: 'fi' },
- { t: fr, n: 'fr' },
- { t: it, n: 'it' },
- { t: nl, n: 'nl' },
- { t: ru, n: 'ru' },
- { t: sv, n: 'sv' },
- { t: zh, n: 'zh' },
- ];
- const masterKeys = Object.keys(en.translation);
-
- const report = 'lang | done | missing\n' +
- '--- | --- | ---\n' +
- files.map(file => {
- const keys = Object.keys(file.t.translation);
- const pct: number = (keys.length / masterKeys.length) * 100;
- const missing = difference(masterKeys, keys);
- return `${file.n} | ${pct.toFixed(0)}% | ${missing}`;
- }).join("\n");
-
- return report;
-}