added testlang to help translators

This commit is contained in:
RemixDev 2022-01-08 10:58:05 +01:00
parent dcc3bbaa60
commit 2e20c6cd91
23 changed files with 226 additions and 177 deletions

View File

@ -14,7 +14,8 @@
"lint": "eslint src/**/*.{js,vue} --fix",
"lint-tests": "eslint src/**/*.js --fix",
"test": "jest",
"test-watch": "jest --watch"
"test-watch": "jest --watch",
"testlang": "node ./tests/testlang.js"
},
"dependencies": {
"@vue/composition-api": "1.0.6",

File diff suppressed because one or more lines are too long

52
tests/testlang.js Normal file
View File

@ -0,0 +1,52 @@
async function loadLang(lang_id) {
let language_module
const result = []
try {
language_module = await import(`../src/lang/${lang_id}.mjs`)
language_module = language_module.default
} catch (e) {
language_module = {}
}
function parseObject(obj, root = '') {
for (const [key, value] of Object.entries(obj)) {
if (typeof value === 'string') {
result.push(root + key)
} else {
parseObject(value, root + key + '.')
}
}
}
parseObject(language_module)
return result
}
async function testLang(lang_id) {
const baseLangFile = await loadLang('en')
const comparedLangFile = await loadLang(lang_id)
if (comparedLangFile.length === 0) {
console.log(`Language file ${lang_id} doesn't exist!`)
return
}
console.log('\nMissing Keys:')
baseLangFile.forEach(key => {
if (!comparedLangFile.includes(key)) console.log(key)
})
console.log('\nExtra Keys:')
comparedLangFile.forEach(key => {
if (!baseLangFile.includes(key)) console.log(key)
})
}
;(async () => {
const args = process.argv.slice(2)
if (args.length !== 1) {
console.log('Usage:\nyarn testlang [COUNTRY_ID]\n')
return
}
console.log(`Testing language file ${args[0]}`)
await testLang(args[0])
console.log('')
})()