Compare langs

pull/2915/head
Marcelo Schmidt 10 years ago
parent 0f7b49af46
commit a8fb38386a
  1. 65
      private/node_scripts/compare_langs.js

@ -0,0 +1,65 @@
var async = require('async');
var fs = require('fs');
var _ = require('underscore');
var googleTranslate = require('google-translate')('AIzaSyCrXsIW7UrXrx2_VDYWwo5prYk5DIo-SlM');
var path = '../rocket.chat/packages/rocketchat-lib/i18n/';
var enContents = fs.readFileSync(path + 'en.i18n.json', 'utf-8');
var en = JSON.parse(enContents);
googleTranslate.getSupportedLanguages(function(err, langs) {
if (err) {
console.log(err);
return;
}
files = fs.readdirSync(path);
async.each(files, function(file, callback) {
if (file === 'en.i18n.json') return callback();
var lang = file.replace('.i18n.json', '');
var destContents = fs.readFileSync(path + file, 'utf-8');
var destJson = JSON.parse(destContents);
var toTranslate = {};
var newContent = {};
for (key in en) {
if (destJson[key]) {
newContent[key] = destJson[key];
} else {
newContent[key] = '';
toTranslate[key] = en[key];
}
}
var invertToTranslate = _.invert(toTranslate);
var toTranslateLang = _.keys(invertToTranslate);
if (lang === 'ms-MY') {
lang = 'ms';
}
if (lang === 'ta-IN') {
lang = 'ta';
}
if (lang === 'he') {
lang = 'iw';
}
if (langs.indexOf(lang) !== -1 && toTranslateLang.length > 1) {
googleTranslate.translate(toTranslateLang, 'en', lang, function(err, translations) {
if (err) {
console.log(lang, err);
} else {
for (key in translations) {
newContent[invertToTranslate[translations[key].originalText]] = translations[key].translatedText;
}
var newJsonString = JSON.stringify(newContent, null, ' ').replace(/": "/g, '" : "');
fs.writeFileSync(path + file, newJsonString, 'utf8');
return callback();
}
});
}
});
});
Loading…
Cancel
Save