Skip to content

Commit f7f9011

Browse files
committed
Add check_messages.js
1 parent db78632 commit f7f9011

3 files changed

Lines changed: 53 additions & 17 deletions

File tree

tools/check_messages.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const messagesUtils = require('./messagesUtils.js');
2+
3+
function checkMessages(messages) {
4+
const langCodes = messagesUtils.getLangCodes(messages);
5+
const messageKeys = messagesUtils.getAllMessageKeys(messages, langCodes);
6+
let ok = true;
7+
for (const lang of langCodes) {
8+
for (const key of messageKeys) {
9+
if (!Object.hasOwn(messages[lang], key)) {
10+
process.stderr.write(`Missing: ${lang}.${key}\n`);
11+
ok = false;
12+
}
13+
}
14+
}
15+
return ok;
16+
}
17+
18+
if (process.argv.length !== 3) {
19+
process.stderr.write("usage: check_messages.js file\n");
20+
process.exit(2);
21+
}
22+
23+
const filename = process.argv[2];
24+
25+
const messages = messagesUtils.loadMessages(filename);
26+
27+
const ok = checkMessages(messages);
28+
if (!ok) {
29+
process.exit(1);
30+
}

tools/messages2tsv.js

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
const fs = require('fs');
2+
const messagesUtils = require('./messagesUtils.js');
23

34
function writeTSV(messages, stream) {
4-
const langCodes = getLangCodes(messages);
5-
const messageKeys = getAllMessageKeys(messages, langCodes);
5+
const langCodes = messagesUtils.getLangCodes(messages);
6+
const messageKeys = messagesUtils.getAllMessageKeys(messages, langCodes);
67
// Header
78
stream.write("keys");
89
for (const lang of langCodes) {
@@ -24,20 +25,6 @@ function writeTSV(messages, stream) {
2425
}
2526
}
2627

27-
function getLangCodes(messages) {
28-
return Object.keys(messages).sort();
29-
}
30-
31-
function getAllMessageKeys(messages, langCodes) {
32-
const messageKeys = new Set();
33-
for (const lang of langCodes) {
34-
for (const key of Object.keys(messages[lang])) {
35-
messageKeys.add(key);
36-
}
37-
}
38-
return Array.from(messageKeys).sort();
39-
}
40-
4128
if (process.argv.length !== 4) {
4229
process.stderr.write("usage: messages2tsv.js output-file input-file\n");
4330
process.exit(2);
@@ -46,7 +33,7 @@ if (process.argv.length !== 4) {
4633
const outputFilename = process.argv[2];
4734
const inputFilename = process.argv[3];
4835

49-
const messages = JSON.parse(fs.readFileSync(inputFilename, {encoding: 'utf8'}));
36+
const messages = messagesUtils.loadMessages(inputFilename);
5037
const outStream = fs.createWriteStream(outputFilename, {encoding: 'utf8'});
5138

5239
writeTSV(messages, outStream);

tools/messagesUtils.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const fs = require('fs');
2+
3+
exports.loadMessages = function(filename) {
4+
return JSON.parse(fs.readFileSync(filename, {encoding: 'utf8'}));
5+
};
6+
7+
exports.getLangCodes = function(messages) {
8+
return Object.keys(messages).sort();
9+
};
10+
11+
exports.getAllMessageKeys = function(messages, langCodes) {
12+
const messageKeys = new Set();
13+
for (const lang of langCodes) {
14+
for (const key of Object.keys(messages[lang])) {
15+
messageKeys.add(key);
16+
}
17+
}
18+
return Array.from(messageKeys).sort();
19+
};

0 commit comments

Comments
 (0)