From d7d13c12fef548caa437997a0582a274642318f8 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Mon, 7 Aug 2017 18:00:28 +0900 Subject: [PATCH] Modify messages to refer to language files (#1361) --- editor/js/main.js | 4 +-- editor/js/ui/deploy.js | 4 +-- editor/js/ui/diff.js | 4 +-- editor/js/ui/editor.js | 2 +- editor/js/ui/keyboard.js | 11 +++--- editor/js/ui/palette-editor.js | 2 +- editor/js/ui/search.js | 3 +- editor/js/ui/tab-info.js | 16 ++++----- editor/js/ui/userSettings.js | 12 +++---- editor/js/user.js | 2 +- nodes/core/locales/ja/messages.json | 2 +- red/api/auth/index.js | 2 +- red/api/locales/en-US/editor.json | 31 ++++++++++++++-- red/api/locales/ja/editor.json | 55 +++++++++++++++++++++-------- 14 files changed, 103 insertions(+), 47 deletions(-) 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 = $('
'); $('
'+ - '
'+ - '
shortcut
'+ - '
scope
'+ + '
'+ + '
'+ + '
'+ '
').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": "日時" } },