From 2563649b3e84e8f1f94950039230d8299d24da71 Mon Sep 17 00:00:00 2001 From: Scott Yoshizawa Date: Wed, 20 May 2015 17:46:49 -0500 Subject: [PATCH] NLS /red/nodes NLS other js files under /red NLS /red files (changed based on Nick's review) --- locales/en-US/runtime.json | 33 +++++++++++++++++++++++++-- red.js | 14 ++++++------ red/api/library.js | 8 +++---- red/nodes/Flow.js | 4 ++-- red/nodes/index.js | 7 +++--- red/nodes/registry/loader.js | 3 ++- red/nodes/registry/localfilesystem.js | 3 ++- red/settings.js | 7 +++--- red/storage/index.js | 17 ++++++++++---- 9 files changed, 69 insertions(+), 27 deletions(-) diff --git a/locales/en-US/runtime.json b/locales/en-US/runtime.json index 72e7e3b44..6d5483479 100644 --- a/locales/en-US/runtime.json +++ b/locales/en-US/runtime.json @@ -54,6 +54,11 @@ "error-send": "Communication send error: __message__" }, + "settings": { + "not-available": "Settings not available", + "property-read-only": "Property '__prop__' is read-only" + }, + "nodes": { "credentials": { "error":"Error loading credentials: __message__", @@ -77,15 +82,39 @@ "stopped": "Stopped", "missing-types": "Waiting for missing types to be registered:" + }, + "flow": { + "unknown-type": "Unknown type: __type__", + "missing-types": "missing types" + }, + "index": { + "unrecognised-id": "Unrecognised id: __id__", + "type-in-use": "Type in use: __msg__", + "unrecognised-module": "Unrecognised module: __module__" + }, + "registry": { + "localfilesystem": { + "module-not-found": "Cannot find module '__module__'" + } } }, "storage": { + "index": { + "forbidden-flow-name": "forbidden flow name" + }, "localfilesystem": { "user-dir": "User directory : __path__", "flows-file": "Flows file : __path__", "create": "Creating new flow file" } - } - + }, + + "httpadminauth-deprecated": "use of httpAdminAuth is deprecated. Use adminAuth instead", + "unable-to-listen": "Unable to listen on __listenpath__", + "port-in-use": "Error: port in use", + "uncaught-exception": "Uncaught Exception:", + "admin-ui-disabled": "Admin UI disabled", + "server-now-running": "Server now running at __listenpath__", + "failed-to-start-server": "Failed to start server:" } diff --git a/red.js b/red.js index 20f501f05..78f7b7f4a 100755 --- a/red.js +++ b/red.js @@ -166,7 +166,7 @@ try { } if (settings.httpAdminRoot !== false && settings.httpAdminAuth) { - RED.log.warn("use of httpAdminAuth is deprecated. Use adminAuth instead"); + RED.log.warn(log._("httpadminauth-deprecated")); app.use(settings.httpAdminRoot, express.basicAuth(function(user, pass) { return user === settings.httpAdminAuth.user && crypto.createHash('md5').update(pass,'utf8').digest('hex') === settings.httpAdminAuth.pass; @@ -216,10 +216,10 @@ RED.start().then(function() { if (settings.httpAdminRoot !== false || settings.httpNodeRoot !== false || settings.httpStatic) { server.on('error', function(err) { if (err.errno === "EADDRINUSE") { - RED.log.error('Unable to listen on '+getListenPath()); - RED.log.error('Error: port in use'); + RED.log.error(log._("unable-to-listen", {listenpath:getListenPath()})); + RED.log.error(log._("port-in-use")); } else { - RED.log.error('Uncaught Exception:'); + RED.log.error(log._("uncaught-exception")); if (err.stack) { RED.log.error(err.stack); } else { @@ -230,16 +230,16 @@ RED.start().then(function() { }); server.listen(settings.uiPort,settings.uiHost,function() { if (settings.httpAdminRoot === false) { - RED.log.info('Admin UI disabled'); + RED.log.info(log._("admin-ui-disabled")); } process.title = 'node-red'; - RED.log.info('Server now running at '+getListenPath()); + RED.log.info(log._("server-now-running", {listenpath:getListenPath()})); }); } else { util.log('[red] Running in headless mode'); } }).otherwise(function(err) { - RED.log.error("Failed to start server:"); + RED.log.error(log._("failed-to-start-server")); if (err.stack) { RED.log.error(err.stack); } else { diff --git a/red/api/library.js b/red/api/library.js index e03f4bd56..e699fa3a7 100644 --- a/red/api/library.js +++ b/red/api/library.js @@ -36,7 +36,7 @@ function createLibrary(type) { }).otherwise(function(err) { if (err) { log.warn(log._("api.library.error-load-entry",{path:path,message:err})); - if (err.message.indexOf('forbidden') === 0) { + if (err.code === 'forbidden') { log.audit({event: "library.get",type:type,error:"forbidden"},req); res.send(403); return; @@ -58,7 +58,7 @@ function createLibrary(type) { res.send(204); }).otherwise(function(err) { log.warn(log._("api.library.error-save-entry",{path:path,message:err})); - if (err.message.indexOf('forbidden') === 0) { + if (err.code === 'forbidden') { log.audit({event: "library.set",type:type,error:"forbidden"},req); res.send(403); return; @@ -90,7 +90,7 @@ module.exports = { }).otherwise(function(err) { if (err) { log.warn(log._("api.library.error-load-flow",{path:req.params[0],message:err})); - if (err.message.indexOf('forbidden') === 0) { + if (err.code === 'forbidden') { log.audit({event: "library.get",type:"flow",path:req.params[0],error:"forbidden"},req); res.send(403); return; @@ -107,7 +107,7 @@ module.exports = { res.send(204); }).otherwise(function(err) { log.warn(log._("api.library.error-save-flow",{path:req.params[0],message:err})); - if (err.message.indexOf('forbidden') === 0) { + if (err.code === 'forbidden') { log.audit({event: "library.set",type:"flow",path:req.params[0],error:"forbidden"},req); res.send(403); return; diff --git a/red/nodes/Flow.js b/red/nodes/Flow.js index 278667280..1cc34c74b 100644 --- a/red/nodes/Flow.js +++ b/red/nodes/Flow.js @@ -43,7 +43,7 @@ function createNode(type,config) { }); } } else { - Log.error("Unknown type: "+type); + Log.error(Log._("nodes.flow.unknown-type", {type:type})); } return nn; } @@ -368,7 +368,7 @@ Flow.prototype.start = function(configDiff) { this.started = true; if (this.missingTypes.length > 0) { - throw new Error("missing types"); + throw new Error(Log._("nodes.flow.missing-types")); } events.emit("nodes-starting"); diff --git a/red/nodes/index.js b/red/nodes/index.js index d1c84b8a1..5a57481f6 100644 --- a/red/nodes/index.js +++ b/red/nodes/index.js @@ -17,6 +17,7 @@ var registry = require("./registry"); var credentials = require("./credentials"); var flows = require("./flows"); var Node = require("./Node"); +var log = require("../log"); /** * Registers a node constructor @@ -61,7 +62,7 @@ function init(_settings,storage,app) { function checkTypeInUse(id) { var nodeInfo = registry.getNodeInfo(id); if (!nodeInfo) { - throw new Error("Unrecognised id: "+id); + throw new Error(log._("nodes.index.unrecognised-id", {id:id})); } else { var inUse = {}; var config = flows.getFlows(); @@ -76,7 +77,7 @@ function checkTypeInUse(id) { }); if (nodesInUse.length > 0) { var msg = nodesInUse.join(", "); - var err = new Error("Type in use: "+msg); + var err = new Error(log._("nodes.index.type-in-use", {msg:msg})); err.code = "type_in_use"; throw err; } @@ -91,7 +92,7 @@ function removeNode(id) { function removeModule(module) { var info = registry.getModuleInfo(module); if (!info) { - throw new Error("Unrecognised module: "+module); + throw new Error(log._("nodes.index.unrecognised-module", {module:module})); } else { for (var i=0;i