From ccd867d388a6a69eba3de4e769219338ae4caeb8 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 23 Aug 2019 21:43:12 -0700 Subject: [PATCH] Adding a translation report tool. - Fixes #231 --- README.md | 11 +++++++++++ ui/translation_report.ts | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 ui/translation_report.ts diff --git a/README.md b/README.md index 7830991f8..7b0ebb4ea 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,17 @@ If you'd like to add translations, take a look a look at the [english translatio - Languages supported: English (`en`), Chinese (`zh`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`). +### Report + +lang | missing | percent +--- | --- | --- +es | cross_posts,cross_post,by,to,transfer_community,transfer_site | 96% +de | cross_posts,cross_post,users,settings,subscribed,expires,nsfw,show_nsfw,crypto,monero,joined,by,to,transfer_community,transfer_site | 91% +zh | cross_posts,cross_post,users,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site | 93% +fr | cross_posts,cross_post,users,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site | 93% +sv | cross_posts,cross_post,settings,nsfw,show_nsfw,monero,by,to,transfer_community,transfer_site | 94% +ru | cross_posts,cross_post,monero,by,to,transfer_community,transfer_site | 96% + ## Credits Icon made by Andy Cuccaro (@andycuccaro). diff --git a/ui/translation_report.ts b/ui/translation_report.ts new file mode 100644 index 000000000..41d0401e9 --- /dev/null +++ b/ui/translation_report.ts @@ -0,0 +1,33 @@ +import { en } from './src/translations/en'; +import { es } from './src/translations/es'; +import { de } from './src/translations/de'; +import { zh } from './src/translations/zh'; +import { fr } from './src/translations/fr'; +import { sv } from './src/translations/sv'; +import { ru } from './src/translations/ru'; + +let files = [ + {t: es, n: 'es'}, + {t: de, n: 'de'}, + {t: zh, n: 'zh'}, + {t: fr, n: 'fr'}, + {t: sv, n: 'sv'}, + {t: ru, n: 'ru'}, +]; +let masterKeys = Object.keys(en.translation); + +let report = 'lang | missing | percent\n'; +report += '--- | --- | ---\n'; + +for (let file of files) { + let keys = Object.keys(file.t.translation); + let pct: number = (keys.length / masterKeys.length * 100); + let missing = difference(masterKeys, keys); + report += `${file.n} | ${missing} | ${pct.toFixed(0)}%\n`; +} + +console.log(report); + +function difference(a: Array, b: Array): Array { + return a.filter(x => !b.includes(x)); +}