Merge pull request #3612 from hermanjunge/locale-verification
Add script to verify locale stringsfeature/default_network_editable
commit
a3c1a92513
@ -0,0 +1,96 @@ |
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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 |
||||
var foundErrorA = false |
||||
var notFound = []; |
||||
Object.keys(localeObj).forEach(function(key){ |
||||
if (!englishObj[key]) { |
||||
foundErrorA = true |
||||
notFound.push(key) |
||||
} |
||||
counter++ |
||||
}) |
||||
|
||||
if (foundErrorA) { |
||||
console.log('\nThe following string(s) is(are) not found in the english locale:') |
||||
notFound.forEach(function(key) { |
||||
console.log(key) |
||||
}) |
||||
} else { |
||||
console.log('\tall ' + counter +' strings declared in your locale were found in the english one') |
||||
} |
||||
|
||||
console.log('\n\tverifying whether your locale contains all english strings') |
||||
|
||||
var counter = 0 |
||||
var foundErrorB = false |
||||
var notFound = []; |
||||
Object.keys(englishObj).forEach(function(key){ |
||||
if (!localeObj[key]) { |
||||
foundErrorB = true |
||||
notFound.push(key) |
||||
} |
||||
counter++ |
||||
}) |
||||
|
||||
if (foundErrorB) { |
||||
console.log('\nThe following string(s) is(are) not found in the your locale:') |
||||
notFound.forEach(function(key) { |
||||
console.log(key) |
||||
}) |
||||
} else { |
||||
console.log('\tall ' + counter +' english strings were found in your locale!') |
||||
} |
||||
|
||||
if (!foundErrorA && !foundErrorB) { |
||||
console.log('You are good to go') |
||||
} |
Loading…
Reference in new issue