From ab788bc1e3b9decc6e55979b3b6d7e5e1d82468a Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Fri, 1 Jun 2018 12:58:09 +0900 Subject: [PATCH] Add i18n support for projectSettings.js --- editor/js/ui/projects/projectSettings.js | 112 +++++++++++++---------- red/api/editor/locales/en-US/editor.json | 39 ++++++++ red/api/editor/locales/ja/editor.json | 38 ++++++++ 3 files changed, 140 insertions(+), 49 deletions(-) diff --git a/editor/js/ui/projects/projectSettings.js b/editor/js/ui/projects/projectSettings.js index 91dbb57ff..b5ee024a1 100644 --- a/editor/js/ui/projects/projectSettings.js +++ b/editor/js/ui/projects/projectSettings.js @@ -49,7 +49,7 @@ RED.projects.settings = (function() { var tabContainer; var trayOptions = { - title: "Project Settings",// RED._("menu.label.userSettings"),, // TODO: nls + title: RED._("menu.label.userSettings"), buttons: [ { id: "node-dialog-ok", @@ -173,14 +173,14 @@ RED.projects.settings = (function() { container.empty(); var bg = $('').appendTo(container); var input = $('').val(summary||"").appendTo(container); - $('') + $('') .appendTo(bg) .click(function(evt) { evt.preventDefault(); updateProjectSummary(activeProject.summary, container); editButton.show(); }); - $('') + $('') .appendTo(bg) .click(function(evt) { evt.preventDefault(); @@ -223,7 +223,7 @@ RED.projects.settings = (function() { if (summary) { container.text(summary).removeClass('node-info-node'); } else { - container.text("No summary available").addClass('node-info-none');// TODO: nls + container.text(RED._("sidebar.project.projectSettings.noSummaryAvailable")).addClass('node-info-none'); } } @@ -235,7 +235,8 @@ RED.projects.settings = (function() { var summaryContent = $('
',{style:"color: #999"}).appendTo(summary); updateProjectSummary(activeProject.summary, summaryContent); if (RED.user.hasPermission("projects.write")) { - $('') + $('') .prependTo(summary) .click(function(evt) { evt.preventDefault(); @@ -250,7 +251,8 @@ RED.projects.settings = (function() { updateProjectDescription(activeProject, descriptionContent); if (RED.user.hasPermission("projects.write")) { - $('') + $('') .prependTo(description) .click(function(evt) { evt.preventDefault(); @@ -316,7 +318,7 @@ RED.projects.settings = (function() { // depsList.editableList('addItem',{index:3, label:"Unused dependencies"}); // TODO: nls // } if (totalCount === 0) { - depsList.editableList('addItem',{index:0, label:"None"}); // TODO: nls + depsList.editableList('addItem',{index:0, label:RED._("sidebar.project.projectSettings.none")}); } } @@ -381,7 +383,8 @@ RED.projects.settings = (function() { function createDependenciesPane(activeProject) { var pane = $('
'); if (RED.user.hasPermission("projects.write")) { - $('') + $('') .appendTo(pane) .click(function(evt) { evt.preventDefault(); @@ -451,7 +454,8 @@ RED.projects.settings = (function() { var buttons = $('
').appendTo(metaRow); if (RED.user.hasPermission("projects.write")) { if (!entry.installed && RED.settings.theme('palette.editable') !== false) { - $('install').appendTo(buttons) + $('' + + RED._("sidebar.project.projectSettings.install") + '').appendTo(buttons) .click(function(evt) { evt.preventDefault(); RED.palette.editor.install(entry,row,function(err) { @@ -468,7 +472,8 @@ RED.projects.settings = (function() { }); }) } else if (entry.known && entry.count === 0) { - $('remove from project').appendTo(buttons) + $('' + + RED._("sidebar.project.projectSettings.removeFromProject") + '').appendTo(buttons) .click(function(evt) { evt.preventDefault(); var deps = $.extend(true, {}, activeProject.dependencies); @@ -484,7 +489,8 @@ RED.projects.settings = (function() { }); }); } else if (!entry.known) { - $('add to project').appendTo(buttons) + $('' + + RED._("sidebar.project.projectSettings.addToProject") + '').appendTo(buttons) .click(function(evt) { evt.preventDefault(); var deps = $.extend(true, {}, activeProject.dependencies); @@ -723,10 +729,11 @@ RED.projects.settings = (function() { // } function createFilesSection(activeProject,pane) { - var title = $('

').text("Files").appendTo(pane); + var title = $('

').text(RED._("sidebar.project.projectSettings.files")).appendTo(pane); var filesContainer = $('
').appendTo(pane); if (RED.user.hasPermission("projects.write")) { - var editFilesButton = $('') + var editFilesButton = $('') .appendTo(title) .click(function(evt) { evt.preventDefault(); @@ -750,7 +757,7 @@ RED.projects.settings = (function() { // Flow files row = $('
').appendTo(filesContainer); - $('').text('Flow').appendTo(row); + $('').text(RED._("sidebar.project.projectSettings.flow")).appendTo(row); var flowFileLabel = $('
').appendTo(row); var flowFileLabelText = $('').text(activeProject.files.flow).appendTo(flowFileLabel); @@ -787,7 +794,7 @@ RED.projects.settings = (function() { }) row = $('').appendTo(filesContainer); - $('').text('Credentials').appendTo(row); + $('').text(RED._("sidebar.project.projectSettings.credentials")).appendTo(row); var credFileLabel = $('
').text(activeProject.files.credentials).appendTo(row); var credFileInput = $('
').text(activeProject.files.credentials).hide().insertAfter(credFileLabel); @@ -899,12 +906,15 @@ RED.projects.settings = (function() { var credentialFormRows = $('
',{style:"margin-top:10px"}).hide().appendTo(credentialStateLabel); - var credentialSetLabel = $('
Set the encryption key:
').hide().appendTo(credentialFormRows); - var credentialChangeLabel = $('
Change the encryption key:
').hide().appendTo(credentialFormRows); - var credentialResetLabel = $('
Reset the encryption key:
').hide().appendTo(credentialFormRows); + var credentialSetLabel = $('
' + + RED._("sidebar.project.projectSettings.setTheEncryptionKey") + '
').hide().appendTo(credentialFormRows); + var credentialChangeLabel = $('
' + + RED._("sidebar.project.projectSettings.changeTheEncryptionKey") + '
').hide().appendTo(credentialFormRows); + var credentialResetLabel = $('
' + + RED._("sidebar.project.projectSettings.resetTheEncryptionKey") + '
').hide().appendTo(credentialFormRows); var credentialSecretExistingRow = $('').appendTo(credentialFormRows); - $('').text('Current key').appendTo(credentialSecretExistingRow); + $('').text(RED._("sidebar.project.projectSettings.currentKey")).appendTo(credentialSecretExistingRow); var credentialSecretExistingInput = $('').appendTo(credentialSecretExistingRow) .on("change keyup paste",function() { if (popover) { @@ -917,10 +927,11 @@ RED.projects.settings = (function() { var credentialSecretNewRow = $('').appendTo(credentialFormRows); - $('').text('New key').appendTo(credentialSecretNewRow); + $('').text(RED._("sidebar.project.projectSettings.newKey")).appendTo(credentialSecretNewRow); var credentialSecretNewInput = $('').appendTo(credentialSecretNewRow).on("change keyup paste",checkFiles); - var credentialResetWarning = $('
This will delete all existing credentials
').hide().appendTo(credentialFormRows); + var credentialResetWarning = $('
' + + RED._("sidebar.project.projectSettings.credentialsAlert") + '
').hide().appendTo(credentialFormRows); var hideEditForm = function() { @@ -950,13 +961,13 @@ RED.projects.settings = (function() { } var formButtons = $('').hide().appendTo(filesContainer); - $('') + $('') .appendTo(formButtons) .click(function(evt) { evt.preventDefault(); hideEditForm(); }); - var saveButton = $('') + var saveButton = $('') .appendTo(formButtons) .click(function(evt) { evt.preventDefault(); @@ -1032,13 +1043,13 @@ RED.projects.settings = (function() { var updateForm = function() { if (activeProject.settings.credentialSecretInvalid) { credentialStateLabel.find(".user-settings-credentials-state-icon").removeClass().addClass("user-settings-credentials-state-icon fa fa-warning"); - credentialStateLabel.find(".user-settings-credentials-state").text("Invalid encryption key"); + credentialStateLabel.find(".user-settings-credentials-state").text(RED._("sidebar.project.projectSettings.invalidEncryptionKey")); } else if (activeProject.settings.credentialsEncrypted) { credentialStateLabel.find(".user-settings-credentials-state-icon").removeClass().addClass("user-settings-credentials-state-icon fa fa-lock"); - credentialStateLabel.find(".user-settings-credentials-state").text("Encryption enabled"); + credentialStateLabel.find(".user-settings-credentials-state").text(RED._("sidebar.project.projectSettings.encryptionEnabled")); } else { credentialStateLabel.find(".user-settings-credentials-state-icon").removeClass().addClass("user-settings-credentials-state-icon fa fa-unlock"); - credentialStateLabel.find(".user-settings-credentials-state").text("Encryption disabled"); + credentialStateLabel.find(".user-settings-credentials-state").text(RED._("sidebar.project.projectSettings.encryptionDisabled")); } credentialSecretResetButton.toggleClass('disabled',!activeProject.settings.credentialSecretInvalid && !activeProject.settings.credentialsEncrypted); credentialSecretResetButton.prop('disabled',!activeProject.settings.credentialSecretInvalid && !activeProject.settings.credentialsEncrypted); @@ -1050,7 +1061,7 @@ RED.projects.settings = (function() { function createLocalBranchListSection(activeProject,pane) { var localBranchContainer = $('').appendTo(pane); - $('

').text("Branches").appendTo(localBranchContainer); + $('

').text(RED._("sidebar.project.projectSettings.branches")).appendTo(localBranchContainer); var row = $('').appendTo(localBranchContainer); @@ -1063,7 +1074,7 @@ RED.projects.settings = (function() { var container = $('
').appendTo(row); if (entry.empty) { container.addClass('red-ui-search-empty'); - container.text("No branches"); + container.text(RED._("sidebar.project.projectSettings.noBranches")); return; } if (entry.current) { @@ -1095,7 +1106,7 @@ RED.projects.settings = (function() { .click(function(e) { e.preventDefault(); var spinner = utils.addSpinnerOverlay(row).addClass('projects-dialog-spinner-contain'); - var notification = RED.notify("Are you sure you want to delete the local branch '"+entry.name+"'? This cannot be undone.", { + var notification = RED.notify(RED._("sidebar.project.projectSettings.deleteConfirm", { name: entry.name }), { type: "warning", modal: true, fixed: true, @@ -1123,7 +1134,7 @@ RED.projects.settings = (function() { }, 400: { 'git_delete_branch_unmerged': function(error) { - notification = RED.notify("The local branch '"+entry.name+"' has unmerged changes that will be lost. Are you sure you want to delete it?", { + notification = RED.notify(RED._("sidebar.project.projectSettings.unmergedConfirm", { name: entry.name }), { type: "warning", modal: true, fixed: true, @@ -1135,7 +1146,7 @@ RED.projects.settings = (function() { notification.close(); } },{ - text: 'Delete unmerged branch', + text: RED._("sidebar.project.projectSettings.deleteUnmergedBranch"), click: function() { options.url += "?force=true"; notification.close(); @@ -1183,14 +1194,15 @@ RED.projects.settings = (function() { } function createRemoteRepositorySection(activeProject,pane) { - $('

').text("Version Control").appendTo(pane); + $('

').text(RED._("sidebar.project.projectSettings.versionControl")).appendTo(pane); createLocalBranchListSection(activeProject,pane); var repoContainer = $('').appendTo(pane); - var title = $('

').text("Git remotes").appendTo(repoContainer); + var title = $('

').text(RED._("sidebar.project.projectSettings.gitRemotes")).appendTo(repoContainer); - var editRepoButton = $('') + var editRepoButton = $('') .appendTo(title) .click(function(evt) { editRepoButton.attr('disabled',true); @@ -1221,7 +1233,7 @@ RED.projects.settings = (function() { var container = $('
').appendTo(row); if (entry.empty) { container.addClass('red-ui-search-empty'); - container.text("No remotes"); + container.text(RED._("sidebar.project.projectSettings.noRemotes")); return; } else { $('').appendTo(container); @@ -1240,7 +1252,7 @@ RED.projects.settings = (function() { .click(function(e) { e.preventDefault(); var spinner = utils.addSpinnerOverlay(row).addClass('projects-dialog-spinner-contain'); - var notification = RED.notify("Are you sure you want to delete the remote '"+entry.name+"'?", { + var notification = RED.notify(RED._("sidebar.project.projectSettings.deleteRemoteConfrim", { name: entry.name }), { type: "warning", modal: true, fixed: true, @@ -1252,7 +1264,7 @@ RED.projects.settings = (function() { notification.close(); } },{ - text: 'Delete remote', + text: RED._("sidebar.project.projectSettings.deleteRemote"), click: function() { notification.close(); @@ -1315,10 +1327,10 @@ RED.projects.settings = (function() { // var validRepo = /^(?:file|git|ssh|https?|[\d\w\.\-_]+@[\w\.]+):(?:\/\/)?[\w\.@:\/~_-]+(?:\.git)?(?:\/?|\#[\d\w\.\-_]+?)$/.test(remoteURLInput.val()); var validRepo = repo.length > 0 && !/\s/.test(repo); if (/^https?:\/\/[^/]+@/i.test(repo)) { - remoteURLLabel.text("Do not include the username/password in the url"); + remoteURLLabel.text(RED._("sidebar.project.projectSettings.urlRule2")); validRepo = false; } else { - remoteURLLabel.text("https://, ssh:// or file://"); + remoteURLLabel.text(RED._("sidebar.project.projectSettings.urlRule")); } saveButton.attr('disabled',(!validName || !validRepo)) remoteNameInput.toggleClass('input-error',remoteNameInputChanged&&!validName); @@ -1332,22 +1344,24 @@ RED.projects.settings = (function() { var remoteNameInputChanged = false; var remoteURLInputChanged = false; - $('
').text('Add remote').appendTo(addRemoteDialog); + $('
').text(RED._('sidebar.project.projectSettings.addRemote2')).appendTo(addRemoteDialog); row = $('').appendTo(addRemoteDialog); - $('').text('Remote name').appendTo(row); + $('').text(RED._("sidebar.project.projectSettings.remoteName")).appendTo(row); var remoteNameInput = $('').appendTo(row).on("change keyup paste",function() { remoteNameInputChanged = true; validateForm(); }); - $('').appendTo(row).find("small"); + $('').appendTo(row).find("small"); row = $('').appendTo(addRemoteDialog); - $('').text('URL').appendTo(row); + $('').text(RED._("sidebar.project.projectSettings.url")).appendTo(row); var remoteURLInput = $('').appendTo(row).on("change keyup paste",function() { remoteURLInputChanged = true; validateForm() }); - var remoteURLLabel = $('').appendTo(row).find("small"); + var remoteURLLabel = $('').appendTo(row).find("small"); var hideEditForm = function() { editRepoButton.attr('disabled',false); @@ -1361,13 +1375,13 @@ RED.projects.settings = (function() { } var formButtons = $('') .appendTo(addRemoteDialog); - $('') + $('') .appendTo(formButtons) .click(function(evt) { evt.preventDefault(); hideEditForm(); }); - var saveButton = $('') + var saveButton = $('') .appendTo(formButtons) .click(function(evt) { evt.preventDefault(); @@ -1484,19 +1498,19 @@ RED.projects.settings = (function() { utils = _utils; addPane({ id:'main', - title: "Project", // TODO: nls + title: RED._("sidebar.project.name"), get: createMainPane, close: function() { } }); addPane({ id:'deps', - title: "Dependencies", // TODO: nls + title: RED._("sidebar.project.dependencies"), get: createDependenciesPane, close: function() { } }); addPane({ id:'settings', - title: "Settings", // TODO: nls + title: RED._("sidebar.project.settings"), get: createSettingsPane, close: function() { if (popover) { diff --git a/red/api/editor/locales/en-US/editor.json b/red/api/editor/locales/en-US/editor.json index b2285f566..af62248da 100644 --- a/red/api/editor/locales/en-US/editor.json +++ b/red/api/editor/locales/en-US/editor.json @@ -467,8 +467,47 @@ "description": "Description", "dependencies": "Dependencies", "settings": "Settings", + "noSummaryAvailable": "No summary available", "editDescription": "Edit project description", "editDependencies": "Edit project dependencies", + "editReadme": "Edit README.md", + "projectSettings": { + "edit": "edit", + "none": "None", + "install": "install", + "removeFromProject": "remove from project", + "addToProject": "add to project", + "none": "None", + "files": "Files", + "flow": "Flow", + "credentials": "Credentials", + "invalidEncryptionKey": "Invalid encryption key", + "encryptionEnabled": "Encryption enabled", + "encryptionDisabled": "Encryption disabled", + "resetTheEncryptionKey": "Reset the encryption key:", + "setTheEncryptionKey": "Set the encryption key:", + "changeTheEncryptionKey": "Change the encryption key:", + "currentKey": "Current key", + "newKey": "New key", + "credentialsAlert": "This will delete all existing credentials", + "versionControl": "Version Control", + "branches": "Branches", + "noBranches": "No branches", + "deleteConfirm": "Are you sure you want to delete the local branch '__name__'? This cannot be undone.", + "unmergedConfirm": "The local branch '__name__' has unmerged changes that will be lost. Are you sure you want to delete it?", + "deleteUnmergedBranch": "Delete unmerged branch", + "gitRemotes": "Git remotes", + "addRemote": "add remote", + "addRemote2": "Add remote", + "remoteName": "Remote name", + "nameRule": "Must contain only A-Z 0-9 _ -", + "url": "URL", + "urlRule": "https://, ssh:// or file://", + "urlRule2": "Do not include the username/password in the URL", + "noRemotes": "No remotes", + "deleteRemoteConfrim": "Are you sure you want to delete the remote '__name__'?", + "deleteRemote": "Delete remote" + }, "userSettings": { "committerDetail": "Committer Details", "committerTip": "Leave blank to use system default", diff --git a/red/api/editor/locales/ja/editor.json b/red/api/editor/locales/ja/editor.json index d24dcc711..d18938123 100644 --- a/red/api/editor/locales/ja/editor.json +++ b/red/api/editor/locales/ja/editor.json @@ -459,8 +459,46 @@ "description": "詳細", "dependencies": "依存関係", "settings": "設定", + "noSummaryAvailable": "サマリが存在しません", "editDescription": "プロジェクトの詳細を編集", "editDependencies": "プロジェクトの依存関係を編集", + "editReadme": "README.mdを編集", + "projectSettings": { + "edit": "編集", + "none": "なし", + "install": "インストール", + "removeFromProject": "プロジェクトから削除", + "addToProject": "プロジェクトへ追加", + "files": "ファイル", + "flow": "フロー", + "credentials": "認証情報", + "invalidEncryptionKey": "不正な暗号化キー", + "encryptionEnabled": "暗号化が有効になっています", + "encryptionDisabled": "暗号化が無効になっています", + "setTheEncryptionKey": "暗号化キーを設定:", + "resetTheEncryptionKey": "暗号化キーを初期化:", + "changeTheEncryptionKey": "暗号化キーを変更:", + "currentKey": "現在のキー", + "newKey": "新規のキー", + "credentialsAlert": "既存の認証情報は全て削除されます", + "versionControl": "バージョン管理", + "branches": "ブランチ", + "noBranches": "ブランチなし", + "deleteConfirm": "本当にローカルブランチ'__name__'を削除しますか?削除すると元に戻すことはできません。", + "unmergedConfirm": "ローカルブランチ'__name__'にはマージされていない変更があります。この変更は削除されます。本当に削除しますか?", + "deleteUnmergedBranch": "マージされていないブランチを削除", + "gitRemotes": "Gitリモート", + "addRemote": "リモートを追加", + "addRemote2": "リモートを追加", + "remoteName": "リモート名", + "nameRule": "A-Z 0-9 _ - のみを含む", + "url": "URL", + "urlRule": "https://、ssh:// または file://", + "urlRule2": "URLにユーザ名、パスワードを含んではいけません", + "noRemotes": "リモートなし", + "deleteRemoteConfrim": "本当にリモート'__name__'を削除しますか?", + "deleteRemote": "リモートを削除" + }, "userSettings": { "committerDetail": "コミッター詳細", "committerTip": "システムのデフォルトを使用する場合、空白のままにしてください",