aboutsummaryrefslogtreecommitdiff
path: root/src/i18n/compare
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2019-06-16 20:24:03 +0300
committerHenry Jameson <me@hjkos.com>2019-06-16 20:24:03 +0300
commitb00da1778830853e0bed4cb1d0fa93ca09a82167 (patch)
tree8072f743384b45dc2b4a62e619bb0b1db3e3ebf9 /src/i18n/compare
parent6c7cf7d9b5f2faec03fe75881b5ec81e0ac851fd (diff)
parent1db3c785d805bfe1e7bb09f2d85875448cb03f9a (diff)
Merge remote-tracking branch 'upstream/develop' into docs
* upstream/develop: (374 commits) fix typo rename mutations according to actual property names fix fix fix logged out post-update fix user banner fix AMERICA comments No longer sending extra data, renamed some properties Revert "add TOTP/Recovery Form for mobile version" Apply suggestion to src/services/entity_normalizer/entity_normalizer.service.js i18n/Update Japanese translation render modal at the root level using portal install portal vue Small improve of the who to follow panel layout Fix/Small fix in the who to follow page remove console spam i18n wire up user.description with masto api data ...
Diffstat (limited to 'src/i18n/compare')
-rwxr-xr-xsrc/i18n/compare49
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)