umami/scripts/check-lang.js

40 lines
1.0 KiB
JavaScript
Raw Normal View History

2022-11-04 05:33:37 +01:00
/* eslint-disable no-console */
const fs = require('fs');
const path = require('path');
const chalk = require('chalk');
const messages = require('../src/lang/en-US.json');
2020-10-22 04:35:59 +02:00
const ignore = require('../lang-ignore.json');
const dir = path.resolve(__dirname, '../lang');
const files = fs.readdirSync(dir);
const keys = Object.keys(messages).sort();
2020-10-22 19:36:08 +02:00
const filter = process.argv?.[2];
files.forEach(file => {
if (file !== 'en-US.json') {
const lang = require(`../lang/${file}`);
2020-10-14 07:59:06 +02:00
const id = file.replace('.json', '');
2020-10-22 19:36:08 +02:00
if (filter && filter !== id) {
return;
}
2020-10-15 02:22:46 +02:00
console.log(chalk.yellowBright(`\n## ${file.replace('.json', '')}`));
2020-10-14 23:16:00 +02:00
let count = 0;
keys.forEach(key => {
const orig = messages[key];
const check = lang[key];
const ignored = ignore[id] === '*' || ignore[id]?.includes(key);
2020-10-14 07:59:06 +02:00
if (!ignored && (!check || check === orig)) {
console.log(chalk.redBright('*'), chalk.greenBright(`${key}:`), orig);
2020-10-14 23:16:00 +02:00
count++;
}
});
2020-10-14 23:16:00 +02:00
if (count === 0) {
console.log('**Complete!**');
2020-10-14 23:16:00 +02:00
}
}
});