Add a script to check missing translations.
This commit is contained in:
parent
75a927ed62
commit
3fba14de6c
38
checkTranslations.mjs
Normal file
38
checkTranslations.mjs
Normal file
|
@ -0,0 +1,38 @@
|
|||
import translation_en from './src/translations/en.js'
|
||||
import translation_de from './src/translations/de.js'
|
||||
import translation_ru from './src/translations/ru.js'
|
||||
import translation_nl from './src/translations/nl.js'
|
||||
import translation_fr from './src/translations/fr.js'
|
||||
|
||||
const langs = ["en", "de", "ru", "nl", "fr"];
|
||||
|
||||
const translations_dict = {
|
||||
en: translation_en,
|
||||
de: translation_de,
|
||||
ru: translation_ru,
|
||||
nl: translation_nl,
|
||||
fr: translation_fr,
|
||||
}
|
||||
|
||||
let en_keys = [...new Map(Object.entries(translations_dict.en)).keys()];
|
||||
|
||||
function arrayDiff(a, b) {
|
||||
return {
|
||||
missing: a.filter(x => !b.includes(x)),
|
||||
extra: b.filter(x => !a.includes(x)),
|
||||
};
|
||||
}
|
||||
|
||||
for (let lang_num in langs) {
|
||||
let lang = new Map(Object.entries(translations_dict[langs[lang_num]]));
|
||||
if (lang == "en") continue;
|
||||
let lang_keys = [...lang.keys()];
|
||||
let di = arrayDiff(en_keys, [...lang.keys()])
|
||||
console.log("Language:", langs[lang_num])
|
||||
if (di.missing.length > 0) {
|
||||
console.log("Missing: ", di.missing.join(", "))
|
||||
}
|
||||
if (di.extra.length > 0) {
|
||||
console.log("Extra Keys (maybe deprecated, renamed or no longer exists, check git log): ", di.extra.join(", "))
|
||||
}
|
||||
}
|
|
@ -20,3 +20,11 @@ WEBPACK_MODE=development BROWSER=google-chrome npx webpack serve
|
|||
Make sure to keep the order of comments and tags in the translation files `src/translations` the same.
|
||||
|
||||
When you want to PR an update, title it "Changed wording in..." or "Synced translations in de" or something along those lines.
|
||||
|
||||
To get a list of what languages need what translations added, run `node ./checkTranslations.mjs`
|
||||
Example:
|
||||
```
|
||||
Language: fr
|
||||
Missing: unseal_input_btn, unseal_qr_btn
|
||||
```
|
||||
Means those two missing things need to be added to french.
|
|
@ -7,7 +7,7 @@ import { MarginInline } from "../elements/MarginInline.js";
|
|||
import i18next from 'i18next';
|
||||
import QrScanner from 'qr-scanner';
|
||||
|
||||
/* eslint-disable import/no-unresolved */
|
||||
/* eslint-disable import/no-unresolved */
|
||||
import qrScannerWorkerSource from '!!raw-loader!qr-scanner/qr-scanner-worker.min.js';
|
||||
QrScanner.WORKER_PATH = URL.createObjectURL(new Blob([qrScannerWorkerSource]));
|
||||
|
||||
|
|
Loading…
Reference in a new issue