Merge pull request #5383 from pitaj/master

Fix empty lines in language selectors
v1.18.x
Julian Lam 8 years ago committed by GitHub
commit a86eefc5e3

@ -52,7 +52,10 @@ Languages.list = function (callback) {
return next(err); return next(err);
} }
if (buffer) { if (buffer) {
languages.push(JSON.parse(buffer.toString())); var lang = JSON.parse(buffer.toString());
if (lang.name && lang.code && lang.dir) {
languages.push(lang);
}
} }
next(); next();
}); });

@ -5,6 +5,7 @@ var path = require('path');
var async = require('async'); var async = require('async');
var fs = require('fs'); var fs = require('fs');
var mkdirp = require('mkdirp'); var mkdirp = require('mkdirp');
var rimraf = require('rimraf');
var file = require('../file'); var file = require('../file');
var utils = require('../../public/src/utils'); var utils = require('../../public/src/utils');
@ -138,42 +139,43 @@ function getTranslationTree(callback) {
// for each plugin, fallback in this order: // for each plugin, fallback in this order:
// 1. correct language string (en-GB) // 1. correct language string (en-GB)
// 2. old language string (en_GB) // 2. old language string (en_GB)
// 3. plugin defaultLang (en-US) // 3. corrected plugin defaultLang (en-US)
// 4. old plugin defaultLang (en_US) // 4. old plugin defaultLang (en_US)
async.eachLimit(plugins, 10, function (pluginData, call) { async.eachLimit(plugins, 10, function (pluginData, call) {
var pluginLanguages = path.join(__dirname, '../../node_modules/', pluginData.id, pluginData.languages); var pluginLanguages = path.join(__dirname, '../../node_modules/', pluginData.id, pluginData.languages);
function tryLang(lang, onEnoent) { var defaultLang = pluginData.defaultLang || 'en-GB';
fs.readFile(path.join(pluginLanguages, lang, ns + '.json'), function (err, buffer) {
async.some([
lang,
lang.replace('-', '_').replace('-x-', '@'),
defaultLang.replace('_', '-').replace('@', '-x-'),
defaultLang.replace('-', '_').replace('-x-', '@'),
], function (language, next) {
fs.readFile(path.join(pluginLanguages, language, ns + '.json'), function (err, buffer) {
if (err) { if (err) {
if (err.code === 'ENOENT') { if (err.code === 'ENOENT') {
return onEnoent(); return next(null, false);
} }
return call(err); return next(err);
} }
try { try {
Object.assign(translations, JSON.parse(buffer.toString())); Object.assign(translations, JSON.parse(buffer.toString()));
call(); next(null, true);
} catch (err) { } catch (err) {
call(err); next(err);
} }
}); });
} }, call);
tryLang(lang, function () {
tryLang(lang.replace('-', '_').replace('-x-', '@'), function () {
tryLang(pluginData.defaultLang, function () {
tryLang(pluginData.defaultLang.replace('-', '_').replace('-x-', '@'), call);
});
});
});
}, function (err) { }, function (err) {
if (err) { if (err) {
return n(err); return n(err);
} }
tree[lang] = tree[lang] || {}; if (Object.keys(translations).length) {
tree[lang][ns] = translations; tree[lang] = tree[lang] || {};
tree[lang][ns] = translations;
}
n(); n();
}); });
}, },
@ -209,6 +211,9 @@ function writeLanguageFiles(tree, callback) {
exports.build = function buildLanguages(callback) { exports.build = function buildLanguages(callback) {
async.waterfall([ async.waterfall([
function (next) {
rimraf(buildLanguagesPath, next);
},
getTranslationTree, getTranslationTree,
writeLanguageFiles, writeLanguageFiles,
], function (err) { ], function (err) {

Loading…
Cancel
Save