v1.18.x
Julian Lam 10 years ago
parent e2c4f668a1
commit ad38c55b12

@ -364,6 +364,15 @@ var fs = require('fs'),
translator.addTranslation(language, filename, lang.file); translator.addTranslation(language, filename, lang.file);
}); });
var fallbackPath;
for(var resource in Plugins.customLanguageFallbacks) {
fallbackPath = Plugins.customLanguageFallbacks[resource];
params.router.get('/language/:lang/' + resource + '.json', function(req, res, next) {
winston.verbose('[translator] No resource file found for ' + req.params.lang + '/' + resource + ', using provided fallback language file');
res.sendFile(fallbackPath);
});
}
callback(null); callback(null);
} }

@ -159,7 +159,8 @@ module.exports = function(Plugins) {
return callback(); return callback();
} }
var pathToFolder = path.join(__dirname, '../../node_modules/', pluginData.id, pluginData.languages); var pathToFolder = path.join(__dirname, '../../node_modules/', pluginData.id, pluginData.languages),
fallbackMap = {};
utils.walk(pathToFolder, function(err, languages) { utils.walk(pathToFolder, function(err, languages) {
var arr = []; var arr = [];
@ -183,13 +184,20 @@ module.exports = function(Plugins) {
route: pathToLang.replace(pathToFolder, '') route: pathToLang.replace(pathToFolder, '')
}); });
if (pluginData.defaultLang) {
fallbackMap[path.basename(pathToLang, '.json')] = path.join(pathToFolder, pluginData.defaultLang, path.basename(pathToLang));
}
next(); next();
}); });
}, function(err) { }, function(err) {
if (err) { if (err) {
return callback(err); return callback(err);
} }
Plugins.customLanguages = Plugins.customLanguages.concat(arr); Plugins.customLanguages = Plugins.customLanguages.concat(arr);
Plugins.customLanguageFallbacks = fallbackMap;
callback(); callback();
}); });
}); });

Loading…
Cancel
Save