diff options
| author | Henry Jameson <me@hjkos.com> | 2019-07-28 13:30:29 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2019-07-28 13:30:29 +0300 |
| commit | b3aff9bbae77b2fd34b2267ce9196c0ebd3e4691 (patch) | |
| tree | 1219e00b6bfe6784add1578a3bc986c1dbb5f34d /src/i18n/compare | |
| parent | 7f6f025792dcb3a10c94c8952d0312abd0b46989 (diff) | |
| parent | 4827e4d972f8ee11e606693e24ae4ca21711c6b1 (diff) | |
Merge remote-tracking branch 'upstream/develop' into emoji-selector-update
* upstream/develop: (469 commits)
Feature/add sticker picker
guard more secure routes
guard secure routes by redirecting to root
closest can returns itself as well
find inside status-content div only
try to use the closest a tag as target
Update es.json
Also apply keyword filter to subjects
Remove files I accidentally pushed in
fix issues caused by merges in usersearch on @
Add user search at
fix eslint warnings
remove vue-popperjs
fix moderation menu partially hidden by usercard boundary
migrate popper css
rewrite ModerationTools using v-tooltip
make popover position for status action dropdow relative to parent node
rewrite ExtraButtons using v-tooltip
install v-tooltip
i18n/Update pedantic Japanese translation
...
Diffstat (limited to 'src/i18n/compare')
| -rwxr-xr-x | src/i18n/compare | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/i18n/compare b/src/i18n/compare new file mode 100755 index 00000000..4dc1e47d --- /dev/null +++ b/src/i18n/compare @@ -0,0 +1,49 @@ +#!/usr/bin/env node +const arg = process.argv[2] + +if (typeof arg === 'undefined') { + console.log('This is a very simple and tiny tool that checks en.json with any other language and') + console.log('outputs all the things present in english but missing in foreign language.') + console.log('') + console.log('Usage: ./compare.js <lang> ') + console.log(' or') + console.log(' node ./compare.js <lang>') + console.log('') + console.log('Where <lang> is name of .json file containing language. For ./fi.json it should be:') + console.log(' ./compare.js fi ') + console.log('') + console.log('Limitations: ') + console.log('* This program does not work with languages left over in messages.js') + console.log('* This program does not check for extra strings present in foreign language but missing') + console.log(' in english.js (for now)') + console.log('') + console.log('There are no other arguments or options. Make an issue if you encounter a bug or want') + console.log('some feature to be implemented. Merge requests are welcome as well.') + process.exit() +} + +const english = require('./en.json') +const foreign = require(`./${arg}.json`) + +function walker (a, b, path = []) { + Object.keys(a).forEach(k => { + const aVal = a[k] + const bVal = b[k] + const aType = typeof aVal + const bType = typeof bVal + const currentPath = [...path, k] + const article = aType[0] === 'o' ? 'an' : 'a' + + if (bType === 'undefined') { + console.log(`Foreign language is missing ${article} ${aType} at path ${currentPath.join('.')}`) + } else if (aType === 'object') { + if (bType !== 'object') { + console.log(`Type mismatch! English has ${aType} while foreign has ${bType} at path ${currentPath.join['.']}`) + } else { + walker(aVal, bVal, currentPath) + } + } + }) +} + +walker(english, foreign) |
