1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 08:09:15 +01:00
metamask-extension/development/verify-locale-strings.js

96 lines
2.3 KiB
JavaScript
Raw Normal View History

2018-03-19 17:51:51 +01:00
////////////////////////////////////////////////////////////////////////////////
//
// Locale verification script
//
// usage:
//
// node app/scripts/verify-locale-strings.js <locale>
//
// will check the given locale against the strings in english
//
////////////////////////////////////////////////////////////////////////////////
var fs = require('fs')
var path = require('path')
console.log('Locale Verification')
var locale = process.argv[2]
if (!locale || locale == '') {
console.log('Must enter a locale as argument. exitting')
process.exit(1)
}
console.log("verifying for locale " + locale)
localeFilePath = path.join(process.cwd(), 'app', '_locales', locale, 'messages.json')
try {
localeObj = JSON.parse(fs.readFileSync(localeFilePath, 'utf8'));
} catch (e) {
if(e.code == 'ENOENT') {
console.log('Locale file not found')
} else {
console.log('Error opening your locale file: ', e)
}
process.exit(1)
}
englishFilePath = path.join(process.cwd(), 'app', '_locales', 'en', 'messages.json')
try {
englishObj = JSON.parse(fs.readFileSync(englishFilePath, 'utf8'));
} catch (e) {
if(e.code == 'ENOENT') {
console.log("English File not found")
} else {
console.log("Error opening english locale file: ", e)
}
process.exit(1)
}
console.log('\tverifying whether all your locale strings are contained in the english one')
var counter = 0
2018-03-19 18:16:11 +01:00
var foundErrorA = false
2018-03-19 17:51:51 +01:00
var notFound = [];
Object.keys(localeObj).forEach(function(key){
if (!englishObj[key]) {
2018-03-19 18:16:11 +01:00
foundErrorA = true
2018-03-19 17:51:51 +01:00
notFound.push(key)
}
counter++
})
2018-03-19 18:16:11 +01:00
if (foundErrorA) {
2018-03-19 17:51:51 +01:00
console.log('\nThe following string(s) is(are) not found in the english locale:')
notFound.forEach(function(key) {
console.log(key)
})
2018-03-19 18:16:11 +01:00
} else {
console.log('\tall ' + counter +' strings declared in your locale were found in the english one')
2018-03-19 17:51:51 +01:00
}
console.log('\n\tverifying whether your locale contains all english strings')
var counter = 0
2018-03-19 18:16:11 +01:00
var foundErrorB = false
2018-03-19 17:51:51 +01:00
var notFound = [];
Object.keys(englishObj).forEach(function(key){
if (!localeObj[key]) {
2018-03-19 18:16:11 +01:00
foundErrorB = true
2018-03-19 17:51:51 +01:00
notFound.push(key)
}
counter++
})
2018-03-19 18:16:11 +01:00
if (foundErrorB) {
2018-03-19 17:51:51 +01:00
console.log('\nThe following string(s) is(are) not found in the your locale:')
notFound.forEach(function(key) {
console.log(key)
})
2018-03-19 18:16:11 +01:00
} else {
console.log('\tall ' + counter +' english strings were found in your locale!')
2018-03-19 17:51:51 +01:00
}
2018-03-19 18:16:11 +01:00
if (!foundErrorA && !foundErrorB) {
console.log('You are good to go')
}