Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2577344
compare
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
compare
View Options
#!/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)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jun 24, 5:44 AM (8 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
177626
Default Alt Text
compare (1 KB)
Attached To
Mode
rPUFE pleroma-fe-upstream
Attached
Detach File
Event Timeline
Log In to Comment