Expose i18n in editor

This commit is contained in:
Nick O'Leary
2015-05-06 22:14:00 +01:00
parent 008bc98070
commit a7900940da
12 changed files with 133 additions and 38 deletions

View File

@@ -86,7 +86,7 @@ function init(adminApp,storage) {
adminApp.get("/nodes/:mod/:set",needsPermission("nodes.read"),nodes.getSet);
adminApp.put("/nodes/:mod/:set",needsPermission("nodes.write"),nodes.putSet);
adminApp.get(/^\/locales\/(.+?)\/(.*).json$/,needsPermission("nodes.read"),locales.get);
adminApp.get(/locales\/(.+)\/?$/,needsPermission("nodes.read"),locales.get);
// Library
library.init(adminApp);

View File

@@ -17,13 +17,10 @@ var i18n = require("../i18n");
module.exports = {
get: function(req,res) {
var lang = req.params[0];
var namespace = req.params[1];
var namespace = req.params[0];
namespace = namespace.replace(/\.json$/,"");
var lang = "en-US"; // TODO: determine requested lang
var catalog = i18n.catalog(namespace,lang);
if (catalog) {
res.json(catalog);
} else {
res.send(404);
}
res.json(catalog||{});
}
}

View File

@@ -37,7 +37,6 @@ function registerMessageCatalog(namespace,dir,file) {
return when.promise(function(resolve,reject) {
resourceMap[namespace] = { basedir:dir, file:file};
i18n.loadNamespace(namespace,function() {
//console.log(namespace,dir);
resolve();
});
});
@@ -47,14 +46,16 @@ var MessageFileLoader = {
fetchOne: function(lng, ns, callback) {
if (resourceMap[ns]) {
var file = path.join(resourceMap[ns].basedir,lng,resourceMap[ns].file);
//console.log(file);
fs.readFile(file,"utf8",function(err,content) {
if (err) {
callback(err);
} else {
try {
//console.log(">>",ns,file);
//console.log(">>",ns,file,lng);
resourceCache[ns] = resourceCache[ns]||{};
resourceCache[ns][lng] = JSON.parse(content.replace(/^\uFEFF/, ''));
//console.log(resourceCache[ns][lng]);
callback(null, resourceCache[ns][lng]);
} catch(e) {
callback(e);
@@ -84,6 +85,8 @@ function init() {
}
function getCatalog(namespace,lang) {
//console.log("+",namespace,lang);
//console.log(resourceCache[namespace][lang]);
var result = null;
if (resourceCache.hasOwnProperty(namespace)) {
result = resourceCache[namespace][lang];
@@ -94,6 +97,7 @@ function getCatalog(namespace,lang) {
}
}
}
//console.log(result);
return result;
}