~marten-de-vries/robomind-parser/github-master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env node

"use strict";

var PO = require('pofile');
var fs = require('fs');

var base = __dirname + '/../translations/';

try {
  fs.mkdirSync(base + 'gen');
} catch (e) {}

function generateJS(data) {
  return [
    '// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT! EDIT THE',
    '// CORRESPONDING .po(t) FILE INSTEAD.',
    '',
    'module.exports = ' + JSON.stringify(data, null, 2) + ';',
    ''
  ].join('\n');
}

PO.load(base + 'translations.pot', function (err, po) {
  var data = {};
  po.items.forEach(function (item) {
    data[item.msgid] = item.msgid;
  });
  fs.writeFile(base + 'gen/en.js', generateJS(data));
});

fs.readdir(base, function (err, files) {
  files.filter(function (file) {
    return file.substr(-3) === '.po';
  }).forEach(function (file) {
    PO.load(base + file, function (err, po) {
      var data = {};
      po.items.forEach(function (item) {
        data[item.msgid] = item.msgstr[0];
      });
      var subPath = 'gen/' + file.substr(0, file.length - 3) + '.js';
      fs.writeFile(base + subPath, generateJS(data));
    });
  });
});