diff --git a/editor/js/main.js b/editor/js/main.js
index 83749d310..f4f42b90d 100644
--- a/editor/js/main.js
+++ b/editor/js/main.js
@@ -219,12 +219,12 @@
menuOptions.push(null);
}
- menuOptions.push({id:"menu-item-user-settings",label:RED._("menu.label.userSettings"),onselect:"core:show-user-settings"});
+ menuOptions.push({id:"menu-item-user-settings",label:RED._("menu.label.settings"),onselect:"core:show-user-settings"});
menuOptions.push(null);
menuOptions.push({id:"menu-item-keyboard-shortcuts",label:RED._("menu.label.keyboardShortcuts"),onselect:"core:show-help"});
menuOptions.push({id:"menu-item-help",
- label: RED.settings.theme("menu.menu-item-help.label","Node-RED website"),
+ label: RED.settings.theme("menu.menu-item-help.label",RED._("menu.label.help")),
href: RED.settings.theme("menu.menu-item-help.url","http://nodered.org/docs")
});
menuOptions.push({id:"menu-item-node-red-version", label:"v"+RED.settings.version, onselect: "core:show-about" });
diff --git a/editor/js/ui/deploy.js b/editor/js/ui/deploy.js
index d610e83b8..b2589342f 100644
--- a/editor/js/ui/deploy.js
+++ b/editor/js/ui/deploy.js
@@ -157,8 +157,8 @@ RED.deploy = (function() {
create: function() {
$("#node-dialog-confirm-deploy").parent().find("div.ui-dialog-buttonpane")
.prepend('
'+
- ''+
- ''+
+ ' '+
+ ''+
''+
'
');
},
diff --git a/editor/js/ui/diff.js b/editor/js/ui/diff.js
index 1dfd25cdd..57918d843 100644
--- a/editor/js/ui/diff.js
+++ b/editor/js/ui/diff.js
@@ -57,7 +57,7 @@ RED.diff = (function() {
} else if (tab.type === 'subflow') {
titleSpan.html((tabForLabel.name||tabForLabel.id));
} else {
- titleSpan.html("Global nodes");
+ titleSpan.html(RED._("diff.globalNodes"));
}
var flowStats = {
local: {
@@ -133,7 +133,7 @@ RED.diff = (function() {
}
}
$('').appendTo(originalNodeDiv);
- $('').html("Flow Properties").appendTo(originalNodeDiv);
+ $('').html(RED._("diff.flowProperties")).appendTo(originalNodeDiv);
row.click(function(evt) {
evt.preventDefault();
diff --git a/editor/js/ui/editor.js b/editor/js/ui/editor.js
index dd7102b3a..ceea0beff 100644
--- a/editor/js/ui/editor.js
+++ b/editor/js/ui/editor.js
@@ -660,7 +660,7 @@ RED.editor = (function() {
function buildLabelRow(type, index, value, placeHolder) {
var result = $('',{class:"node-label-form-row"});
if (type === undefined) {
- $('
').html("none").appendTo(result);
+ $('').html(RED._("editor.noDefaultLabel")).appendTo(result);
result.addClass("node-label-form-none");
} else {
result.addClass("");
diff --git a/editor/js/ui/keyboard.js b/editor/js/ui/keyboard.js
index 9da7452b1..cb2e46a32 100644
--- a/editor/js/ui/keyboard.js
+++ b/editor/js/ui/keyboard.js
@@ -89,7 +89,7 @@ RED.keyboard = (function() {
RED.userSettings.add({
id:'keyboard',
- title: 'Keyboard',
+ title: RED._("keyboard.keyboard"),
get: getSettingsPane,
focus: function() {
setTimeout(function() {
@@ -350,7 +350,8 @@ RED.keyboard = (function() {
$(this).toggleClass("input-error",!valid);
})
- var scopeSelect = $('').appendTo(scope);
+ var scopeSelect = $('').appendTo(scope);
+ scopeSelect.i18n();
scopeSelect.val(object.scope||'*');
var div = $('').appendTo(scope);
@@ -468,9 +469,9 @@ RED.keyboard = (function() {
var pane = $('');
$('').appendTo(pane);
pane.find("input").searchBox({
diff --git a/editor/js/ui/palette-editor.js b/editor/js/ui/palette-editor.js
index 32912b5b9..fccf2c437 100644
--- a/editor/js/ui/palette-editor.js
+++ b/editor/js/ui/palette-editor.js
@@ -423,7 +423,7 @@ RED.palette.editor = (function() {
RED.userSettings.add({
id:'palette',
- title: 'Palette',
+ title: RED._("palette.editor.palette"),
get: getSettingsPane,
close: function() {
settingsPane.detach();
diff --git a/editor/js/ui/search.js b/editor/js/ui/search.js
index df36f7f5d..197ff2cbe 100644
--- a/editor/js/ui/search.js
+++ b/editor/js/ui/search.js
@@ -125,7 +125,7 @@ RED.search = (function() {
function createDialog() {
dialog = $("",{id:"red-ui-search",class:"red-ui-search"}).appendTo("#main-container");
var searchDiv = $("
",{class:"red-ui-search-container"}).appendTo(dialog);
- searchInput = $('
').appendTo(searchDiv).searchBox({
+ searchInput = $('
').appendTo(searchDiv).searchBox({
delay: 200,
change: function() {
search($(this).val());
@@ -166,6 +166,7 @@ RED.search = (function() {
}
}
});
+ searchInput.i18n();
var searchResultsDiv = $("
",{class:"red-ui-search-results-container"}).appendTo(dialog);
searchResults = $('
',{id:"search-result-list", style:"position: absolute;top: 5px;bottom: 5px;left: 5px;right: 5px;"}).appendTo(searchResultsDiv).editableList({
diff --git a/editor/js/ui/tab-info.js b/editor/js/ui/tab-info.js
index d7e876e1c..d2f37e194 100644
--- a/editor/js/ui/tab-info.js
+++ b/editor/js/ui/tab-info.js
@@ -50,11 +50,11 @@ RED.sidebar.info = (function() {
}).hide();
nodeSection = sections.add({
- title: "Node",
+ title: RED._("sidebar.info.node"),
collapsible: false
});
infoSection = sections.add({
- title: "Information",
+ title: RED._("sidebar.info.information"),
collapsible: false
});
infoSection.content.css("padding","6px");
@@ -132,15 +132,15 @@ RED.sidebar.info = (function() {
var propRow;
var subflowNode;
if (node.type === "tab") {
- nodeSection.title.html("Flow");
- propRow = $('Name | |
').appendTo(tableBody);
+ nodeSection.title.html(RED._("sidebar.info.flow"));
+ propRow = $(''+RED._("sidebar.info.tabName")+' | |
').appendTo(tableBody);
$(propRow.children()[1]).html(' '+(node.label||""))
propRow = $(''+RED._("sidebar.info.id")+" | |
").appendTo(tableBody);
RED.utils.createObjectElement(node.id).appendTo(propRow.children()[1]);
- propRow = $('Status | |
').appendTo(tableBody);
- $(propRow.children()[1]).html((!!!node.disabled)?"Enabled":"Disabled")
+ propRow = $(''+RED._("sidebar.info.status")+' | |
').appendTo(tableBody);
+ $(propRow.children()[1]).html((!!!node.disabled)?RED._("sidebar.info.enabled"):RED._("sidebar.info.disabled"))
} else {
- nodeSection.title.html("Node");
+ nodeSection.title.html(RED._("sidebar.info.node"));
if (node.type !== "subflow" && node.name) {
$(''+RED._("common.label.name")+' | '+node.name+' |
').appendTo(tableBody);
}
@@ -188,7 +188,7 @@ RED.sidebar.info = (function() {
}
}
if (count > 0) {
- $('show moreshow less |
').appendTo(tableBody);
+ $(''+RED._("sidebar.info.showMore")+''+RED._("sidebar.info.showLess")+' |
').appendTo(tableBody);
}
}
}
diff --git a/editor/js/ui/userSettings.js b/editor/js/ui/userSettings.js
index fa29b2e5a..39d3c5fd8 100644
--- a/editor/js/ui/userSettings.js
+++ b/editor/js/ui/userSettings.js
@@ -33,7 +33,7 @@ RED.userSettings = (function() {
var tabContainer;
var trayOptions = {
- title: "User Settings",
+ title: RED._("menu.label.userSettings"),
buttons: [
{
id: "node-dialog-ok",
@@ -100,7 +100,7 @@ RED.userSettings = (function() {
var viewSettings = [
{
- title: "Grid",
+ title: "menu.label.view.grid",
options: [
{setting:"view-show-grid",oldSetting:"menu-menu-item-view-show-grid",label:"menu.label.view.showGrid",toggle:true,onchange:"core:toggle-show-grid"},
{setting:"view-snap-grid",oldSetting:"menu-menu-item-view-snap-grid",label:"menu.label.view.snapGrid",toggle:true,onchange:"core:toggle-snap-grid"},
@@ -108,13 +108,13 @@ RED.userSettings = (function() {
]
},
{
- title: "Nodes",
+ title: "menu.label.nodes",
options: [
{setting:"view-node-status",oldSetting:"menu-menu-item-status",label:"menu.label.displayStatus",default: true, toggle:true,onchange:"core:toggle-status"}
]
},
{
- title: "Other",
+ title: "menu.label.other",
options: [
{setting:"view-show-tips",oldSettings:"menu-menu-item-show-tips",label:"menu.label.showTips",toggle:true,default:true,onchange:"core:toggle-show-tips"}
]
@@ -128,7 +128,7 @@ RED.userSettings = (function() {
var pane = $('');
viewSettings.forEach(function(section) {
- $('').text(section.title).appendTo(pane);
+ $('').text(RED._(section.title)).appendTo(pane);
section.options.forEach(function(opt) {
var initialState = RED.settings.get(opt.setting);
var row = $('').appendTo(pane);
@@ -169,7 +169,7 @@ RED.userSettings = (function() {
addPane({
id:'view',
- title: 'View',
+ title: RED._("menu.label.view.view"),
get: createViewPane,
close: function() {
viewSettings.forEach(function(section) {
diff --git a/editor/js/user.js b/editor/js/user.js
index 16782a773..063f4d243 100644
--- a/editor/js/user.js
+++ b/editor/js/user.js
@@ -50,7 +50,7 @@ RED.user = (function() {
for (;i",{class:"form-row"});
- $('
').appendTo(row);
+ $('
').appendTo(row);
var input = $('').appendTo(row);
if (ipayload がwebsocketから送信、受信されるデータを持ちます。クライアントはJSON形式の文字列としてメッセージ全体を送信、受信するよう設定できます。",
"path2": "This path will be relative to ",
- "url1": "URLには ws:// or wss:// スキーマを使用して、存在するwebsocketリスナを設定してください。",
+ "url1": "URLには ws:// または wss:// スキーマを使用して、存在するwebsocketリスナを設定してください。",
"url2": "標準では payload
がwebsocketから送信、受信されるデータを持ちます。クライアントはJSON形式の文字列としてメッセージ全体を送信、受信するよう設定できます。"
},
"errors": {
diff --git a/red/api/auth/index.js b/red/api/auth/index.js
index 0b33ad286..cc90dd8ce 100644
--- a/red/api/auth/index.js
+++ b/red/api/auth/index.js
@@ -84,7 +84,7 @@ function login(req,res) {
if (settings.adminAuth.type === "credentials") {
response = {
"type":"credentials",
- "prompts":[{id:"username",type:"text",label:"Username"},{id:"password",type:"password",label:"Password"}]
+ "prompts":[{id:"username",type:"text",label:"user.username"},{id:"password",type:"password",label:"user.password"}]
}
} else if (settings.adminAuth.type === "strategy") {
response = {
diff --git a/red/api/locales/en-US/editor.json b/red/api/locales/en-US/editor.json
index dd2ed4efc..4fd50f177 100644
--- a/red/api/locales/en-US/editor.json
+++ b/red/api/locales/en-US/editor.json
@@ -29,6 +29,7 @@
"label": {
"view": {
"view": "View",
+ "grid": "Grid",
"showGrid": "Show grid",
"snapGrid": "Snap to grid",
"gridSize": "Grid size",
@@ -41,12 +42,15 @@
"sidebar": {
"show": "Show sidebar"
},
- "userSettings": "Settings",
+ "settings": "Settings",
+ "userSettings": "User Settings",
+ "nodes": "Nodes",
"displayStatus": "Show node status",
"displayConfig": "Configuration nodes",
"import": "Import",
"export": "Export",
"search": "Search flows",
+ "searchInput": "search your flows",
"clipboard": "Clipboard",
"library": "Library",
"examples": "Examples",
@@ -61,11 +65,15 @@
"login": "Login",
"logout": "Logout",
"editPalette":"Manage palette",
- "showTips": "Show tips"
+ "other": "Other",
+ "showTips": "Show tips",
+ "help": "Node-RED website"
}
},
"user": {
"loggedInAs": "Logged in as __name__",
+ "username": "Username",
+ "password": "Password",
"login": "Login",
"loginFailed": "Login failed",
"notAuthorized": "Not authorized"
@@ -145,6 +153,7 @@
"improperlyConfigured": "The workspace contains some nodes that are not properly configured:",
"unknown": "The workspace contains some unknown node types:",
"confirm": "Are you sure you want to deploy?",
+ "doNotWarn": "do not warn about this again",
"conflict": "The server is running a more recent set of flows.",
"backgroundUpdate": "The flows on the server have been updated.",
"conflictChecking": "Checking to see if the changes can be merged automatically",
@@ -155,6 +164,8 @@
"diff": {
"unresolvedCount": "__count__ unresolved conflict",
"unresolvedCount_plural": "__count__ unresolved conflicts",
+ "globalNodes": "Global nodes",
+ "flowProperties": "Flow Properties",
"type": {
"added": "added",
"changed": "changed",
@@ -210,7 +221,13 @@
},
"keyboard": {
"title": "Keyboard Shortcuts",
+ "keyboard": "Keyboard",
+ "filterActions": "filter actions",
+ "shortcut": "shortcut",
+ "scope": "scope",
"unassigned": "Unassigned",
+ "global": "global",
+ "workspace": "workspace",
"selectAll": "Select all nodes",
"selectAllConnected": "Select all connected nodes",
"addRemoveNode": "Add/remove node from selection",
@@ -275,6 +292,7 @@
},
"editor": {
"title": "Manage palette",
+ "palette": "Palette",
"times": {
"seconds": "seconds ago",
"minutes": "minutes ago",
@@ -353,16 +371,24 @@
"sidebar": {
"info": {
"name": "Node information",
+ "tabName": "Name",
"label": "info",
"node": "Node",
"type": "Type",
"id": "ID",
+ "status": "Status",
+ "enabled": "Enabled",
+ "disabled": "Disabled",
"subflow": "Subflow",
"instances": "Instances",
"properties": "Properties",
"info": "Information",
"blank": "blank",
"null": "null",
+ "showMore": "show more",
+ "showLess": "show less",
+ "flow": "Flow",
+ "information": "Information",
"arrayItems": "__count__ items",
"showTips":"You can open the tips from the settings panel"
},
@@ -389,6 +415,7 @@
"re": "regular expression",
"bool": "boolean",
"json": "JSON",
+ "bin": "buffer",
"date": "timestamp"
}
},
diff --git a/red/api/locales/ja/editor.json b/red/api/locales/ja/editor.json
index e73cffd03..41b7fc22d 100644
--- a/red/api/locales/ja/editor.json
+++ b/red/api/locales/ja/editor.json
@@ -29,6 +29,7 @@
"label": {
"view": {
"view": "表示",
+ "grid": "グリッド",
"showGrid": "グリッドを表示",
"snapGrid": "ノードの配置を補助",
"gridSize": "グリッドの大きさ",
@@ -41,12 +42,15 @@
"sidebar": {
"show": "サイドバーを表示"
},
- "userSettings": "設定",
+ "settings": "設定",
+ "userSettings": "ユーザ設定",
+ "nodes": "ノード",
"displayStatus": "ノードの状態を表示",
"displayConfig": "ノードの設定",
"import": "読み込み",
"export": "書き出し",
"search": "ノードを検索",
+ "searchInput": "ノードを検索",
"clipboard": "クリップボード",
"library": "ライブラリ",
"examples": "サンプル",
@@ -61,11 +65,15 @@
"login": "ログイン",
"logout": "ログアウト",
"editPalette": "パレットの管理",
- "showTips": "ヒントを表示"
+ "other": "その他",
+ "showTips": "ヒントを表示",
+ "help": "Node-REDウェブサイト"
}
},
"user": {
"loggedInAs": "__name__ としてログインしました",
+ "username": "ユーザ名",
+ "password": "パスワード",
"login": "ログイン",
"loginFailed": "ログインに失敗しました",
"notAuthorized": "権限がありません"
@@ -75,7 +83,7 @@
"warnings": {
"undeployedChanges": "ノードの変更をデプロイしていません",
"nodeActionDisabled": "ノードのアクションは、サブフロー内で無効になっています",
- "missing-types": "不明なノードが存在するため、フローを停止しました。詳細はログを確認してください",
+ "missing-types": "不明なノードが存在するため、フローを停止しました。詳細はログを確認してください。",
"restartRequired": "更新されたモジュールを有効化するため、Node-REDを再起動する必要があります"
},
"error": "エラー: __message__",
@@ -85,7 +93,7 @@
"lostConnectionTry": "すぐに接続",
"cannotAddSubflowToItself": "サブフロー自身を追加できません",
"cannotAddCircularReference": "循環参照を検出したため、サブフローを追加できません",
- "unsupportedVersion": "サポートされていないバージョンのNode.jsを使用しています。
最新のNode.js LTSに更新してください"
+ "unsupportedVersion": "サポートされていないバージョンのNode.jsを使用しています。
最新のNode.js LTSに更新してください。"
}
},
"clipboard": {
@@ -144,6 +152,7 @@
"improperlyConfigured": "以下のノードは、正しくプロパティが設定されていません:",
"unknown": "ワークスペースに未知の型のノードがあります。",
"confirm": "このままデプロイしても良いですか?",
+ "doNotWarn": "この警告を再度表示しない",
"conflict": "フローを編集している間に、他のブラウザがフローをデプロイしました。デプロイを継続すると、他のブラウザがデプロイしたフローが削除されます。",
"backgroundUpdate": "サーバ上のフローが更新されました",
"conflictChecking": "変更を自動的にマージしてよいか確認してください。",
@@ -154,6 +163,8 @@
"diff": {
"unresolvedCount": "未解決の衝突 __count__",
"unresolvedCount_plural": "未解決の衝突 __count__",
+ "globalNodes": "グローバルノード",
+ "flowProperties": "フロープロパティ",
"type": {
"added": "追加",
"changed": "変更",
@@ -166,8 +177,8 @@
},
"nodeCount": "ノード数 __count__",
"nodeCount_plural": "ノード数 __count__",
- "local": "ローカル",
- "remote": "リモート"
+ "local": "ローカルの変更",
+ "remote": "リモートの変更"
},
"subflow": {
"editSubflow": "フローのテンプレートを編集: __name__",
@@ -208,7 +219,13 @@
},
"keyboard": {
"title": "キーボードショートカット",
+ "keyboard": "キーボード",
+ "filterActions": "動作を検索",
+ "shortcut": "ショートカット",
+ "scope": "範囲",
"unassigned": "未割当",
+ "global": "グローバル",
+ "workspace": "ワークスペース",
"selectAll": "全てのノードを選択",
"selectAllConnected": "接続された全てのノードを選択",
"addRemoveNode": "ノードの選択、選択解除",
@@ -234,8 +251,8 @@
"exportToLibrary": "ライブラリへフローを書き出す",
"dialogSaveOverwrite": "__libraryName__ という __libraryType__ は既に存在しています 上書きしますか?",
"invalidFilename": "不正なファイル名",
- "savedNodes": "保存されたノード",
- "savedType": "保存された __type__",
+ "savedNodes": "フローを保存しました",
+ "savedType": "__type__ を保存しました",
"saveFailed": "保存に失敗しました: __message__",
"filename": "ファイル名",
"folder": "フォルダ",
@@ -271,6 +288,7 @@
},
"editor": {
"title": "パレットの管理",
+ "palette": "パレット",
"times": {
"seconds": "秒前",
"minutes": "分前",
@@ -312,12 +330,12 @@
"sortRecent": "日付順",
"more": "+ さらに __count__ 個",
"errors": {
- "catalogLoadFailed": "ノードのカタログの読み込みに失敗しました
詳細はブラウザのコンソールを確認してください",
- "installFailed": "追加処理が失敗しました: __module__
__message__
詳細はログを確認してください",
- "removeFailed": "削除処理が失敗しました: __module__
__message__
詳細はログを確認してください",
- "updateFailed": "更新処理が失敗しました: __module__
__message__
詳細はログを確認してください",
- "enableFailed": "有効化処理が失敗しました: __module__
__message__
詳細はログを確認してください",
- "disableFailed": "無効化処理が失敗しました: __module__
__message__
詳細はログを確認してください"
+ "catalogLoadFailed": "ノードのカタログの読み込みに失敗しました。
詳細はブラウザのコンソールを確認してください。",
+ "installFailed": "追加処理が失敗しました: __module__
__message__
詳細はログを確認してください。",
+ "removeFailed": "削除処理が失敗しました: __module__
__message__
詳細はログを確認してください。",
+ "updateFailed": "更新処理が失敗しました: __module__
__message__
詳細はログを確認してください。",
+ "enableFailed": "有効化処理が失敗しました: __module__
__message__
詳細はログを確認してください。",
+ "disableFailed": "無効化処理が失敗しました: __module__
__message__
詳細はログを確認してください。"
},
"confirm": {
"install": {
@@ -347,16 +365,24 @@
"sidebar": {
"info": {
"name": "ノードの情報を表示",
+ "tabName": "名前",
"label": "情報",
"node": "ノード",
"type": "型",
"id": "ID",
+ "status": "状態",
+ "enabled": "有効",
+ "disabled": "無効",
"subflow": "サブフロー",
"instances": "インスタンス",
"properties": "プロパティ",
"info": "情報",
"blank": "ブランク",
"null": "ヌル",
+ "showMore": "さらに表示",
+ "showLess": "表示を省略",
+ "flow": "フロー",
+ "information": "情報",
"arrayItems": "__count__ 要素",
"showTips": "設定からヒントを表示できます"
},
@@ -383,6 +409,7 @@
"re": "正規表現",
"bool": "真偽",
"json": "JSON",
+ "bin": "バッファ",
"date": "日時"
}
},