mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Add RED.actions.getLabel to retrieve action i18n label
This commit is contained in:
parent
22879f8c23
commit
ea46947054
@ -21,6 +21,34 @@ RED.actions = (function() {
|
|||||||
function getAction(name) {
|
function getAction(name) {
|
||||||
return actions[name].handler;
|
return actions[name].handler;
|
||||||
}
|
}
|
||||||
|
function getActionLabel(name) {
|
||||||
|
let def = actions[name]
|
||||||
|
if (!def) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
if (!def.label) {
|
||||||
|
var options = def.options;
|
||||||
|
var key = options ? options.label : undefined;
|
||||||
|
if (!key) {
|
||||||
|
key = "action-list." +name.replace(/^.*:/,"");
|
||||||
|
}
|
||||||
|
var label = RED._(key);
|
||||||
|
if (label === key) {
|
||||||
|
// no translation. convert `name` to description
|
||||||
|
label = name.replace(/(^.+:([a-z]))|(-([a-z]))/g, function() {
|
||||||
|
if (arguments[5] === 0) {
|
||||||
|
return arguments[2].toUpperCase();
|
||||||
|
} else {
|
||||||
|
return " "+arguments[4].toUpperCase();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
def.label = label;
|
||||||
|
}
|
||||||
|
return def.label
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function invokeAction() {
|
function invokeAction() {
|
||||||
var args = Array.prototype.slice.call(arguments);
|
var args = Array.prototype.slice.call(arguments);
|
||||||
var name = args.shift();
|
var name = args.shift();
|
||||||
@ -31,7 +59,7 @@ RED.actions = (function() {
|
|||||||
}
|
}
|
||||||
function listActions() {
|
function listActions() {
|
||||||
var result = [];
|
var result = [];
|
||||||
var missing = [];
|
|
||||||
Object.keys(actions).forEach(function(action) {
|
Object.keys(actions).forEach(function(action) {
|
||||||
var def = actions[action];
|
var def = actions[action];
|
||||||
var shortcut = RED.keyboard.getShortcut(action);
|
var shortcut = RED.keyboard.getShortcut(action);
|
||||||
@ -42,28 +70,8 @@ RED.actions = (function() {
|
|||||||
isUser = !!RED.keyboard.getUserShortcut(action);
|
isUser = !!RED.keyboard.getUserShortcut(action);
|
||||||
}
|
}
|
||||||
if (!def.label) {
|
if (!def.label) {
|
||||||
var name = action;
|
def.label = getActionLabel(action)
|
||||||
var options = def.options;
|
|
||||||
var key = options ? options.label : undefined;
|
|
||||||
if (!key) {
|
|
||||||
key = "action-list." +name.replace(/^.*:/,"");
|
|
||||||
}
|
|
||||||
var label = RED._(key);
|
|
||||||
if (label === key) {
|
|
||||||
// no translation. convert `name` to description
|
|
||||||
label = name.replace(/(^.+:([a-z]))|(-([a-z]))/g, function() {
|
|
||||||
if (arguments[5] === 0) {
|
|
||||||
return arguments[2].toUpperCase();
|
|
||||||
} else {
|
|
||||||
return " "+arguments[4].toUpperCase();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
missing.push(key);
|
|
||||||
}
|
|
||||||
def.label = label;
|
|
||||||
}
|
}
|
||||||
//console.log("; missing:", missing);
|
|
||||||
|
|
||||||
result.push({
|
result.push({
|
||||||
id:action,
|
id:action,
|
||||||
scope:shortcut?shortcut.scope:undefined,
|
scope:shortcut?shortcut.scope:undefined,
|
||||||
@ -79,6 +87,7 @@ RED.actions = (function() {
|
|||||||
add: addAction,
|
add: addAction,
|
||||||
remove: removeAction,
|
remove: removeAction,
|
||||||
get: getAction,
|
get: getAction,
|
||||||
|
getLabel: getActionLabel,
|
||||||
invoke: invokeAction,
|
invoke: invokeAction,
|
||||||
list: listActions
|
list: listActions
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user