21 lines
584 B
JavaScript
21 lines
584 B
JavaScript
|
const crypto = require('crypto');
|
||
|
const fs = require('fs');
|
||
|
const glob = require('glob');
|
||
|
|
||
|
function generateChecksum(str, algorithm, encoding) {
|
||
|
return crypto
|
||
|
.createHash(algorithm || 'md5')
|
||
|
.update(str, 'utf8')
|
||
|
.digest(encoding || 'hex');
|
||
|
}
|
||
|
|
||
|
const result = {};
|
||
|
|
||
|
glob.sync(`public/locales/**/*.json`).forEach((path) => {
|
||
|
const [_, lang] = path.split('public/locales');
|
||
|
const content = fs.readFileSync(path, { encoding: 'utf-8' });
|
||
|
result[lang.replace('.json', '')] = generateChecksum(content);
|
||
|
});
|
||
|
|
||
|
fs.writeFileSync('./i18n-translations-hash.json', JSON.stringify(result));
|