From d5176975644dc341196088ee0434c348c83d4c93 Mon Sep 17 00:00:00 2001
From: 3Anology Flows stopped in safe mode. You can modify your flows and deploy the changes to restart. Flows stopped as the credentials could not be decrypted. The flow credential file is encrypted, but the project's encryption key is missing or invalid. Credentials could not be decrypted The flow credential file is encrypted, but the project's encryption key is missing or invalid. The flow credential file will be reset on the next deployment. Any existing flow credentials will be cleared. Project flow file not found. The project is not configured with a flow file. Project package file not found. The project is missing a package.json file. The project is empty. Do you want to create a default set of project files? Project '__project__' not found. Automatic merging of changes failed. Fix the unmerged conflicts then commit the results. Failed to load '__module__' __error__ \"__file__\" 已經存在. 是否要取代? This module cannot be installed as it includes a Conflicts with Unable to pull remote changes; your unstaged local changes would be overwritten. Commit your changes and try again. The remote has an unrelated history of commits. Are you sure you want to pull the changes into your local repository? 目前的運算式仍然參考 當JSONata支持首次添加到Node-RED時,它需要運算式引用 這樣便不再需要運算式直接針對消息進行評估。要訪問有效負載,運算式應該只是 緩衝區類型被存儲為位元組值的JSON陣列。編輯器將嘗試將輸入的數值解析為JSON陣列。如果它不是有效的JSON,它將被視為UTF-8字串,並被轉換為單個字元代碼點的陣列。 例如,
Otherwise, you will have to manually add files to the project outside of the editor.
請升級到最新版本的Node.js LTS",
+ "failedToAppendNode": "
node type that has already been installed__module__
查看流覽器控制台瞭解更多資訊",
+ "installFailed": "無法安裝: __module__
__message__
查看日誌瞭解更多資訊",
+ "removeFailed": "無法刪除: __module__
__message__
查看日誌瞭解更多資訊",
+ "updateFailed": "無法更新: __module__
__message__
查看日誌瞭解更多資訊",
+ "enableFailed": "無法啟用: __module__
__message__
查看日誌瞭解更多資訊",
+ "disableFailed": "無法禁用: __module__
__message__
查看日誌瞭解更多資訊"
+ },
+ "confirm": {
+ "install": {
+ "body": "在安裝之前,請閱讀節點的文檔,某些節點的依賴關係不能自動解決,可能需要重新啟動Node-RED。",
+ "title": "安裝節點"
+ },
+ "remove": {
+ "body": "刪除節點將從Node-RED卸載它。節點可能會繼續使用資源,直到重新啟動Node-RED。",
+ "title": "刪除節點"
+ },
+ "update": {
+ "body": "更新節點將需要重新啟動Node-RED來完成更新,該過程必須由手動完成。",
+ "title": "更新節點"
+ },
+ "cannotUpdate": {
+ "body": "此節點的更新可用,但不會安裝在面板管理器可以更新的位置。
請參閱有關如何更新此節點的文檔。"
+ },
+ "button": {
+ "review": "打開節點資訊",
+ "install": "安裝",
+ "remove": "刪除",
+ "update": "更新"
+ }
+ }
+ }
+ },
+ "sidebar": {
+ "info": {
+ "name": "節點信息",
+ "tabName": "名稱",
+ "label": "信息",
+ "node": "節點",
+ "type": "類型",
+ "module": "Module",
+ "id": "ID",
+ "status": "狀態",
+ "enabled": "啟用",
+ "disabled": "禁用",
+ "subflow": "子流程",
+ "instances": "實例",
+ "properties": "屬性",
+ "info": "信息",
+ "desc": "Description",
+ "blank": "空白",
+ "null": "空",
+ "showMore": "展開",
+ "showLess": "收起",
+ "flow": "流程",
+ "selection": "選擇",
+ "nodes": "__count__ 個節點",
+ "flowDesc": "流程描述",
+ "subflowDesc": "子流程描述",
+ "nodeHelp": "節點幫助",
+ "none": "無",
+ "arrayItems": "__count__個項目",
+ "showTips": "您可以從設置面板啟用提示資訊"
+ },
+ "config": {
+ "name": "配置節點",
+ "label": "配置",
+ "global": "所有流程",
+ "none": "無",
+ "subflows": "子流程",
+ "flows": "流程",
+ "filterUnused": "未使用",
+ "filterAll": "所有",
+ "filtered": "__count__ 個隱藏"
+ },
+ "context": {
+ "name": "Context Data",
+ "label": "context",
+ "none": "none selected",
+ "refresh": "refresh to load",
+ "empty": "empty",
+ "node": "Node",
+ "flow": "Flow",
+ "global": "Global",
+ "deleteConfirm": "Are you sure you want to delete this item?",
+ "autoRefresh": "Auto-refresh"
+ },
+ "palette": {
+ "name": "節點管理",
+ "label": "節點"
+ },
+ "project": {
+ "label": "項目",
+ "name": "名稱",
+ "description": "描述",
+ "dependencies": "依賴",
+ "settings": "設置",
+ "noSummaryAvailable": "No summary available",
+ "editDescription": "編輯專案描述",
+ "editDependencies": "編輯項目依賴",
+ "editReadme": "Edit README.md",
+ "showProjectSettings": "Show project settings",
+ "projectSettings": {
+ "title": "Project Settings",
+ "edit": "edit",
+ "none": "None",
+ "install": "install",
+ "removeFromProject": "remove from project",
+ "addToProject": "add to project",
+ "files": "Files",
+ "package": "Package",
+ "flow": "Flow",
+ "credentials": "Credentials",
+ "packageCreate": "File will be created when changes are saved",
+ "fileNotExist": "File does not exist",
+ "selectFile": "Select File",
+ "invalidEncryptionKey": "Invalid encryption key",
+ "encryptionEnabled": "Encryption enabled",
+ "encryptionDisabled": "Encryption disabled",
+ "setTheEncryptionKey": "Set the encryption key",
+ "resetTheEncryptionKey": "Reset 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",
+ "userName": "Username",
+ "email": "Email",
+ "sshKeys": "SSH Keys",
+ "sshKeysTip": "Allows you to create secure connections to remote git repositories.",
+ "add": "add key",
+ "addSshKey": "Add SSH Key",
+ "addSshKeyTip": "Generate a new public/private key pair",
+ "name": "Name",
+ "nameRule": "Must contain only A-Z 0-9 _ -",
+ "passphrase": "Passphrase",
+ "passphraseShort": "Passphrase too short",
+ "optional": "Optional",
+ "cancel": "Cancel",
+ "generate": "Generate key",
+ "noSshKeys": "No SSH keys",
+ "copyPublicKey": "Copy public key to clipboard",
+ "delete": "Delete key",
+ "gitConfig": "Git config",
+ "deleteConfirm": "Are you sure you want to delete the SSH key __name__? This cannot be undone."
+ },
+ "versionControl": {
+ "unstagedChanges": "Unstaged changes",
+ "stagedChanges": "Staged changes",
+ "unstageChange": "Unstage change",
+ "stageChange": "Stage change",
+ "unstageAllChange": "Unstage all changes",
+ "stageAllChange": "Stage all changes",
+ "commitChanges": "Commit changes",
+ "resolveConflicts": "Resolve conflicts",
+ "head": "HEAD",
+ "staged": "Staged",
+ "unstaged": "Unstaged",
+ "local": "Local",
+ "remote": "Remote",
+ "revert": "Are you sure you want to revert the changes to '__file__'? This cannot be undone.",
+ "revertChanges": "Revert changes",
+ "localChanges": "Local Changes",
+ "none": "None",
+ "conflictResolve": "All conflicts resolved. Commit the changes to complete the merge.",
+ "localFiles": "Local files",
+ "all": "all",
+ "unmergedChanges": "Unmerged changes",
+ "abortMerge": "abort merge",
+ "commit": "commit",
+ "changeToCommit": "Changes to commit",
+ "commitPlaceholder": "Enter your commit message",
+ "cancelCapital": "Cancel",
+ "commitCapital": "Commit",
+ "commitHistory": "Commit History",
+ "branch": "Branch:",
+ "moreCommits": " more commit(s)",
+ "changeLocalBranch": "Change local branch",
+ "createBranchPlaceholder": "Find or create a branch",
+ "upstream": "upstream",
+ "localOverwrite": "You have local changes that would be overwritten by changing the branch. You must either commit or undo those changes first.",
+ "manageRemoteBranch": "Manage remote branch",
+ "unableToAccess": "Unable to access remote repository",
+ "retry": "Retry",
+ "setUpstreamBranch": "Set as upstream branch",
+ "createRemoteBranchPlaceholder": "Find or create a remote branch",
+ "trackedUpstreamBranch": "The created branch will be set as the tracked upstream branch.",
+ "selectUpstreamBranch": "The branch will be created. Select below to set it as the tracked upstream branch.",
+ "pushFailed": "Push failed as the remote has more recent commits. Pull and merge first, then push again.",
+ "push": "push",
+ "pull": "pull",
+ "unablePull": "JSONata的相容模式
msg
,所以將以相容性模式進行評估。請更新運算式,使其不使用msg
,因為此模式將在將來刪除。msg
物件。例如msg.payload
將用於訪問有效負載。payload
.緩衝區編輯器
Hello World
的值會被轉換為JSON陣列:[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
You have undeployed changes that will be lost.
Do you want to continue?
" + }, + "send-req": { + "auth-req": "Authentication required for repository", + "username": "Username", + "password": "Password", + "passphrase": "Passphrase", + "retry": "Retry", + "update-failed": "Failed to update auth", + "unhandled": "Unhandled error response" + }, + "create-branch-list": { + "invalid": "Invalid branch", + "create": "Create branch", + "current": "current" + }, + "create-default-file-set": { + "no-active": "Cannot create default file set without an active project", + "no-empty": "Cannot create default file set on a non-empty project", + "git-error": "git error" + }, + "errors": { + "no-username-email": "Your Git client is not configured with a username/email.", + "unexpected": "An unexpected error occurred", + "code": "code" + } + }, + "editor-tab": { + "properties": "Properties", + "description": "描述", + "appearance": "Appearance", + "env": "Environment Variables" + } +} \ No newline at end of file diff --git a/packages/node_modules/@node-red/editor-client/locales/zh-TW/infotips.json b/packages/node_modules/@node-red/editor-client/locales/zh-TW/infotips.json new file mode 100644 index 000000000..9e67a71cf --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/locales/zh-TW/infotips.json @@ -0,0 +1,23 @@ +{ + "info": { + "tip0" : "您可以用 {{core:delete-selection}} 刪除選擇的節點或連結。", + "tip1" : "{{core:search}} 可以在流程內搜索節點。", + "tip2": "{{core:toggle-sidebar}} 可以顯示或隱藏邊側欄。", + "tip3": "您可以在 {{core:manage-palette}} 中管理節點的控制台。", + "tip4": "側邊欄中會列出流程中所有的配置節點。您可以通過功能表或者 {{core:show-config-tab}} 來訪問這些節點。", + "tip5": "您可以在設定中選擇顯示或隱藏這些提示。", + "tip6": "您可以用[left] [up] [down] [right]鍵來移動被選中的節點。按住[shift]可以更快地移動節點。", + "tip7": "把節點拖到連接上可以向連接中插入節點。", + "tip8": "您可以用 {{core:show-export-dialog}} 來匯出被選中的節點或標籤頁中的流程。", + "tip9": "您可以將流程的json檔拖入編輯方塊或 {{core:show-import-dialog}} 來導入流程。", + "tip10": "按住[shift]後按一下並拖動節點可以將該節點的多個連接一併移動到其他節點的埠。", + "tip11": "{{core:show-info-tab}} 可以顯示「資訊」標籤頁。 {{core:show-debug-tab}} 可以顯示「調試」標籤頁。", + "tip12": "按住[ctrl]的同時點擊工作介面可以在節點的對話欄中快速添加節點。", + "tip13": "按住[ctrl]的同時點擊節點的埠或後續節點可以快速連接多個節點。", + "tip14": "按住[shift]的同時點擊節點會選中所有被連接的節點。", + "tip15": "按住[ctrl]的同時點擊節點可以在選中或取消選中節點。", + "tip16": "{{core:show-previous-tab}} 和 {{core:show-next-tab}} 可以切換標籤頁。", + "tip17": "您可以在節點的屬性配置畫面中通過 {{core:confirm-edit-tray}} 來更改設置,或者用 {{core:cancel-edit-tray}} 來取消更改。", + "tip18": "您可以通過點擊 {{core:edit-selected-node}} 來顯示被選中節點的屬性設置畫面。" + } +} diff --git a/packages/node_modules/@node-red/editor-client/locales/zh-TW/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/zh-TW/jsonata.json new file mode 100644 index 000000000..ae62fe068 --- /dev/null +++ b/packages/node_modules/@node-red/editor-client/locales/zh-TW/jsonata.json @@ -0,0 +1,218 @@ +{ + "$string": { + "args": "arg", + "desc": "通過以下的類型轉換規則將參數*arg*轉換成字串:\n\n - 字串不轉換。\n -函數轉換成空的字串。\n - JSON的值無法用數字表示所以用無限大或者NaN(非數)表示。\n - 用’JSON.stringify’函數將其他值轉換成JSON字串。" + }, + "$length": { + "args": "str", + "desc": "輸出字串’str’的字數。如果’str’不是字串,拋出錯誤。" + }, + "$substring": { + "args": "str, start[, length]", + "desc": "輸出`start`位置後的的首次出現的包括`str`的子字串。 如果`length`被指定,那麼的字串中將只包括前`length`個文字。如果`start`是負數則輸出從`str`末尾開始的`length`個文字" + }, + "$substringBefore": { + "args": "str, chars", + "desc": "輸出’str’中首次出現的’chars’之前的子字串,如果’str’中不包括’chars’則輸出’str’。" + }, + "$substringAfter": { + "args": "str, chars", + "desc": "輸出’str’中首次出現的’chars’之後的子字串,如果’str’中不包括’chars’則輸出’str’。" + }, + "$uppercase": { + "args": "str", + "desc": "`將’str’中的所有字母變為大寫後輸出。" + }, + "$lowercase": { + "args": "str", + "desc": "將’str’中的所有字母變為小寫後輸出。" + }, + "$trim": { + "args": "str", + "desc": "將以下步驟應用於`str`來去除所有空白文字並實現標準化。\n\n – 將全部tab定位字元、Enter鍵、換行字元用空白代替。\n- 將連續的空白文字變成一個空白文字。\n- 消除開頭和末尾的空白文字。\n\n如果`str`沒有被指定(即在無輸入參數的情況下調用本函數),將上下文的值作為`str`來使用。 如果`str` 不是字串則拋出錯誤。" + }, + "$contains": { + "args": "str, pattern", + "desc": "字串`str` 和 `pattern`匹配的話輸出`true`,不匹配的情況下輸出 `false`。 不指定`str`的情況下(比如用一個參數調用本函數時)、將上下文的值作為`str`來使用。參數 `pattern`可以為字串或正則表達。" + }, + "$split": { + "args": "str[, separator][, limit]", + "desc": "將參數`str`分解成由子字串組成的陣列。 如果`str`不是字串拋出錯誤。可以省略的參數 `separator`中指定字串`str`的分隔符號。分隔符號可以是文字或規則運算式。在不指定`separator`的情況下、將分隔符號看作空的字串並把`str`拆分成由單個字母組成的陣列。如果`separator`不是字串則拋出錯誤。在可省略的參數`limit`中指定分割後的子字串的最大個數。超出個數的子字串將被捨棄。如果`limit`沒有被指定,`str` 將不考慮子字串的個數而將字串完全分隔。如果`limit`是負數則拋出錯誤。" + }, + "$join": { + "args": "array[, separator]", + "desc": "用可以省略的參數 `separator`來把多個字元串連接。如果`array`不是字串則拋出錯誤。 如果沒有指定`separator`,則用空字串來連接字元(即字串之間沒有`separator`)。 如果`separator`不是字元則拋出錯誤。" + }, + "$match": { + "args": "str, pattern [, limit]", + "desc": "對字串`str`使用規則運算式`pattern`並輸出與`str`相匹配的部分資訊。" + }, + "$replace": { + "args": "str, pattern, replacement [, limit]", + "desc": "在字串`str`中搜索`pattern`並用`replacement`來替換。\n\n可選參數`limit`用來指定替換次數的上限。" + }, + "$now": { + "args": "", + "desc": "生成ISO 8601互換格式的時刻,並作為字串輸出。" + }, + "$base64encode": { + "args": "string", + "desc": "將ASCII格式的字串轉換為Base 64格式。將字串中的文字視作二進位形式的資料處理。包含URI編碼在內的字串文字必須在0x00到0xFF的範圍內,否則不會被支持。" + }, + "$base64decode": { + "args": "string", + "desc": "用UTF-8內碼表將Base 64形式二進位值轉換為字串。" + }, + "$number": { + "args": "arg", + "desc": "用下述的規則將參數 `arg`轉換為數值。:\n\n – 數值不做轉換。\n – 將字串中合法的JSON數値表示轉換成數値。\n – 其他形式的值則拋出錯誤。" + }, + "$abs": { + "args": "number", + "desc": "輸出參數`number`的絕對值。" + }, + "$floor": { + "args": "number", + "desc": "輸出比`number`的值小的最大整數。" + }, + "$ceil": { + "args": "number", + "desc": "輸出比`number`的值大的最小整數。" + }, + "$round": { + "args": "number [, precision]", + "desc": "輸出四捨五入後的參數`number`。可省略的參數 `precision`指定四捨五入後小數點下的位數。" + }, + "$power": { + "args": "base, exponent", + "desc": "輸出底數`base`的`exponent`次冪。" + }, + "$sqrt": { + "args": "number", + "desc": "輸出參數 `number`的平方根。" + }, + "$random": { + "args": "", + "desc": "輸出比0大,比1小的偽亂數。" + }, + "$millis": { + "args": "", + "desc": "返回從UNIX時間 (1970年1月1日 UTC/GMT的午夜)開始到現在的毫秒數。在同一個運算式的測試中所有對`$millis()`的調用將會返回相同的值。" + }, + "$sum": { + "args": "array", + "desc": "輸出陣列`array`的總和。如果`array`不是數值則拋出錯誤。" + }, + "$max": { + "args": "array", + "desc": "輸出陣列`array`的最大值。如果`array`不是數值則拋出錯誤。" + }, + "$min": { + "args": "array", + "desc": "輸出陣列`array`的最小值。如果`array`不是數值則拋出錯誤。。" + }, + "$average": { + "args": "array", + "desc": "輸出陣列`array`的平均數。如果`array`不是數值則拋出錯誤。。" + }, + "$boolean": { + "args": "arg", + "desc": "用下述規則將資料轉換成布林值。:\n\n - 不轉換布林值`Boolean`。\n – 將空的字串`string`轉換為`false`\n – 將不為空的字串`string`轉換為`true`\n – 將為0的數位`number`轉換成`false`\n –將不為0的數位`number`轉換成`true`\n –將`null`轉換成`false`\n –將空的陣列`array`轉換成`false`\n –如果陣列`array`中含有可以轉換成`true`的要素則轉換成`true`\n –如果`array`中沒有可轉換成`true`的要素則轉換成`false`\n – 空的物件`object`轉換成`false`\n – 非空的物件`object`轉換成`true`\n –將函數`function`轉換成`false`" + }, + "$not": { + "args": "arg", + "desc": "輸出做反轉運算後的布林值。首先將`arg`轉換為布林值。" + }, + "$exists": { + "args": "arg", + "desc": "如果算式`arg`的值存在則輸出`true`。如果算式的值不存在(比如指向不存在區域的引用)則輸出`false`。" + }, + "$count": { + "args": "array", + "desc": "輸出陣列中的元素數。" + }, + "$append": { + "args": "array, array", + "desc": "將兩個陣列連接。" + }, + "$sort": { + "args": "array [, function]", + "desc": "輸出排序後的陣列`array`。\n\n如果使用了比較函數`function`,則下述兩個參數需要被指定。\n\n`function(left, right)`\n\n該比較函數是為了比較left和right兩個值而被排序演算法調用的。如果使用者希望left的值被置於right的值之後,那麼該函數必須輸出布林值`true`來表示位置交換。而在不需要位置交換時函數必須輸出`false`。" + }, + "$reverse": { + "args": "array", + "desc": "輸出倒序後的陣列`array`。" + }, + "$shuffle": { + "args": "array", + "desc": "輸出隨機排序後的陣列 `array`。" + }, + "$zip": { + "args": "array, ...", + "desc": "將陣列中的值按索引順序打包後輸出。" + }, + "$keys": { + "args": "object", + "desc": "輸出由物件內的鍵組成的陣列。如果參數是物件的陣列則輸出由所有物件中的鍵去重後組成的佇列。" + }, + "$lookup": { + "args": "object, key", + "desc": "輸出對象中與參數`key`對應的值。如果第一個參數`object`是陣列,那麼陣列中所有的物件都將被搜索並輸出這些物件中與參數`key`對應的值。" + }, + "$spread": { + "args": "object", + "desc": "將物件中的鍵值對分隔成每個要素中只含有一個鍵值對的陣列。如果參數`object`是陣列,那麼返回值的陣列中包含所有物件中的鍵值對。" + }, + "$merge": { + "args": "array<object>", + "desc": "將輸入陣列`objects`中所有的鍵值對合併到一個`object`中並返回。如果輸入陣列的要素中含有重複的鍵,則返回的`object`中將只包含陣列中最後出現要素的值。如果輸入陣列中包括物件以外的元素,則拋出錯誤。" + }, + "$sift": { + "args": "object, function", + "desc": "輸出參數`object`中符合`function`的鍵值對。\n\n`function`必須含有下述參數。\n\n`function(value [, key [, object]])`" + }, + "$each": { + "args": "object, function", + "desc": "將函數`function`應用於`object`中的所有鍵值對並輸出由所有返回值組成的陣列。" + }, + "$map": { + "args": "array, function", + "desc": "將函數`function`應用於陣列`array`中所有的值並輸出由返回值組成的陣列。\n\n`function`中必須含有下述參數。\n\n`function(value [, index [, array]])`" + }, + "$filter": { + "args": "array, function", + "desc": "輸出陣列`array`中符合函數`function`條件的值組成的陣列。\n\n`function`必須包括下述參數。\n\n`function(value [, index [, array]])`" + }, + "$reduce": { + "args": "array, function [, init]", + "desc": "將`function`依次應用於陣列中的各要素值。 其中,前一個要素值的計算結果將參與到下一次的函數運算中。。\n\n函數`function`接受兩個參數並作為中綴標記法中的操作符。\n\n可省略的參數`init`將作為運算的初始值。" + }, + "$flowContext": { + "args": "string", + "desc": "獲取流上下文(流等級的上下文,可以讓所有節點共用)的屬性。" + }, + "$globalContext": { + "args": "string", + "desc": "獲取全域上下文的屬性。" + }, + "$pad": { + "args": "string, width [, char]", + "desc": "根據需要,向字串`string`的副本中填充文字使該字串的字數達到`width`的絕對值並返回填充文字後的字串。\n\n如果`width`的值為正,則向字串`string`的右側填充文字,如果`width`為負,則向字串`string`的左側填充文字。\n\n可選參數`char`用來指定填充的文字。如果未指定該參數,則填充空白文字。" + }, + "$fromMillis": { + "args": "number", + "desc": "將表示從UNIX時間 (1970年1月1日 UTC/GMT的午夜)開始到現在的毫秒數的數值轉換成ISO 8601形式時間戳記的字串。" + }, + "$formatNumber": { + "args": "number, picture [, options]", + "desc": "將`number`轉換成具有`picture`所指定的數值格式的字串。\n\n此函數的功能與XPath F&O 3.1規格中定義的XPath/XQuery函數的fn:format-number功能相一致。參數`picture`用於指定數值的轉換格式,其語法與fn:format-number中的定義一致。\n\n可選的第三參數`options`用來覆蓋預設的局部環境格式,如小數點分隔符號。如果指定該參數,那麼該參數必須是包含name/value對的物件,並且name/value對必須符合XPath F&O 3.1規格中記述的數值格式。" + }, + "$formatBase": { + "args": "number [, radix]", + "desc": "將`number`變換為以參數`radix`的值為基數形式的字串。如果不指定`radix`的值,則默認基數為10。指定的`radix`值必須在2~36之間,否則拋出錯誤。" + }, + "$toMillis": { + "args": "timestamp", + "desc": "將ISO 8601格式的字串`timestamp`轉換為從UNIX時間 (1970年1月1日 UTC/GMT的午夜)開始到現在的毫秒數。如果該字串的格式不正確,則拋出錯誤。" + } +} From a42d7d867e83c4a5b65be7df59ca4efd844cd667 Mon Sep 17 00:00:00 2001 From: Yuma Matsuura此節點是您安裝,但Node-RED所不知道的類型。
如果在此狀態下部署節點,那麼它的配置將被保留,但是流程將不會啟動,直到安裝缺少的節點。
有關更多説明,請參閱資訊側欄
" + }, + "mqtt": { + "label": { + "broker": "服務端", + "example": "e.g. localhost", + "output": "輸出", + "qos": "QoS", + "clientid": "使用者端ID", + "port": "埠", + "keepalive": "Keepalive計時(秒)", + "cleansession": "使用新的會話", + "use-tls": "使用安全連接 (SSL/TLS)", + "tls-config":"TLS 設置", + "verify-server-cert":"驗證伺服器憑證", + "compatmode": "使用舊式MQTT 3.1支援" + }, + "tabs-label": { + "connection": "連接", + "security": "安全", + "will": "Will信息", + "birth": "Birth信息" + }, + "placeholder": { + "clientid": "留白則自動隨機生成", + "clientid-nonclean":"如非新會話,必須設置使用者端ID", + "will-topic": "留白將禁止Will資訊", + "birth-topic": "留白將禁止Birth資訊" + }, + "state": { + "connected": "已連接到服務端: __broker__", + "disconnected": "已斷開與服務端 __broker__ 的連結", + "connect-failed": "與服務端 __broker__ 的連接失敗" + }, + "retain": "保留", + "output": { + "buffer": "Buffer", + "string": "字串", + "base64": "Base64編碼字串" + }, + "true": "是", + "false": "否", + "tip": "提示: 若希望通過msg屬性對topic(資訊), qos及retain(保留)進行設置, 則將上述項留白", + "errors": { + "not-defined": "主題未設置", + "missing-config": "未設置服務端", + "invalid-topic": "主題無效", + "nonclean-missingclientid": "使用者端ID未設定,使用新會話" + } + }, + "httpin": { + "label": { + "method": "請求方式", + "url": "URL", + "doc": "文字檔", + "return": "返回", + "upload": "接受檔案上傳?", + "status": "狀態碼", + "headers": "Header", + "other": "其他" + }, + "setby": "- 用 msg.method 設定 -", + "basicauth": "基本認證", + "use-tls": "使用安全連接 (SSL/TLS) ", + "tls-config":"TLS 設置", + "utf8": "UTF-8 字串", + "binary": "二進位資料", + "json": "JSON對象", + "tip": { + "in": "相對URL", + "res": "發送到此節點的消息必須來自http input節點", + "req": "提示:如果JSON解析失敗,則獲取的字串將按原樣返回." + }, + "httpreq": "http 請求", + "errors": { + "not-created": "當httpNodeRoot為否時,無法創建http-in節點", + "missing-path": "無路徑", + "no-response": "無響應物件", + "json-error": "JSON 解析錯誤", + "no-url": "未設定 URL", + "deprecated-call":"__method__方法已棄用", + "invalid-transport":"非HTTP傳輸請求" + }, + "status": { + "requesting": "請求中" + } + }, + "websocket": { + "label": { + "type": "類型", + "path": "路徑", + "url": "URL" + }, + "listenon": "監聽", + "connectto": "連接", + "sendrec": "發送/接受", + "payload": "有效載荷", + "message": "完整資訊", + "tip": { + "path1": "預設情況下,payload
將包含要發送或從Websocket接收的資料。偵聽器可以配置為以JSON格式的字串發送或接收整個消息物件.",
+ "path2": "這條路徑將相對於 ",
+ "url1": "URL 應該使用ws://或者wss://方案並指向現有的websocket監聽器.",
+ "url2": "預設情況下,payload
將包含要發送或從Websocket接收的資料。可以將使用者端配置為以JSON格式的字串發送或接收整個消息物件."
+ },
+ "errors": {
+ "connect-error": "ws連接發生了錯誤: ",
+ "send-error": "發送時發生了錯誤: ",
+ "missing-conf": "未設置伺服器"
+ }
+ },
+ "watch": {
+ "label": {
+ "files": "文件",
+ "recursive": "遞迴所有子資料夾"
+ },
+ "placeholder": {
+ "files": "逗號分開文件或資料夾"
+ },
+ "tip": "在Windows上,請務必使用雙斜杠 \\\\ 來隔開資料夾名字"
+ },
+ "tcpin": {
+ "label": {
+ "type": "類型",
+ "output": "輸出",
+ "port": "埠",
+ "host": "主機位址",
+ "payload": "的有效載荷",
+ "delimited": "分隔符號號",
+ "close-connection": "是否在成功發送每條資訊後斷開連接?",
+ "decode-base64": "用 Base64 解碼信息?",
+ "server": "伺服器",
+ "return": "返回",
+ "ms": "毫秒",
+ "chars": "字元"
+ },
+ "type": {
+ "listen": "監聽",
+ "connect": "連接",
+ "reply": "回應 TCP"
+ },
+ "output": {
+ "stream": "字串流",
+ "single": "單一",
+ "buffer": "Buffer",
+ "string": "字串",
+ "base64": "Base64 字串"
+ },
+ "return": {
+ "timeout": "指定時間後",
+ "character": "當收到某個字元為",
+ "number": "指定字元數",
+ "never": "永不 - 保持連接",
+ "immed": "馬上 - 不需要等待回復"
+ },
+ "status": {
+ "connecting": "正在連接到 __host__:__port__",
+ "connected": "已經連接到 __host__:__port__",
+ "listening-port": "監聽埠 __port__",
+ "stopped-listening": "已停止監聽埠",
+ "connection-from": "連接來自 __host__:__port__",
+ "connection-closed": "連接已關閉 __host__:__port__",
+ "connections": "__count__ 個連接",
+ "connections_plural": "__count__ 個連接"
+
+ },
+ "errors": {
+ "connection-lost": "連接中斷 __host__:__port__",
+ "timeout": "超時關閉通訊端連接,埠 __port__",
+ "cannot-listen": "無法監聽埠 __port__, 錯誤: __error__",
+ "error": "錯誤: __error__",
+
+ "socket-error": "通訊端連接錯誤來自 __host__:__port__",
+ "no-host": "主機位址或埠未設定",
+ "connect-timeout": "連接逾時",
+ "connect-fail": "連接失敗"
+ }
+ },
+ "udp": {
+ "label": {
+ "listen": "監聽",
+ "onport": "埠",
+ "using": "使用",
+ "output": "輸出",
+ "group": "組",
+ "interface": "本地IP",
+ "interfaceprompt": "(可選)本地 IP 綁定到",
+ "send": "發送一個",
+ "toport": "到埠",
+ "address": "地址",
+ "decode-base64": "是否解碼Base64編碼的資訊?"
+ },
+ "placeholder": {
+ "interface": "(可選)eth0的IP地址",
+ "address": "目標IP位址"
+ },
+ "udpmsgs": "udp信息",
+ "mcmsgs": "群播信息",
+ "udpmsg": "udp信息",
+ "bcmsg": "廣播資訊",
+ "mcmsg": "群播信息",
+ "output": {
+ "buffer": "Buffer",
+ "string": "字串",
+ "base64": "Base64編碼字串"
+ },
+ "bind": {
+ "random": "綁定到任意本地埠",
+ "local": "綁定到本地埠",
+ "target": "綁定到目標埠"
+ },
+ "tip": {
+ "in": "提示:確保您的防火牆將允許資料進入",
+ "out": "提示:如果要使用msg.ip
和msg.port
設置,請將位址和埠留空",
+ "port": "正在使用埠: "
+ },
+ "status": {
+ "listener-at": "udp 監聽器正在監聽 __host__:__port__",
+ "mc-group": "udp 群播到 __group__",
+ "listener-stopped": "udp 監聽器已停止",
+ "output-stopped": "udp 輸出已停止",
+ "mc-ready": "udp 群播已準備好: __outport__ -> __host__:__port__",
+ "bc-ready": "udp 廣播已準備好: __outport__ -> __host__:__port__",
+ "ready": "udp 已準備好: __outport__ -> __host__:__port__",
+ "ready-nolocal": "udp 已準備好: __host__:__port__",
+ "re-use": "udp 重用通訊端: __outport__ -> __host__:__port__"
+ },
+ "errors": {
+ "access-error": "UDP 訪問錯誤, 你可能需要root許可權才能接入1024以下的埠",
+ "error": "錯誤: __error__",
+ "bad-mcaddress": "無效的群播地址",
+ "interface": "必須是指定介面的IP位址",
+ "ip-notset": "udp: IP地址未設定",
+ "port-notset": "udp: 埠未設定",
+ "port-invalid": "udp: 無效埠號碼",
+ "alreadyused": "udp: 埠已被佔用"
+ }
+ },
+ "switch": {
+ "label": {
+ "property": "屬性",
+ "rule": "規則",
+ "repair" : "重建資訊佇列"
+ },
+ "and": "與",
+ "checkall": "全選所有規則",
+ "stopfirst": "接受第一條匹配資訊後停止",
+ "ignorecase": "忽略大小寫",
+ "rules": {
+ "btwn":"在之間",
+ "cont":"包含",
+ "regex":"匹配規則運算式",
+ "true":"為真",
+ "false":"為假",
+ "null":"為空",
+ "nnull":"非空",
+ "head":"head",
+ "tail":"tail",
+ "index":"index between",
+ "exp":"JSONata運算式",
+ "else":"除此以外"
+ },
+ "errors": {
+ "invalid-expr": "無效的JSONata運算式: __error__",
+ "too-many" : "Switch節點中有太多待定信息"
+ }
+ },
+ "change": {
+ "label": {
+ "rules": "規則",
+ "rule": "規則",
+ "set": "設定 __property__",
+ "change": "修改 __property__",
+ "delete": "刪除 __property__",
+ "move": "移動 __property__",
+ "changeCount": "修改: __count__條規矩",
+ "regex": "使用規則運算式"
+ },
+ "action": {
+ "set": "設定",
+ "change": "修改",
+ "delete": "刪除",
+ "move": "轉移",
+ "to": "到",
+ "search": "搜索",
+ "replace": "替代為"
+ },
+ "errors": {
+ "invalid-from": "無效的'from'屬性: __error__",
+ "invalid-json": "無效的'to'JSON 屬性",
+ "invalid-expr": "無效的JSONata運算式: __error__"
+ }
+ },
+ "range": {
+ "label": {
+ "action": "操作",
+ "inputrange": "映射輸入資料",
+ "resultrange": "至目標範圍",
+ "from": "從",
+ "to": "到",
+ "roundresult": "取最接近整數?"
+ },
+ "placeholder": {
+ "min": "e.g. 0",
+ "maxin": "e.g. 99",
+ "maxout": "e.g. 255"
+ },
+ "scale": {
+ "payload": "按比例msg.payload",
+ "limit": "按比例並設定界限至目標範圍",
+ "wrap": "按比例並包含在目標範圍內"
+ },
+ "tip": "提示: 此節點僅對數字有效",
+ "errors": {
+ "notnumber": "不是一個數字"
+ }
+ },
+ "csv": {
+ "label": {
+ "columns": "列",
+ "separator": "分隔符號",
+ "c2o": "CSV至對象",
+ "o2c": "對象至CSV",
+ "input": "輸入",
+ "skip-s": "忽略前",
+ "skip-e": "行",
+ "firstrow": "第一行包含列名",
+ "output": "輸出",
+ "includerow": "包含列名行",
+ "newline": "分行符號"
+ },
+ "placeholder": {
+ "columns": "用逗號分割列名"
+ },
+ "separator": {
+ "comma": "逗號",
+ "tab": "Tab",
+ "space": "空格",
+ "semicolon": "分號",
+ "colon": "冒號",
+ "hashtag": "井號",
+ "other": "其他..."
+ },
+ "output": {
+ "row": "每行一條信息",
+ "array": "僅一條資訊 [陣列]"
+ },
+ "newline": {
+ "linux": "Linux (\\n)",
+ "mac": "Mac (\\r)",
+ "windows": "Windows (\\r\\n)"
+ },
+ "errors": {
+ "csv_js": "此節點僅處理CSV字串或JS物件",
+ "obj_csv": "對象->CSV轉換未設定列模版"
+ }
+ },
+ "html": {
+ "label": {
+ "select": "選取項",
+ "output": "輸出"
+ },
+ "output": {
+ "html": "選定元素的html內容",
+ "text": "選定元素的純文字內容",
+ "attr": "包含選定元素的所有屬性的物件"
+ },
+ "format": {
+ "single": "一條資訊 [陣列]",
+ "multi": "多條資訊,每條一個元素"
+ }
+ },
+ "json": {
+ "errors": {
+ "dropped-object": "忽略非物件格式的有效負載",
+ "dropped": "忽略不支援格式的有效負載類型",
+ "dropped-error": "轉換有效負載失敗"
+ },
+ "label": {
+ "o2j": "對象至JSON",
+ "pretty": "格式化JSON字串",
+ "action": "操作",
+ "property": "屬性",
+ "actions": {
+ "toggle": "JSON字串與物件互轉",
+ "str":"總是轉為JSON字串",
+ "obj":"總是轉為JS對象"
+ }
+ }
+ },
+ "yaml": {
+ "errors": {
+ "dropped-object": "忽略非物件格式的有效負載",
+ "dropped": "忽略不支援格式的有效負載類型",
+ "dropped-error": "轉換有效負載失敗"
+ }
+ },
+ "xml": {
+ "label": {
+ "represent": "XML標籤屬性的屬性名稱",
+ "prefix": "標籤文本內容的屬性名稱",
+ "advanced": "高級選項",
+ "x2o": "XML到物件選項"
+ },
+ "errors": {
+ "xml_js": "此節點僅處理XML字串或JS物件."
+ }
+ },
+ "rpi-gpio": {
+ "label": {
+ "gpiopin": "GPIO",
+ "selectpin": "選擇引腳",
+ "resistor": "電阻?",
+ "readinitial": "在部署/重啟時讀取引腳的初始狀態?",
+ "type": "類型",
+ "initpin": "初始化引腳狀態?",
+ "debounce": "去抖動",
+ "freq": "頻率",
+ "button": "按鈕",
+ "pimouse": "Pi滑鼠",
+ "pikeyboard": "Pi鍵盤",
+ "left": "左",
+ "right": "右",
+ "middle": "中"
+ },
+ "resistor": {
+ "none": "無",
+ "pullup": "上拉電阻",
+ "pulldown": "下拉電阻"
+ },
+ "digout": "數位輸出",
+ "pwmout": "PWM輸出",
+ "servo": "伺服輸出",
+ "initpin0": "初始引腳電平 - 低(0)",
+ "initpin1": "初始引腳電平 - 高(1)",
+ "left": "左",
+ "right": "右",
+ "middle": "中",
+ "any": "任何",
+ "pinname": "引腳",
+ "alreadyuse": "已被使用",
+ "alreadyset": "已被設為",
+ "tip": {
+ "pin": "正在使用引腳: ",
+ "in": "提示: 僅接受數位輸入 - 輸出必須為0或1.",
+ "dig": "提示: 如用數位輸出 - 輸入必須為0或1.",
+ "pwm": "提示: 如用PWM輸出 - 輸入必須為0至100之間; 如用高頻率可能會比預期佔用更多CPU資源.",
+ "ser": "提示: 如用伺服輸出 - 輸入必須為0至100之間. 50為中間值."
+ },
+ "types": {
+ "digout": "數位輸出",
+ "input": "輸入",
+ "pullup": "含有上拉電阻的輸入",
+ "pulldown": "含有下拉電阻的輸入",
+ "pwmout": "PWM輸出",
+ "servo": "伺服輸出"
+ },
+ "status": {
+ "stopped": "已停止",
+ "closed": "已關閉",
+ "not-running": "不運行"
+ },
+ "errors": {
+ "ignorenode": "忽略樹莓派的特定節點",
+ "version": "版本命令失敗",
+ "sawpitype": "查看Pi類型",
+ "libnotfound": "找不到樹莓派RPi.GPIO的python庫",
+ "alreadyset": "GPIO引腳 __pin__ 已經被設定為類型: __type__",
+ "invalidpin": "無效GPIO引腳",
+ "invalidinput": "無效輸入",
+ "needtobeexecutable": "__command__須為可運行命令",
+ "mustbeexecutable": "nrgpio須為可運行",
+ "commandnotfound": "nrgpio命令不存在",
+ "commandnotexecutable": "nrgpio命令不可運行",
+ "error": "錯誤: __error__",
+ "pythoncommandnotfound": "nrpgio python命令未處於運行狀態"
+ }
+ },
+ "file": {
+ "label": {
+ "filename": "檔案名",
+ "action": "行為",
+ "addnewline": "向每個有效載荷添加分行符號(\\n)?",
+ "createdir": "創建目錄(如果不存在)?",
+ "outputas": "輸出",
+ "breakchunks": "分拆成塊",
+ "breaklines": "分拆成行",
+ "filelabel": "文件",
+ "sendError": "發生錯誤時發送消息(傳統模式)",
+ "deletelabel": "刪除 __file__"
+ },
+ "action": {
+ "append": "追加至文件",
+ "overwrite": "複寫文件",
+ "delete": "刪除檔"
+ },
+ "output": {
+ "utf8": "一個utf8字串",
+ "buffer": "一個Buffer物件",
+ "lines": "每行一條信息",
+ "stream": "一個Buffer流"
+ },
+ "status": {
+ "wrotefile": "寫入至文件: __file__",
+ "deletedfile": "刪除檔: __file__",
+ "appendedfile": "追加至文件: __file__"
+ },
+ "errors": {
+ "nofilename": "未指定檔案名",
+ "invaliddelete": "警告:無效刪除。請在配置對話方塊中使用特定的刪除選項",
+ "deletefail": "無法刪除檔: __error__",
+ "writefail": "無法寫入文件: __error__",
+ "appendfail": "無法追加到文件: __error__",
+ "createfail": "檔創建失敗: __error__"
+ },
+ "tip": "提示: 檔案名應該是絕對路徑,否則它將相對於Node-RED進程的工作目錄。"
+ },
+ "split": {
+ "intro":"基於以下類型拆分msg.payload
:",
+ "object":"對象",
+ "objectSend":"每個鍵值對作為單個消息發送",
+ "strBuff":"字串 / Buffer",
+ "array":"陣列",
+ "splitUsing":"拆分使用",
+ "splitLength":"固定長度",
+ "stream":"作為消息流處理",
+ "addname":" 複製鍵到 "
+ },
+ "join":{
+ "mode":{
+ "mode":"模式",
+ "auto":"自動",
+ "merge":"合併序列",
+ "reduce":"縮減序列",
+ "custom":"手動"
+ },
+ "combine":"合併每個",
+ "create":"輸出為",
+ "type":{
+ "string":"字串",
+ "array":"陣列",
+ "buffer":"Buffer",
+ "object":"鍵值對對象",
+ "merged":"合併對象"
+ },
+ "using":"使用此值",
+ "key":"作為鍵",
+ "joinedUsing":"合併符號",
+ "send":"發送資訊:",
+ "afterCount":"達到一定數量的資訊時",
+ "count":"數量",
+ "subsequent":"和每個後續的消息",
+ "afterTimeout":"第一條消息的若干時間後",
+ "seconds":"秒",
+ "complete":"在收到存在msg.complete
的消息後",
+ "tip":"此模式假定此節點與split相連, 或者接收到的消息有正確配置的msg.parts
屬性.",
+ "too-many" : "join節點中有太多待定信息",
+ "merge": {
+ "topics-label":"合併主題",
+ "topics":"主題",
+ "topic" : "主題",
+ "on-change":"當收到一個新主題時發送已合併資訊"
+ },
+ "reduce": {
+ "exp": "Reduce運算式",
+ "exp-value": "exp",
+ "init": "初始值",
+ "right": "反向求值(從後往前)",
+ "fixup": "Fix-up exp"
+ },
+ "errors": {
+ "invalid-expr": "無效的JSONata運算式: __error__"
+ }
+ },
+ "sort" : {
+ "target" : "排序屬性",
+ "seq" : "資訊佇列",
+ "key" : "鍵值",
+ "elem" : "元素值",
+ "order" : "順序",
+ "ascending" : "昇冪",
+ "descending" : "降冪",
+ "as-number" : "作為數值",
+ "invalid-exp" : "sort節點中存在無效的JSONata運算式",
+ "too-many" : "sort節點中有太多待定信息",
+ "clear" : "清空sort節點中的待定資訊"
+ },
+ "batch" : {
+ "mode": {
+ "label" : "模式",
+ "num-msgs" : "按指定數量分組",
+ "interval" : "按時間間隔分組",
+ "concat" : "按主題分組"
+ },
+ "count": {
+ "label" : "分組數量",
+ "overlap" : "隊末隊首重疊數量",
+ "count" : "數量",
+ "invalid" : "無效的分組數量或重疊數量"
+ },
+ "interval": {
+ "label" : "時間間隔",
+ "seconds" : "秒",
+ "empty" : "無數據到達時發送空資訊"
+ },
+ "concat": {
+ "topics-label": "主題",
+ "topic" : "主題"
+ },
+ "too-many" : "batch節點中有太多待定信息",
+ "unexpected" : "未知模式",
+ "no-parts" : "資訊中沒有parts屬性"
+ }
+}
From 17653761b9b2a31b2466e79802ed907f3edd3b94 Mon Sep 17 00:00:00 2001
From: Yuma Matsuura
Date: Thu, 23 Jan 2020 08:55:50 -0500
Subject: [PATCH 015/335] Add support for user definable properties to inject
node
---
.../nodes/core/common/20-inject.html | 179 ++++++++++++++----
.../@node-red/nodes/core/common/20-inject.js | 67 ++++---
2 files changed, 181 insertions(+), 65 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/common/20-inject.html b/packages/node_modules/@node-red/nodes/core/common/20-inject.html
index 77ced7d66..c45be4f86 100644
--- a/packages/node_modules/@node-red/nodes/core/common/20-inject.html
+++ b/packages/node_modules/@node-red/nodes/core/common/20-inject.html
@@ -15,15 +15,12 @@
-->
diff --git a/packages/node_modules/@node-red/nodes/core/function/89-trigger.js b/packages/node_modules/@node-red/nodes/core/function/89-trigger.js
index 5dfe45fee..d0a350e6a 100644
--- a/packages/node_modules/@node-red/nodes/core/function/89-trigger.js
+++ b/packages/node_modules/@node-red/nodes/core/function/89-trigger.js
@@ -25,6 +25,7 @@ module.exports = function(RED) {
this.op1type = n.op1type || "str";
this.op2type = n.op2type || "str";
this.second = n.second || false;
+ this.property = n.property || "topic";
if (this.op1type === 'val') {
if (this.op1 === 'true' || this.op1 === 'false') {
@@ -112,7 +113,7 @@ module.exports = function(RED) {
});
var processMessage = function(msg) {
- var topic = msg.topic || "_none";
+ var topic = RED.util.getMessageProperty(msg,node.property) || "_none";
var promise;
if (node.bytopic === "all") { topic = "_none"; }
node.topics[topic] = node.topics[topic] || {};
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/function/89-trigger.html b/packages/node_modules/@node-red/nodes/locales/en-US/function/89-trigger.html
index 836cabc6f..3caa0ab0a 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/function/89-trigger.html
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/function/89-trigger.html
@@ -14,7 +14,7 @@
limitations under the License.
-->
-
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
index 5eb83f9d1..5774d5dac 100755
--- a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
@@ -302,7 +302,7 @@
"wait-for": "wait for",
"wait-loop": "resend it every",
"for": "Handling",
- "bytopics": "each msg.topic independently",
+ "bytopics": "each",
"alltopics": "all messages",
"duration": {
"ms": "Milliseconds",
diff --git a/packages/node_modules/@node-red/nodes/locales/ja/messages.json b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
index adc033390..be98d50e3 100755
--- a/packages/node_modules/@node-red/nodes/locales/ja/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
@@ -302,7 +302,7 @@
"wait-for": "指定した時間待機",
"wait-loop": "指定した時間間隔毎に送信を繰り返す",
"for": "処理対象",
- "bytopics": "msg.topic毎",
+ "bytopics": "毎",
"alltopics": "全メッセージ",
"duration": {
"ms": "ミリ秒",
diff --git a/test/nodes/core/function/89-trigger_spec.js b/test/nodes/core/function/89-trigger_spec.js
index ebf1c8db9..063fec47c 100644
--- a/test/nodes/core/function/89-trigger_spec.js
+++ b/test/nodes/core/function/89-trigger_spec.js
@@ -378,6 +378,51 @@ describe('trigger node', function() {
});
});
+ it('should handle multiple other properties individually if asked to do so', function(done) {
+ var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", bytopic:"topic", property:"foo", op1:"1", op2:"0", op1type:"num", op2type:"num", duration:"30", wires:[["n2"]] },
+ {id:"n2", type:"helper"} ];
+ helper.load(triggerNode, flow, function() {
+ var n1 = helper.getNode("n1");
+ var n2 = helper.getNode("n2");
+ var c = 0;
+ n2.on("input", function(msg) {
+ try {
+ c += 1;
+ if (c === 1) {
+ msg.should.have.a.property("payload", 1);
+ msg.should.have.a.property("foo", "A");
+ }
+ else if (c === 2) {
+ msg.should.have.a.property("payload", 1);
+ msg.should.have.a.property("foo", "B");
+ }
+ else if (c === 3) {
+ msg.should.have.a.property("payload", 1);
+ msg.should.have.a.property("foo", "C");
+ }
+ else if (c === 4) {
+ msg.should.have.a.property("payload", 0);
+ msg.should.have.a.property("foo", "A");
+ }
+ else if (c === 5) {
+ msg.should.have.a.property("payload", 0);
+ msg.should.have.a.property("foo", "B");
+ }
+ else if (c === 6) {
+ msg.should.have.a.property("payload", 0);
+ msg.should.have.a.property("foo", "C");
+ done();
+ }
+ } catch(err) {
+ done(err);
+ }
+ });
+ n1.emit("input", {payload:1,foo:"A"});
+ n1.emit("input", {payload:2,foo:"B"});
+ n1.emit("input", {payload:3,foo:"C"});
+ });
+ });
+
it('should be able to return things from flow and global context variables', function(done) {
var spy = sinon.stub(RED.util, 'evaluateNodeProperty',
function(arg1, arg2, arg3, arg4, arg5) { if (arg5) { arg5(null, arg1) } else { return arg1; } }
From 87aacb4270f1db52952e6257e115cc359f8350f9 Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones 该节点不包含 该节点不包含 默认情况下,节点会获取同一工作空间标签页上报告所有节点的状态。可以通过配置来设定目标节点。 该节点可用于在流中创建一个超时。 默认情况下,当它收到一条消息时,它将发送一条带有 可以将发送的每个消息的payload配置为各种值,包括不发送任何内容的选项。例如,将初始消息设置为nothing,然后选择将计时器与每个收到的消息一起扩展的选项,则该节点将充当看门狗计时器;仅在设置的间隔内未收到任何消息时才发送消息。 该节点可用于在流中创建一个超时。 默认情况下,当它收到一条消息时,它将发送一条带有 可以将发送的每个消息的有效荷载配置为各种值,包括不发送任何内容的选项。例如,将初始消息设置为nothing,然后选择将计时器与每个收到的消息一起扩展的选项,则该节点将充当看门狗计时器;仅在设置的间隔内未收到任何消息时才发送消息。 如果设置为字符串类型,则该节点支持mustache模板语法。 如果节点收到具有 如果节点收到具有 可以将节点配置为以固定的时间间隔重新发送消息,直到被收到的消息重置为止。 (可选)可以将节点配置为将带有 错误可能会在第三个端口 运行的命令是在节点内定义的,带有附加 带空格的命令或参数应该用引号引起来: 返回的 返回的 节点处于活动状态时,该节点的状态图标和PID将可见。对此更改可以通过 发送 如果节点有多个进程在运行,则还必须设置 如果 如果 提示:如果运行Python应用程序,则可能需要使用 写入完成后,输入消息将发送到输出端口。 每个消息payload将添加到文件的末尾,可以选择在每个消息之间添加一个换行符(\n)。 每个消息的有效荷载将添加到文件的末尾,可以选择在每个消息之间添加一个换行符(\n)。 如果使用 可以将其配置为覆盖整个文件,而不是在文件后添加段落。例如,在将二进制数据写入文件(例如图像)时,应使用此选项,并且应禁用添加换行符的选项。 可以从编码列表中指定写入文件的数据的编码。 文件名应该是绝对路径,否则将相对于Node-RED进程的工作目录。 流程以安全模式停止。 您可以修改流程并部署更改以重新启动。 由于无法解密凭据,因此流程停止。 流程凭据文件已加密,但是项目的加密密钥丢失或无效。 凭据无法解密 流凭据文件已加密,但是项目的加密密钥丢失或无效。 流凭据文件将在下一次部署时重置。任何现有的流凭证将被清除。 找不到项目流程文件。 该项目未配置流程文件。 找不到项目包文件。 项目缺少package.json文件。 该项目为空。 是否要创建一组默认的项目文件? 未找到项目'__project__'。 自动合并更改失败。 修复未合并的冲突,然后提交结果。 '__module__'加载失败 __error__ \"__file__\"已存在 是否要替换它? 无法安装此模块,因为它包含已安装的 与 无法提取远程更改;您未暂存的本地更改将被覆盖。 请先提交更改,然后重试。 远程有无关的提交历史 您确定要将这些更改拉入本地仓库吗? 缓冲区类型被存储为字节值的JSON数组。编辑器将尝试将输入的数值解析为JSON数组。如果它不是有效的JSON,它将被视为UTF-8字符串,并被转换为单个字符代码点的数组。 例如,详细
- payload
。有效荷载
。输入
输出
详细
- 1
的payload的消息。然后它将等待250毫秒,再发送第二条消息,其payload为0
。这可以用于使连接到Raspberry Pi GPIO引脚的LED闪烁等例子上。1
的有效荷载的消息。然后它将等待250毫秒,再发送第二条消息,其有效荷载为0
。这可以用于使连接到Raspberry Pi GPIO引脚的LED闪烁等例子上。reset
属性或与节点中配置的匹配的payload
的消息,则将清除当前正在进行的任何超时或重复,并且不会触发任何消息。reset
属性或与节点中配置的匹配的有效荷载
的消息,则将清除当前正在进行的任何超时或重复,并且不会触发任何消息。msg.topic
的消息视为独立的流。msg.payload
上返回额外的信息,例如message
字符串,signal
字符串。msg.payload
的选项和另外一组参数。“这是一个参数”
payload
通常是字符串类型,除非检测到非UTF8字符,在这种情况下,它会是buffer类型。有效荷载
通常是字符串类型,除非检测到非UTF8字符,在这种情况下,它会是buffer类型。Status
节点读取。杀死进程
msg.kill
将杀死一个活动进程。msg.kill
应该是包含要发送的信号类型的字符串,例如SIGINT
,SIGQUIT
或SIGHUP
。如果设置为空字符串,则默认为SIGTERM
。msg.pid
并设置要杀死的PID的值。Timeout
字段提供了一个值,则如果在指定的秒数过去后进程尚未完成,则该进程将自动终止。超时
字段提供了一个值,则如果在指定的秒数过去后进程尚未完成,则该进程将自动终止。-u
参数来停止对输出进行缓存。输出
详细
- msg.filename
,则每次写入后文件都会关闭。为了获得最佳体验,请使用固定的文件名。payload
的消息,且将消息的error
属性设置为错误的详细信息。在默认情况下,此行为模式已弃用且未启用。 请参阅下面的详细信息。有效荷载
的消息,且将消息的error
属性设置为错误的详细信息。在默认情况下,此行为模式已弃用且未启用。 请参阅下面的详细信息。详细
否则,您将必须在编辑器外部手动将文件添加到项目中。
请升级到最新版本的Node.js LTS"
+ "unsupportedVersion": "您正在使用不受支持的Node.js版本
请升级到最新版本的Node.js LTS",
+ "failedToAppendNode": "
节点类型__module__
冲突缓冲区编辑器
Hello World
的值会被转换为JSON数组:[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
您有未部署的更改,这些更改将丢失。
您要继续吗?
" + }, + "send-req": { + "auth-req": "存储库需要认证", + "username": "用户名", + "password": "秘密", + "passphrase": "密码短语", + "retry": "重试", + "update-failed": "无法更新身份验证", + "unhandled": "未处理的错误响应" + }, + "create-branch-list": { + "invalid": "无效的分支", + "create": "创建分支", + "current": "当前的" + }, + "create-default-file-set": { + "no-active": "没有活动项目就无法创建默认文件集", + "no-empty": "无法在非空项目上创建默认文件集", + "git-error": "git错误" + }, + "errors": { + "no-username-email": "您的Git客户端未配置用户名/电子邮件。", + "unexpected": "发生了一个意料之外的问题", + "code": "代码" + } + }, + "editor-tab": { + "properties": "属性", + "envProperties": "环境变量", + "description": "描述", + "appearance": "外观", + "preview": "UI预览", + "defaultValue": "默认值" + }, + "languages": { + "de": "德语", + "en-US": "英文", + "ja": "日语", + "ko": "韩文", + "zh-CN": "简体中文" } } diff --git a/packages/node_modules/@node-red/editor-client/locales/zh-CN/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/zh-CN/jsonata.json index 669a7683a..56ede1b4e 100644 --- a/packages/node_modules/@node-red/editor-client/locales/zh-CN/jsonata.json +++ b/packages/node_modules/@node-red/editor-client/locales/zh-CN/jsonata.json @@ -214,5 +214,53 @@ "$toMillis": { "args": "timestamp", "desc": "将ISO 8601格式的字符串`timestamp`转换为从UNIX时间 (1970年1月1日 UTC/GMT的午夜)开始到现在的毫秒数。如果该字符串的格式不正确,则抛出错误。" + }, + "$env": { + "args": "arg", + "desc": "返回环境变量的值。\n\n这是Node-RED定义的函数。" + }, + "$eval": { + "args": "expr [, context]", + "desc": "使用当前上下文来作为评估依据,分析并评估字符串`expr`,其中包含文字JSON或JSONata表达式。" + }, + "$formatInteger": { + "args": "number, picture", + "desc": "将“数字”转换为字符串,并将其格式化为“图片”字符串指定的整数表示形式。图片字符串参数定义了数字的格式,并具有与XPath F&O 3.1 规范中的fn:format-integer相同的语法。" + }, + "$parseInteger": { + "args": "string, picture", + "desc": "使用“图片”字符串指定的格式将“字符串”参数的内容解析为整数(作为JSON数字)。图片字符串参数与$formatInteger格式相同。." + }, + "$error": { + "args": "[str]", + "desc": "引发错误并显示一条消息。 可选的`str`将替代$error()函数评估的默认消息。" + }, + "$assert": { + "args": "arg, str", + "desc": "如果`arg`为真,则该函数返回。 如果arg为假,则抛出带有str的异常作为异常消息。" + }, + "$single": { + "args": "array, function", + "desc": "返回满足参数function谓语的array参数中的唯一值 (比如:传递值时,函数返回布尔值“true”)。如果匹配值的数量不唯一时,则抛出异常。\n\n应在以下签名中提供函数:`function(value [,index [,array []]])`其中value是数组的每个输入,index是该值的位置,整个数组作为第三个参数传递。" + }, + "$encodeUrl": { + "args": "str", + "desc": "通过用表示字符的UTF-8编码的一个,两个,三个或四个转义序列替换某些字符的每个实例,对统一资源定位符(URL)组件进行编码。\n\n示例:`$encodeUrlComponent(\"?x=test\")` => `\"%3Fx%3Dtest\"`" + }, + "$encodeUrlComponent": { + "args": "str", + "desc": "通过用表示字符的UTF-8编码的一个,两个,三个或四个转义序列替换某些字符的每个实例,对统一资源定位符(URL)进行编码。\n\n示例: `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\"`" + }, + "$decodeUrl": { + "args": "str", + "desc": "解码以前由encodeUrlComponent创建的统一资源定位器(URL)组件。 \n\n示例: `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`" + }, + "$decodeUrlComponent": { + "args": "str", + "desc": "解码先前由encodeUrl创建的统一资源定位符(URL)。 \n\n示例: `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`" + }, + "$distinct": { + "args": "array", + "desc": "返回一个数组,其中重复的值已从`数组`中删除" } } From ad6104baeb0d68c098f89180227a9c8c10a12fe0 Mon Sep 17 00:00:00 2001 From: JIYE YUpayload
将包含要发送或从Websocket接收的数据。可以将客户端配置为以JSON格式的字符串发送或接收整个消息对象."
},
+ "status": {
+ "connected": "连接数 __count__",
+ "connected_plural": "连接数 __count__"
+ },
"errors": {
"connect-error": "ws连接发生了错误: ",
"send-error": "发送时发生了错误: ",
- "missing-conf": "未设置服务器"
+ "missing-conf": "未设置服务器",
+ "duplicate-path": "同一路径上不能有两个WebSocket侦听器: __path__"
}
},
"watch": {
+ "watch": "watch",
"label": {
"files": "文件",
"recursive": "递归所有子文件夹"
@@ -421,7 +487,7 @@
"output": "输出",
"port": "端口",
"host": "主机地址",
- "payload": "的有效载荷",
+ "payload": "有效载荷",
"delimited": "分隔符号",
"close-connection": "是否在成功发送每条信息后断开连接?",
"decode-base64": "用 Base64 解码信息?",
@@ -480,7 +546,6 @@
"output": "输出",
"group": "组",
"interface": "本地IP",
- "interfaceprompt": "(可选)本地 IP 绑定到",
"send": "发送一个",
"toport": "到端口",
"address": "地址",
@@ -488,6 +553,7 @@
},
"placeholder": {
"interface": "(可选)eth0的IP地址",
+ "interfaceprompt": "(可选) 要绑定的本地接口或地址",
"address": "目标IP地址"
},
"udpmsgs": "udp信息",
@@ -529,15 +595,18 @@
"ip-notset": "udp: IP地址未设定",
"port-notset": "udp: 端口未设定",
"port-invalid": "udp: 无效端口号码",
- "alreadyused": "udp: 端口已被占用"
+ "alreadyused": "udp: 端口已被占用",
+ "ifnotfound": "udp: 接口 __iface__ 未发现"
}
},
"switch": {
+ "switch": "switch",
"label": {
"property": "属性",
"rule": "规则",
"repair" : "重建信息队列"
},
+ "previous": "先前值",
"and": "与",
"checkall": "全选所有规则",
"stopfirst": "接受第一条匹配信息后停止",
@@ -550,11 +619,15 @@
"false":"为假",
"null":"为空",
"nnull":"非空",
- "head":"head",
- "tail":"tail",
- "index":"index between",
+ "istype": "类型是",
+ "empty": "为空",
+ "nempty": "非空",
+ "head":"头",
+ "tail":"尾",
+ "index":"索引在..中间",
"exp":"JSONata表达式",
- "else":"除此以外"
+ "else":"除此以外",
+ "hask": "拥有键"
},
"errors": {
"invalid-expr": "无效的JSONata表达式: __error__",
@@ -588,6 +661,7 @@
}
},
"range": {
+ "range": "range",
"label": {
"action": "操作",
"inputrange": "映射输入数据",
@@ -623,7 +697,8 @@
"firstrow": "第一行包含列名",
"output": "输出",
"includerow": "包含列名行",
- "newline": "换行符"
+ "newline": "换行符",
+ "usestrings": "parse numerical values"
},
"placeholder": {
"columns": "用逗号分割列名"
@@ -654,7 +729,8 @@
"html": {
"label": {
"select": "选取项",
- "output": "输出"
+ "output": "输出",
+ "in": "in"
},
"output": {
"html": "选定元素的html内容",
@@ -670,7 +746,9 @@
"errors": {
"dropped-object": "忽略非对象格式的有效负载",
"dropped": "忽略不支持格式的有效负载类型",
- "dropped-error": "转换有效负载失败"
+ "dropped-error": "转换有效负载失败",
+ "schema-error": "JSON架构错误",
+ "schema-error-compile": "JSON架构错误: 未能编译架构"
},
"label": {
"o2j": "对象至JSON",
@@ -713,7 +791,10 @@
"breaklines": "分拆成行",
"filelabel": "文件",
"sendError": "发生错误时发送消息(传统模式)",
- "deletelabel": "删除 __file__"
+ "deletelabel": "删除 __file__",
+ "encoding": "编码",
+ "utf8String": "UTF8字符串",
+ "binaryBuffer": "二进制buffer"
},
"action": {
"append": "追加至文件",
@@ -731,6 +812,21 @@
"deletedfile": "删除文件: __file__",
"appendedfile": "追加至文件: __file__"
},
+ "encoding": {
+ "none": "默认",
+ "native": "Native",
+ "unicode": "Unicode",
+ "japanese": "日本",
+ "chinese": "中国",
+ "korean": "韩国",
+ "taiwan": "台湾/香港",
+ "windows": "Windows代码页",
+ "iso": "ISO代码页",
+ "ibm": "IBM代码页",
+ "mac": "Mac代码页",
+ "koi8": "KOI8代码页",
+ "misc": "其它"
+ },
"errors": {
"nofilename": "未指定文件名",
"invaliddelete": "警告:无效删除。请在配置对话框中使用特定的删除选项",
@@ -742,6 +838,7 @@
"tip": "提示: 文件名应该是绝对路径,否则它将相对于Node-RED进程的工作目录。"
},
"split": {
+ "split": "split",
"intro":"基于以下类型拆分msg.payload
:",
"object":"对象",
"objectSend":"每个键值对作为单个消息发送",
@@ -753,6 +850,7 @@
"addname":" 复制键到 "
},
"join":{
+ "join": "join",
"mode":{
"mode":"模式",
"auto":"自动",
@@ -761,6 +859,7 @@
"custom":"手动"
},
"combine":"合并每个",
+ "completeMessage": "完整的消息",
"create":"输出为",
"type":{
"string":"字符串",
@@ -799,6 +898,7 @@
}
},
"sort" : {
+ "sort": "sort",
"target" : "排序属性",
"seq" : "信息队列",
"key" : "键值",
@@ -812,6 +912,7 @@
"clear" : "清空sort节点中的待定信息"
},
"batch" : {
+ "batch": "batch",
"mode": {
"label" : "模式",
"num-msgs" : "按指定数量分组",
From 00eb474e0230159cc5335979261537b66fd47774 Mon Sep 17 00:00:00 2001
From: JIYE YU payload
將包含要發送或從Websocket接收的資料。可以將使用者端配置為以JSON格式的字串發送或接收整個消息物件."
},
+ "status": {
+ "connected": "連接數 __count__",
+ "connected_plural": "連接數 __count__"
+ },
"errors": {
"connect-error": "ws連接發生了錯誤: ",
"send-error": "發送時發生了錯誤: ",
- "missing-conf": "未設置伺服器"
+ "missing-conf": "未設置伺服器",
+ "duplicate-path": "同一路徑上不能有兩個WebSocket偵聽器: __path__"
}
},
"watch": {
+ "watch": "watch",
"label": {
"files": "文件",
"recursive": "遞迴所有子資料夾"
@@ -458,14 +524,12 @@
"connection-closed": "連接已關閉 __host__:__port__",
"connections": "__count__ 個連接",
"connections_plural": "__count__ 個連接"
-
},
"errors": {
"connection-lost": "連接中斷 __host__:__port__",
"timeout": "超時關閉通訊端連接,埠 __port__",
"cannot-listen": "無法監聽埠 __port__, 錯誤: __error__",
"error": "錯誤: __error__",
-
"socket-error": "通訊端連接錯誤來自 __host__:__port__",
"no-host": "主機位址或埠未設定",
"connect-timeout": "連接逾時",
@@ -480,14 +544,15 @@
"output": "輸出",
"group": "組",
"interface": "本地IP",
- "interfaceprompt": "(可選)本地 IP 綁定到",
"send": "發送一個",
"toport": "到埠",
"address": "地址",
- "decode-base64": "是否解碼Base64編碼的資訊?"
+ "decode-base64": "是否解碼Base64編碼的資訊?",
+ "interfaceprompt": "(可選)本地 IP 綁定到"
},
"placeholder": {
"interface": "(可選)eth0的IP地址",
+ "interfaceprompt": "(可選) 要綁定的本地接口或地址",
"address": "目標IP位址"
},
"udpmsgs": "udp信息",
@@ -529,36 +594,43 @@
"ip-notset": "udp: IP地址未設定",
"port-notset": "udp: 埠未設定",
"port-invalid": "udp: 無效埠號碼",
- "alreadyused": "udp: 埠已被佔用"
+ "alreadyused": "udp: 埠已被佔用",
+ "ifnotfound": "udp: 接口 __iface__ 未發現"
}
},
"switch": {
+ "switch": "switch",
"label": {
"property": "屬性",
"rule": "規則",
- "repair" : "重建資訊佇列"
+ "repair": "重建資訊佇列"
},
+ "previous": "先前值",
"and": "與",
"checkall": "全選所有規則",
"stopfirst": "接受第一條匹配資訊後停止",
"ignorecase": "忽略大小寫",
"rules": {
- "btwn":"在之間",
- "cont":"包含",
- "regex":"匹配規則運算式",
- "true":"為真",
- "false":"為假",
- "null":"為空",
- "nnull":"非空",
- "head":"head",
- "tail":"tail",
- "index":"index between",
- "exp":"JSONata運算式",
- "else":"除此以外"
+ "btwn": "在之間",
+ "cont": "包含",
+ "regex": "匹配規則運算式",
+ "true": "為真",
+ "false": "為假",
+ "null": "為空",
+ "nnull": "非空",
+ "istype": "類型是",
+ "empty": "為空",
+ "nempty": "非空",
+ "head": "head",
+ "tail": "tail",
+ "index": "index between",
+ "exp": "JSONata運算式",
+ "else": "除此以外",
+ "hask": "擁有鍵"
},
"errors": {
"invalid-expr": "無效的JSONata運算式: __error__",
- "too-many" : "Switch節點中有太多待定信息"
+ "too-many": "Switch節點中有太多待定信息"
}
},
"change": {
@@ -588,6 +660,7 @@
}
},
"range": {
+ "range": "range",
"label": {
"action": "操作",
"inputrange": "映射輸入資料",
@@ -623,7 +696,8 @@
"firstrow": "第一行包含列名",
"output": "輸出",
"includerow": "包含列名行",
- "newline": "分行符號"
+ "newline": "分行符號",
+ "usestrings": "解析數值"
},
"placeholder": {
"columns": "用逗號分割列名"
@@ -654,7 +728,8 @@
"html": {
"label": {
"select": "選取項",
- "output": "輸出"
+ "output": "輸出",
+ "in": "in"
},
"output": {
"html": "選定元素的html內容",
@@ -670,7 +745,9 @@
"errors": {
"dropped-object": "忽略非物件格式的有效負載",
"dropped": "忽略不支援格式的有效負載類型",
- "dropped-error": "轉換有效負載失敗"
+ "dropped-error": "轉換有效負載失敗",
+ "schema-error": "JSON架構錯誤",
+ "schema-error-compile": "JSON架構錯誤: 未能編譯架構"
},
"label": {
"o2j": "對象至JSON",
@@ -679,8 +756,8 @@
"property": "屬性",
"actions": {
"toggle": "JSON字串與物件互轉",
- "str":"總是轉為JSON字串",
- "obj":"總是轉為JS對象"
+ "str": "總是轉為JSON字串",
+ "obj": "總是轉為JS對象"
}
}
},
@@ -702,76 +779,6 @@
"xml_js": "此節點僅處理XML字串或JS物件."
}
},
- "rpi-gpio": {
- "label": {
- "gpiopin": "GPIO",
- "selectpin": "選擇引腳",
- "resistor": "電阻?",
- "readinitial": "在部署/重啟時讀取引腳的初始狀態?",
- "type": "類型",
- "initpin": "初始化引腳狀態?",
- "debounce": "去抖動",
- "freq": "頻率",
- "button": "按鈕",
- "pimouse": "Pi滑鼠",
- "pikeyboard": "Pi鍵盤",
- "left": "左",
- "right": "右",
- "middle": "中"
- },
- "resistor": {
- "none": "無",
- "pullup": "上拉電阻",
- "pulldown": "下拉電阻"
- },
- "digout": "數位輸出",
- "pwmout": "PWM輸出",
- "servo": "伺服輸出",
- "initpin0": "初始引腳電平 - 低(0)",
- "initpin1": "初始引腳電平 - 高(1)",
- "left": "左",
- "right": "右",
- "middle": "中",
- "any": "任何",
- "pinname": "引腳",
- "alreadyuse": "已被使用",
- "alreadyset": "已被設為",
- "tip": {
- "pin": "正在使用引腳: ",
- "in": "提示: 僅接受數位輸入 - 輸出必須為0或1.",
- "dig": "提示: 如用數位輸出 - 輸入必須為0或1.",
- "pwm": "提示: 如用PWM輸出 - 輸入必須為0至100之間; 如用高頻率可能會比預期佔用更多CPU資源.",
- "ser": "提示: 如用伺服輸出 - 輸入必須為0至100之間. 50為中間值."
- },
- "types": {
- "digout": "數位輸出",
- "input": "輸入",
- "pullup": "含有上拉電阻的輸入",
- "pulldown": "含有下拉電阻的輸入",
- "pwmout": "PWM輸出",
- "servo": "伺服輸出"
- },
- "status": {
- "stopped": "已停止",
- "closed": "已關閉",
- "not-running": "不運行"
- },
- "errors": {
- "ignorenode": "忽略樹莓派的特定節點",
- "version": "版本命令失敗",
- "sawpitype": "查看Pi類型",
- "libnotfound": "找不到樹莓派RPi.GPIO的python庫",
- "alreadyset": "GPIO引腳 __pin__ 已經被設定為類型: __type__",
- "invalidpin": "無效GPIO引腳",
- "invalidinput": "無效輸入",
- "needtobeexecutable": "__command__須為可運行命令",
- "mustbeexecutable": "nrgpio須為可運行",
- "commandnotfound": "nrgpio命令不存在",
- "commandnotexecutable": "nrgpio命令不可運行",
- "error": "錯誤: __error__",
- "pythoncommandnotfound": "nrpgio python命令未處於運行狀態"
- }
- },
"file": {
"label": {
"filename": "檔案名",
@@ -783,7 +790,10 @@
"breaklines": "分拆成行",
"filelabel": "文件",
"sendError": "發生錯誤時發送消息(傳統模式)",
- "deletelabel": "刪除 __file__"
+ "deletelabel": "刪除 __file__",
+ "encoding": "編碼",
+ "utf8String": "UTF8字符串",
+ "binaryBuffer": "二進制buffer"
},
"action": {
"append": "追加至文件",
@@ -801,6 +811,21 @@
"deletedfile": "刪除檔: __file__",
"appendedfile": "追加至文件: __file__"
},
+ "encoding": {
+ "none": "默認",
+ "native": "Native",
+ "unicode": "Unicode",
+ "japanese": "日本",
+ "chinese": "中國",
+ "korean": "韓國",
+ "taiwan": "臺灣/香港",
+ "windows": "Windows代碼頁",
+ "iso": "ISO代碼頁",
+ "ibm": "IBM代碼頁",
+ "mac": "Mac代碼頁",
+ "koi8": "KOI8代碼頁",
+ "misc": "其它"
+ },
"errors": {
"nofilename": "未指定檔案名",
"invaliddelete": "警告:無效刪除。請在配置對話方塊中使用特定的刪除選項",
@@ -812,50 +837,53 @@
"tip": "提示: 檔案名應該是絕對路徑,否則它將相對於Node-RED進程的工作目錄。"
},
"split": {
- "intro":"基於以下類型拆分msg.payload
:",
- "object":"對象",
- "objectSend":"每個鍵值對作為單個消息發送",
- "strBuff":"字串 / Buffer",
- "array":"陣列",
- "splitUsing":"拆分使用",
- "splitLength":"固定長度",
- "stream":"作為消息流處理",
- "addname":" 複製鍵到 "
+ "split": "split",
+ "intro": "基於以下類型拆分msg.payload
:",
+ "object": "對象",
+ "objectSend": "每個鍵值對作為單個消息發送",
+ "strBuff": "字串 / Buffer",
+ "array": "陣列",
+ "splitUsing": "拆分使用",
+ "splitLength": "固定長度",
+ "stream": "作為消息流處理",
+ "addname": " 複製鍵到 "
},
- "join":{
- "mode":{
- "mode":"模式",
- "auto":"自動",
- "merge":"合併序列",
- "reduce":"縮減序列",
- "custom":"手動"
+ "join": {
+ "join": "join",
+ "mode": {
+ "mode": "模式",
+ "auto": "自動",
+ "merge": "合併序列",
+ "reduce": "縮減序列",
+ "custom": "手動"
},
- "combine":"合併每個",
- "create":"輸出為",
- "type":{
- "string":"字串",
- "array":"陣列",
- "buffer":"Buffer",
- "object":"鍵值對對象",
- "merged":"合併對象"
+ "combine": "合併每個",
+ "completeMessage": "完整的消息",
+ "create": "輸出為",
+ "type": {
+ "string": "字串",
+ "array": "陣列",
+ "buffer": "Buffer",
+ "object": "鍵值對對象",
+ "merged": "合併對象"
},
- "using":"使用此值",
- "key":"作為鍵",
- "joinedUsing":"合併符號",
- "send":"發送資訊:",
- "afterCount":"達到一定數量的資訊時",
- "count":"數量",
- "subsequent":"和每個後續的消息",
- "afterTimeout":"第一條消息的若干時間後",
- "seconds":"秒",
- "complete":"在收到存在msg.complete
的消息後",
- "tip":"此模式假定此節點與split相連, 或者接收到的消息有正確配置的msg.parts
屬性.",
- "too-many" : "join節點中有太多待定信息",
+ "using": "使用此值",
+ "key": "作為鍵",
+ "joinedUsing": "合併符號",
+ "send": "發送資訊:",
+ "afterCount": "達到一定數量的資訊時",
+ "count": "數量",
+ "subsequent": "和每個後續的消息",
+ "afterTimeout": "第一條消息的若幹時間後",
+ "seconds": "秒",
+ "complete": "在收到存在msg.complete
的消息後",
+ "tip": "此模式假定此節點與split相連, 或者接收到的消息有正確配置的msg.parts
屬性.",
+ "too-many": "join節點中有太多待定信息",
"merge": {
- "topics-label":"合併主題",
- "topics":"主題",
- "topic" : "主題",
- "on-change":"當收到一個新主題時發送已合併資訊"
+ "topics-label": "合併主題",
+ "topics": "主題",
+ "topic": "主題",
+ "on-change": "當收到一個新主題時發送已合併資訊"
},
"reduce": {
"exp": "Reduce運算式",
@@ -868,43 +896,45 @@
"invalid-expr": "無效的JSONata運算式: __error__"
}
},
- "sort" : {
- "target" : "排序屬性",
- "seq" : "資訊佇列",
- "key" : "鍵值",
- "elem" : "元素值",
- "order" : "順序",
- "ascending" : "昇冪",
- "descending" : "降冪",
- "as-number" : "作為數值",
- "invalid-exp" : "sort節點中存在無效的JSONata運算式",
- "too-many" : "sort節點中有太多待定信息",
- "clear" : "清空sort節點中的待定資訊"
+ "sort": {
+ "sort": "排序",
+ "target": "排序屬性",
+ "seq": "資訊佇列",
+ "key": "鍵值",
+ "elem": "元素值",
+ "order": "順序",
+ "ascending": "昇冪",
+ "descending": "降冪",
+ "as-number": "作為數值",
+ "invalid-exp": "排序節點中存在無效的JSONata運算式",
+ "too-many": "排序節點中有太多待定信息",
+ "clear": "清空排序節點中的待定資訊"
},
- "batch" : {
+ "batch": {
+ "batch": "batch",
"mode": {
- "label" : "模式",
- "num-msgs" : "按指定數量分組",
- "interval" : "按時間間隔分組",
- "concat" : "按主題分組"
+ "label": "模式",
+ "num-msgs": "按指定數量分組",
+ "interval": "按時間間隔分組",
+ "concat": "按主題分組"
},
"count": {
- "label" : "分組數量",
- "overlap" : "隊末隊首重疊數量",
- "count" : "數量",
- "invalid" : "無效的分組數量或重疊數量"
+ "label": "分組數量",
+ "overlap": "隊末隊首重疊數量",
+ "count": "數量",
+ "invalid": "無效的分組數量或重疊數量"
},
"interval": {
- "label" : "時間間隔",
- "seconds" : "秒",
- "empty" : "無數據到達時發送空資訊"
+ "label": "時間間隔",
+ "seconds": "秒",
+ "empty": "無數據到達時發送空資訊"
},
"concat": {
"topics-label": "主題",
- "topic" : "主題"
+ "topic": "主題"
},
- "too-many" : "batch節點中有太多待定信息",
- "unexpected" : "未知模式",
- "no-parts" : "資訊中沒有parts屬性"
+ "too-many": "batch節點中有太多待定信息",
+ "unexpected": "未知模式",
+ "no-parts": "資訊中沒有parts屬性"
}
}
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/05-tls.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/05-tls.html
new file mode 100644
index 000000000..ee4b3bd95
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/05-tls.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/06-httpproxy.html
new file mode 100644
index 000000000..23f899627
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/06-httpproxy.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/10-mqtt.html
new file mode 100644
index 000000000..825bf218e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/10-mqtt.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httpin.html
new file mode 100644
index 000000000..0d44ce3b1
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httpin.html
@@ -0,0 +1,81 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httprequest.html
new file mode 100644
index 000000000..71ed96087
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/21-httprequest.html
@@ -0,0 +1,78 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/22-websocket.html
new file mode 100644
index 000000000..4bb2c7f4d
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/22-websocket.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/31-tcpin.html
new file mode 100644
index 000000000..2898ca718
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/31-tcpin.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/32-udp.html
new file mode 100644
index 000000000..401af48e3
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/network/32-udp.html
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-CSV.html
new file mode 100644
index 000000000..9a8638614
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-CSV.html
@@ -0,0 +1,43 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-HTML.html
new file mode 100644
index 000000000..b1559455f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-HTML.html
@@ -0,0 +1,33 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-JSON.html
new file mode 100644
index 000000000..1a46c3690
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-JSON.html
@@ -0,0 +1,43 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-XML.html
new file mode 100644
index 000000000..4f0491291
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-XML.html
@@ -0,0 +1,48 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-YAML.html
new file mode 100644
index 000000000..8ea4f87f8
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/parsers/70-YAML.html
@@ -0,0 +1,34 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/17-split.html
new file mode 100644
index 000000000..fd97b497a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/17-split.html
@@ -0,0 +1,133 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/18-sort.html
new file mode 100644
index 000000000..cb8e7fa21
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/18-sort.html
@@ -0,0 +1,41 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/19-batch.html
new file mode 100644
index 000000000..79879076e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/sequence/19-batch.html
@@ -0,0 +1,34 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/10-file.html
new file mode 100644
index 000000000..03705ea5c
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/10-file.html
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/23-watch.html
new file mode 100644
index 000000000..d8e1b5807
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/zh-TW/storage/23-watch.html
@@ -0,0 +1,25 @@
+
+
+
diff --git a/packages/node_modules/@node-red/runtime/locales/zh-TW/runtime.json b/packages/node_modules/@node-red/runtime/locales/zh-TW/runtime.json
new file mode 100644
index 000000000..b96d87a6e
--- /dev/null
+++ b/packages/node_modules/@node-red/runtime/locales/zh-TW/runtime.json
@@ -0,0 +1,174 @@
+{
+ "runtime": {
+ "welcome": "歡迎使用Node-RED",
+ "version": "__component__ 版本: __version__",
+ "unsupported_version": "__component__的不受支持的版本。要求: __requires__ 找到: __version__",
+ "paths": {
+ "settings": "設置文件 : __path__",
+ "httpStatic": "HTTP Static : __path__"
+ }
+ },
+
+ "server": {
+ "loading": "加載控制板節點",
+ "palette-editor": {
+ "disabled": "控制板編輯器已禁用:用戶設置",
+ "npm-not-found": "控制板編輯器已禁用:找不到npm命令",
+ "npm-too-old": "控制板編輯器已禁用: npm版本太舊。需要版本npm >= 3.x"
+ },
+ "errors": "無法註冊__count__節點類型",
+ "errors_plural": "無法註冊__count__個節點類型",
+ "errors-help": "使用-v運行以獲取詳細信息",
+ "missing-modules": "缺少節點模組:",
+ "node-version-mismatch": "無法在此版本上加載節點模組。要求:__ version__",
+ "type-already-registered": "'__type__'已由模組__module__註冊",
+ "removing-modules": "從配置中刪除模組",
+ "added-types": "添加的節點類型:",
+ "removed-types": "刪除的節點類型:",
+ "install": {
+ "invalid": "無效的模組名稱",
+ "installing": "安裝模組:__ name__,版本:__ version__",
+ "installed": "已安裝的模組:__ name__",
+ "install-failed": "安裝失敗",
+ "install-failed-long": "模組__name__安裝失敗:",
+ "install-failed-not-found": "$t(server.install.install-failed-long) 模組未發現",
+ "upgrading": "更新模組: __name__ 至版本: __version__",
+ "upgraded": "更新模組: __name__。 重新啟動Node-RED以使用新版本",
+ "upgrade-failed-not-found": "$t(server.install.install-failed-long) 未發現版本",
+ "uninstalling": "卸載模組: __name__",
+ "uninstall-failed": "卸載失敗",
+ "uninstall-failed-long": "卸載模組__name__失敗:",
+ "uninstalled": "卸載模組: __name__"
+ },
+ "unable-to-listen": "無法在__listenpath__上收聽",
+ "port-in-use": "錯誤: 端口正在使用中",
+ "uncaught-exception": "未捕獲的異常:",
+ "admin-ui-disabled": "管理員界面已禁用",
+ "now-running": "服務器現在在__listenpath__上運行",
+ "failed-to-start": "無法啟動服務器:",
+ "headless-mode": "在headless模式下運行",
+ "httpadminauth-deprecated": "不建議使用httpAdminAuth。請改用adminAuth"
+ },
+
+ "api": {
+ "flows": {
+ "error-save": "保存流程錯誤: __message__",
+ "error-reload": "重載流程錯誤: __message__"
+ },
+ "library": {
+ "error-load-entry": "加載庫條目'__path__'時出錯:__message__",
+ "error-save-entry": "保存庫條目'__path__'時出錯:__ message__",
+ "error-load-flow": "加載流程'__path__'時出錯:__ message__",
+ "error-save-flow": "保存流'__path__'時出錯:__ message__"
+ },
+ "nodes": {
+ "enabled": "啟用的節點類型:",
+ "disabled": "禁用的節點類型:",
+ "error-enable": "無法啟用節點:"
+ }
+ },
+
+ "comms": {
+ "error": "通訊渠道錯誤:__ message__",
+ "error-server": "通信服務器錯誤:__ message__",
+ "error-send": "通訊發送錯誤:__ message__"
+ },
+
+ "settings": {
+ "user-not-available": "無法保存用戶設置:__ message__",
+ "not-available": "設置不可用",
+ "property-read-only": "屬性“ __prop__”是只讀的"
+ },
+
+ "nodes": {
+ "credentials": {
+ "error":"加載證書時出錯:__ message__",
+ "error-saving":"保存證書時出錯:__ message__",
+ "not-registered": "證書類型'__type__'未註冊",
+ "system-key-warning": "\n\n---------------------------------------------------------------------\n您的流程證書文件是使用系統生成的密鑰加密的。\n\n如果系統生成的密鑰由於任何原因丟失,則您的證書文件將無法恢復,您將必須刪除它並重新輸入您的證書。\n\n您應該使用您的設置文件中的'credentialSecret'選項設置自己的密鑰。然後,下次部署更改時,Node-RED將使用選擇的密鑰重新加密您的證書文件。\n---------------------------------------------------------------------\n"
+ },
+ "flows": {
+ "safe-mode": "流程在安全模式下停止。部署開始。",
+ "registered-missing": "缺少註冊的類型:__ type__",
+ "error": "錯誤加載流程:__ message__",
+ "starting-modified-nodes": "啟動修改的節點",
+ "starting-modified-flows": "啟動修改的流程",
+ "starting-flows": "啟動流程",
+ "started-modified-nodes": "修改的節點已啟動",
+ "started-modified-flows": "修改的流程已啟動",
+ "started-flows": "流程已啟動",
+ "stopping-modified-nodes": "停止修改的節點",
+ "stopping-modified-flows": "停止修改的流程",
+ "stopping-flows": "停止流程",
+ "stopped-modified-nodes": "修改的節點已停止",
+ "stopped-modified-flows": "修改的流程已停止",
+ "stopped-flows": "流程已停止",
+ "stopped": "已停止",
+ "stopping-error": "錯誤停止節點:__ message__",
+ "added-flow": "流程已添加: __label__",
+ "updated-flow": "流程已更新: __label__",
+ "removed-flow": "流程已移除: __label__",
+ "missing-types": "等待缺少的類型被註冊:",
+ "missing-type-provided": " - __type__ (由npm模組__module__提供)",
+ "missing-type-install-1": "要安裝所有缺少的模組,請運行:",
+ "missing-type-install-2": "在目錄中:"
+ },
+ "flow": {
+ "unknown-type": "未知類型: __type__",
+ "missing-types": "缺少類型",
+ "error-loop": "郵件已超過最大捕獲數"
+ },
+ "index": {
+ "unrecognised-id": "無法識別的ID: __id__",
+ "type-in-use": "使用中的類型: __msg__",
+ "unrecognised-module": "無法識別的模組: __module__"
+ },
+ "registry": {
+ "localfilesystem": {
+ "module-not-found": "找不到模組:'__module__'"
+ }
+ }
+ },
+
+ "storage": {
+ "index": {
+ "forbidden-flow-name": "禁止流程名稱"
+ },
+ "localfilesystem": {
+ "user-dir": "用戶目錄: __path__",
+ "flows-file": "流程文件: __path__",
+ "create": "創建新__type__文件",
+ "empty": "現有__type__文件為空",
+ "invalid": "現有__type__文件為無效json",
+ "restore": "恢復__type__文件備份:__path__",
+ "restore-fail": "恢復__type__文件備份失敗:__ message__",
+ "fsync-fail": "將文件__path__刷新到磁盤失敗:__message__",
+ "projects": {
+ "changing-project": "設置活動項目:__ project__",
+ "active-project": "活動項目:__ project__",
+ "project-not-found": "找不到項目:__ project__",
+ "no-active-project": "沒有活動的項目:使用默認流文件",
+ "disabled": "項目已禁用:editorTheme.projects.enabled = false",
+ "disabledNoFlag": "項目已禁用:設置editorTheme.projects.enabled = true來啟用",
+ "git-not-found": "項目已禁用:找不到git命令",
+ "git-version-old": "項目已禁用:不支持的git __version__。 需要的git版本為2.x",
+ "summary": "一個Node-RED項目",
+ "readme": "### 關於\n\n這是您項目的README.md文件。它可以幫助用戶了解您的項目,如何使用它以及他們可能需要知道的其他任何信息。"
+ }
+ }
+ },
+
+ "context": {
+ "log-store-init": "上下文儲存: '__name__' [__info__]",
+ "error-loading-module": "加載上下文存儲時出錯: __message__",
+ "error-loading-module2": "加載上下文存儲時出錯 '__module__': __message__",
+ "error-module-not-defined": "上下文存儲庫'__storage__'缺少“模組”選項",
+ "error-invalid-module-name": "無效的上下文存儲名稱:'__ name__'",
+ "error-invalid-default-module": "無效的默認的上下文存儲庫: '__storage__'",
+ "unknown-store": "指定了未知的上下文存儲庫'__name__'。 使用默認存儲庫。",
+ "localfilesystem": {
+ "error-circular": "上下文__scope__包含無法保留的循環引用",
+ "error-write": "編寫上下文時出錯:__ message__"
+ }
+ }
+}
From d08e77cf36361f4c3747dd2ffc79bebb5a6a69da Mon Sep 17 00:00:00 2001
From: Nick O'Leary