first commit
This commit is contained in:
63
www/bower_components/gettext.js/bin/po2json
vendored
Executable file
63
www/bower_components/gettext.js/bin/po2json
vendored
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env node --no-deprecation
|
||||
|
||||
/*
|
||||
po2json wrapper for gettext.js
|
||||
https://github.com/mikeedwards/po2json
|
||||
|
||||
Dump a .po file in a json like this one:
|
||||
|
||||
{
|
||||
"": {
|
||||
"language": "en",
|
||||
"plural-forms": "nplurals=2; plural=(n!=1);"
|
||||
},
|
||||
"simple key": "It's tranlation",
|
||||
"another with %1 parameter": "It's %1 tranlsation",
|
||||
"a key with plural": [
|
||||
"a plural form",
|
||||
"another plural form",
|
||||
"could have up to 6 forms with some languages"
|
||||
],
|
||||
"a context\u0004a contextualized key": "translation here"
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
var
|
||||
fs = require('fs'),
|
||||
po2json = require('po2json'),
|
||||
argv = process.argv,
|
||||
json = {},
|
||||
pretty = '-p' === argv[4];
|
||||
|
||||
if (argv.length < 4)
|
||||
return console.error("Wrong parameters.\nFormat: po2json.js input.po output.json [OPTIONS]\n-p for pretty");
|
||||
|
||||
fs.readFile(argv[2], function (err, buffer) {
|
||||
var jsonData = po2json.parse(buffer);
|
||||
|
||||
for (var key in jsonData) {
|
||||
// Special headers handling, we do not need everything
|
||||
if ('' === key) {
|
||||
json[''] = {
|
||||
'language': jsonData['']['language'],
|
||||
'plural-forms': jsonData['']['plural-forms']
|
||||
};
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
console.log(key, jsonData[key]);
|
||||
|
||||
// Do not dump untranslated keys, they already are in the templates!
|
||||
if ('' !== jsonData[key][1].length ? jsonData[key][1][0] : jsonData[key][1])
|
||||
json[key] = 2 === jsonData[key].length ? jsonData[key][1] : jsonData[key].slice(1);
|
||||
}
|
||||
|
||||
fs.writeFile(argv[3], JSON.stringify(json, null, pretty ? 4 : 0), function(err) {
|
||||
if (err)
|
||||
console.log(err);
|
||||
else
|
||||
console.log('JSON ' + (pretty ? 'pretty' : 'compactly') + ' saved to ' + argv[3]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user