attempt at making it work
This commit is contained in:
parent
77db9c5c69
commit
fd171da0dc
3 changed files with 5 additions and 5 deletions
49
src/i18n/compare
Executable file
49
src/i18n/compare
Executable file
|
@ -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)
|
Loading…
Add table
Add a link
Reference in a new issue