diff options
Diffstat (limited to 'ui/translation_report.ts')
-rw-r--r-- | ui/translation_report.ts | 55 |
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; -} |