@theia/core 1.72.0-next.52 → 1.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/i18n/nls.cs.json +93 -44
- package/i18n/nls.de.json +93 -44
- package/i18n/nls.es.json +93 -44
- package/i18n/nls.fr.json +93 -44
- package/i18n/nls.hu.json +93 -44
- package/i18n/nls.it.json +93 -44
- package/i18n/nls.ja.json +93 -44
- package/i18n/nls.json +93 -44
- package/i18n/nls.ko.json +93 -44
- package/i18n/nls.pl.json +93 -44
- package/i18n/nls.pt-br.json +93 -44
- package/i18n/nls.ru.json +93 -44
- package/i18n/nls.tr.json +93 -44
- package/i18n/nls.zh-cn.json +93 -44
- package/i18n/nls.zh-tw.json +93 -44
- package/lib/common/shell-quoting.d.ts +92 -0
- package/lib/common/shell-quoting.d.ts.map +1 -0
- package/lib/common/shell-quoting.js +146 -0
- package/lib/common/shell-quoting.js.map +1 -0
- package/lib/common/shell-quoting.spec.d.ts +2 -0
- package/lib/common/shell-quoting.spec.d.ts.map +1 -0
- package/lib/common/shell-quoting.spec.js +171 -0
- package/lib/common/shell-quoting.spec.js.map +1 -0
- package/lib/node/process-utils.d.ts +1 -0
- package/lib/node/process-utils.d.ts.map +1 -1
- package/lib/node/process-utils.js +15 -9
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/process-utils.spec.js +41 -0
- package/lib/node/process-utils.spec.js.map +1 -1
- package/package.json +6 -6
- package/src/common/i18n/nls.metadata.json +3417 -1177
- package/src/common/shell-quoting.spec.ts +176 -0
- package/src/common/shell-quoting.ts +236 -0
- package/src/node/process-utils.spec.ts +48 -0
- package/src/node/process-utils.ts +15 -8
package/i18n/nls.zh-tw.json
CHANGED
|
@@ -83,16 +83,10 @@
|
|
|
83
83
|
"maxRetries": {
|
|
84
84
|
"title": "請求失敗時的最大重試次數。預設值為 3"
|
|
85
85
|
},
|
|
86
|
-
"mdDescription": "整合與Anthropic API
|
|
86
|
+
"mdDescription": "整合與 Anthropic API 相容的自訂模型。必填屬性為 `model` 和 `url`。 \n 您可選擇性地 \n - 指定一個唯一的 `id`,用於在 UI 中識別該自訂模型。 若未提供,則 `model` 將被用作 `id`。 \n - 提供 `apiKey` 以存取指定 URL 所提供的 API。使用 `true` 表示使用全域 Anthropic API 金鑰。 \n - 指定 `enableStreaming: false` 以表示不使用串流功能。 \n - 指定 `useCaching: false` 以表示不使用提示詞快取。 \n - 指定 `maxRetries: <number>` 以表示請求失敗時的最大重試次數。預設值為 3。 \n 推理能力與最大輸出代碼限制取自端點的 `/v1/models` 回應。",
|
|
87
87
|
"modelId": {
|
|
88
88
|
"title": "模型 ID"
|
|
89
89
|
},
|
|
90
|
-
"reasoningApi": {
|
|
91
|
-
"title": "應使用哪種 Anthropic 推理 API 模式:`effort` 用於適應性思考(Claude 4.6+)、`budget` 用於傳統擴展思考(Claude 4.0–4.5),或 `null` 以停用。預設會根據模型名稱推斷。"
|
|
92
|
-
},
|
|
93
|
-
"supportsXHighEffort": {
|
|
94
|
-
"title": "表示模型是否接受 Anthropic 的 `xhigh` 努力值。預設情況下由模型名稱推斷得出。"
|
|
95
|
-
},
|
|
96
90
|
"url": {
|
|
97
91
|
"title": "該模型所託管的 Anthropic API 相容端點"
|
|
98
92
|
},
|
|
@@ -144,6 +138,9 @@
|
|
|
144
138
|
"defaultAgent": {
|
|
145
139
|
"description": "選用:若使用者查詢中未透過 @<代理名稱> 明確指定代理程式,則應呼叫的聊天代理程式 <代理名稱>。若未設定預設代理程式,則將套用 Theia 的預設值。"
|
|
146
140
|
},
|
|
141
|
+
"defaultToolConfirmation": {
|
|
142
|
+
"description": "此為預設確認行為,適用於在「ai-features.chat.toolConfirmation」下未設有工具專屬條目的工具。若工具明確要求在自動批准前進行確認,則無論此設定為何,預設均會採用「確認」行為。"
|
|
143
|
+
},
|
|
147
144
|
"fromClipboard": "$(clippy) 來自剪貼簿",
|
|
148
145
|
"fromClipboardDescription": "從剪貼簿貼上圖片",
|
|
149
146
|
"imageContextVariable": {
|
|
@@ -196,15 +193,15 @@
|
|
|
196
193
|
"description": "用於持久化儲存及檢索任務上下文描述的工作區相對路徑。若設定為空值,生成的任務上下文將儲存於記憶體而非磁碟。"
|
|
197
194
|
},
|
|
198
195
|
"toolConfirmation": {
|
|
196
|
+
"alwaysAllow": {
|
|
197
|
+
"description": "自動執行工具,無需確認"
|
|
198
|
+
},
|
|
199
199
|
"confirm": {
|
|
200
200
|
"description": "執行工具前請先確認"
|
|
201
201
|
},
|
|
202
|
-
"description": "
|
|
202
|
+
"description": "設定個別工具的確認行為。鍵值為工具 ID,值為確認模式。若要變更所有工具的預設值,請使用 \"ai-features.chat.defaultToolConfirmation\"。",
|
|
203
203
|
"disabled": {
|
|
204
204
|
"description": "停用工具執行"
|
|
205
|
-
},
|
|
206
|
-
"yolo": {
|
|
207
|
-
"description": "自動執行工具,無需確認"
|
|
208
205
|
}
|
|
209
206
|
},
|
|
210
207
|
"toolConfirmationTimeout": {
|
|
@@ -247,10 +244,10 @@
|
|
|
247
244
|
"toggleCapabilities": "切換功能設定"
|
|
248
245
|
},
|
|
249
246
|
"chatInputAriaLabel": "在此輸入您的訊息",
|
|
247
|
+
"chatRequestFailedWithDetail": "聊天請求失敗:{0}",
|
|
250
248
|
"chatResponses": "聊天回應",
|
|
251
249
|
"clearAllSelections": "清除搜尋字串與功能選項",
|
|
252
250
|
"code-part-renderer": {
|
|
253
|
-
"copied": "複製",
|
|
254
251
|
"generatedCode": "生成代碼"
|
|
255
252
|
},
|
|
256
253
|
"collapseAll": "收起所有",
|
|
@@ -258,7 +255,6 @@
|
|
|
258
255
|
"command-part-renderer": {
|
|
259
256
|
"commandNotExecutable": "該指令的識別碼為「{0}」,但無法從聊天視窗執行。"
|
|
260
257
|
},
|
|
261
|
-
"confirmDeleteChatMsg": "您確定要刪除此對話記錄嗎?",
|
|
262
258
|
"copyCodeBlock": "複製程式碼區塊",
|
|
263
259
|
"couldNotSendRequestToSession": "無法向會話 {1} 發送請求 \"{0}\"",
|
|
264
260
|
"delegation-response-renderer": {
|
|
@@ -293,7 +289,7 @@
|
|
|
293
289
|
"focusInput": "焦點聊天輸入",
|
|
294
290
|
"focusResponse": "焦點聊天回應",
|
|
295
291
|
"functions": "功能",
|
|
296
|
-
"functionsDescription": "
|
|
292
|
+
"functionsDescription": "由 {0} 擴充套件提供的內建功能",
|
|
297
293
|
"genericCapabilities": "通用功能",
|
|
298
294
|
"mcpFunctionsDescription": "來自連線伺服器的模型上下文協定(MCP)功能",
|
|
299
295
|
"noChatAgentsAvailable": "目前沒有可用的聊天代理程式。",
|
|
@@ -305,9 +301,6 @@
|
|
|
305
301
|
"persistedSession": "持久化會話(點擊恢復)",
|
|
306
302
|
"promptFragmentsDescription": "對話中需包含的自訂提示片段",
|
|
307
303
|
"reasoning": {
|
|
308
|
-
"high": "高",
|
|
309
|
-
"low": "低",
|
|
310
|
-
"medium": "中級",
|
|
311
304
|
"minimal": "簡約"
|
|
312
305
|
},
|
|
313
306
|
"removeChat": "移除聊天功能",
|
|
@@ -399,6 +392,7 @@
|
|
|
399
392
|
"differentAgentRequestWarning": "先前對話請求由其他客服人員處理。Claude Code 無法查看該對話內容。",
|
|
400
393
|
"directory": "目錄",
|
|
401
394
|
"domain": "網域",
|
|
395
|
+
"edit": "編輯 {0}",
|
|
402
396
|
"editAutomatically": "自動編輯",
|
|
403
397
|
"editing": "編輯",
|
|
404
398
|
"editsCount": "{0} 編輯",
|
|
@@ -523,7 +517,7 @@
|
|
|
523
517
|
},
|
|
524
518
|
"completion": {
|
|
525
519
|
"agent": {
|
|
526
|
-
"description": "
|
|
520
|
+
"description": "此代理程式可在 {0} 的程式碼編輯器中提供內嵌程式碼自動完成功能。",
|
|
527
521
|
"vars": {
|
|
528
522
|
"file": {
|
|
529
523
|
"description": "正在編輯的檔案之 URI"
|
|
@@ -587,7 +581,7 @@
|
|
|
587
581
|
"expired": "授權已過期或遭拒絕。請重新嘗試。",
|
|
588
582
|
"hint": "輸入代碼並完成授權後,請點擊下方「我已授權」。",
|
|
589
583
|
"initiating": "正在啟動驗證...",
|
|
590
|
-
"instructions": "若要授權
|
|
584
|
+
"instructions": "若要授權 {0} 使用 GitHub Copilot,請造訪以下網址並輸入代碼:",
|
|
591
585
|
"openGitHub": "開啟 GitHub",
|
|
592
586
|
"privacy": "Theia 為開源專案。我們僅要求存取您的 GitHub 使用者名稱以連接 GitHub Copilot 服務——不會存取或儲存任何其他資料。",
|
|
593
587
|
"success": "已成功登入 GitHub Copilot!",
|
|
@@ -650,8 +644,8 @@
|
|
|
650
644
|
"label": "AI 設定"
|
|
651
645
|
},
|
|
652
646
|
"blinkTitle": {
|
|
653
|
-
"agentCompleted": "
|
|
654
|
-
"namedAgentCompleted": "
|
|
647
|
+
"agentCompleted": "{0} - 代理程式已完成",
|
|
648
|
+
"namedAgentCompleted": "{0} - 代理程式「{1}」已完成"
|
|
655
649
|
},
|
|
656
650
|
"capabilityVariable": {
|
|
657
651
|
"argDescription": "提示片段識別碼,可選後綴「預設開啟」或「預設關閉」(預設為關閉)",
|
|
@@ -682,6 +676,9 @@
|
|
|
682
676
|
"code-completion": {
|
|
683
677
|
"description": "最適用於程式碼自動完成情境。"
|
|
684
678
|
},
|
|
679
|
+
"fast": {
|
|
680
|
+
"description": "針對探索或基本工具調用等較簡單的任務,提供更快且更經濟的模型,此類任務無需深度推理。"
|
|
681
|
+
},
|
|
685
682
|
"summarize": {
|
|
686
683
|
"description": "優先用於內容摘要與濃縮的模型。"
|
|
687
684
|
},
|
|
@@ -744,7 +741,7 @@
|
|
|
744
741
|
"description": "所有當前開啟檔案的簡短參考(相對路徑,以逗號分隔)"
|
|
745
742
|
},
|
|
746
743
|
"openEditorsVariable": {
|
|
747
|
-
"description": "
|
|
744
|
+
"description": "以逗號分隔的清單,列出所有目前開啟的檔案,格式為工作區相對路徑(例如:my-project/src/index.ts)。"
|
|
748
745
|
},
|
|
749
746
|
"preference": {
|
|
750
747
|
"languageModelAliases": {
|
|
@@ -860,13 +857,13 @@
|
|
|
860
857
|
"unableToDisplayVariableValue": "無法顯示變數值。",
|
|
861
858
|
"unableToResolveVariable": "無法解析變數。",
|
|
862
859
|
"variable-contribution": {
|
|
863
|
-
"builtInVariable": "
|
|
864
|
-
"currentAbsoluteFilePath": "
|
|
865
|
-
"currentFileContent": "
|
|
866
|
-
"currentRelativeDirPath": "
|
|
867
|
-
"currentRelativeFilePath": "
|
|
868
|
-
"currentSelectedText": "
|
|
869
|
-
"dotRelativePath": "
|
|
860
|
+
"builtInVariable": "{0} 內建變數",
|
|
861
|
+
"currentAbsoluteFilePath": "目前開啟檔案的絕對路徑。",
|
|
862
|
+
"currentFileContent": "目前開啟檔案的純文字內容。此處不包含內容來源的相關資訊。",
|
|
863
|
+
"currentRelativeDirPath": "包含目前開啟檔案之目錄的、以工作區為基準的路徑(例如:my-project/src)。",
|
|
864
|
+
"currentRelativeFilePath": "目前開啟檔案的工作區相對路徑(例如:my-project/src/index.ts)。",
|
|
865
|
+
"currentSelectedText": "目前在已開啟檔案中選取的純文字內容。此處不包含內容來源的相關資訊。",
|
|
866
|
+
"dotRelativePath": "指向目前開啟檔案('currentRelativeFilePath')之工作區相對路徑的簡要參考。"
|
|
870
867
|
}
|
|
871
868
|
},
|
|
872
869
|
"editor": {
|
|
@@ -910,10 +907,8 @@
|
|
|
910
907
|
"open-history-tooltip": "開啟 AI 歷史紀錄...",
|
|
911
908
|
"request-card": {
|
|
912
909
|
"promptVariant": "提示變體",
|
|
913
|
-
"request": "請求",
|
|
914
910
|
"response": "回應",
|
|
915
|
-
"timestamp": "時間戳記"
|
|
916
|
-
"title": "請求"
|
|
911
|
+
"timestamp": "時間戳記"
|
|
917
912
|
},
|
|
918
913
|
"sortChronologically": {
|
|
919
914
|
"tooltip": "按時間排序"
|
|
@@ -1003,7 +998,6 @@
|
|
|
1003
998
|
},
|
|
1004
999
|
"architectAgent": {
|
|
1005
1000
|
"mode": {
|
|
1006
|
-
"plan": "平面模式",
|
|
1007
1001
|
"planNext": "規劃模式(下一步)",
|
|
1008
1002
|
"simple": "簡易模式"
|
|
1009
1003
|
},
|
|
@@ -1041,7 +1035,7 @@
|
|
|
1041
1035
|
"label": "AI指令",
|
|
1042
1036
|
"message": "執行回調函式時傳遞參數:{0}。首個參數為動態註冊指令所對應的指令識別碼,其餘參數則為處理函式實際接收的操作參數。"
|
|
1043
1037
|
},
|
|
1044
|
-
"description": "
|
|
1038
|
+
"description": "此代理程式知悉使用者可執行的所有指令。根據使用者的請求,它能找出正確的指令,並讓使用者執行該指令。",
|
|
1045
1039
|
"response": {
|
|
1046
1040
|
"customHandler": "請嘗試執行以下指令:",
|
|
1047
1041
|
"noCommand": "抱歉,我找不到這樣的指令",
|
|
@@ -1049,7 +1043,7 @@
|
|
|
1049
1043
|
},
|
|
1050
1044
|
"vars": {
|
|
1051
1045
|
"commandIds": {
|
|
1052
|
-
"description": "
|
|
1046
|
+
"description": "可用指令清單。"
|
|
1053
1047
|
}
|
|
1054
1048
|
}
|
|
1055
1049
|
},
|
|
@@ -1093,7 +1087,7 @@
|
|
|
1093
1087
|
"description": "允許代理程式與 GitHub 進行互動。為此,代理程式可委派給 GitHub 代理程式,該代理程式能讀取與寫入問題、拉取請求、評論及儲存庫內容。"
|
|
1094
1088
|
},
|
|
1095
1089
|
"githubRepoName": {
|
|
1096
|
-
"description": "
|
|
1090
|
+
"description": "與工作區根目錄相關聯的 GitHub 儲存庫(例如「eclipse-theia/theia」)"
|
|
1097
1091
|
},
|
|
1098
1092
|
"howToGetStarted": "如何開始使用",
|
|
1099
1093
|
"model-selection-description": "請於 [AI 設定檢視窗]({0})中選擇各 AI 代理程式所使用的大型語言模型(LLMs)。",
|
|
@@ -1114,6 +1108,30 @@
|
|
|
1114
1108
|
"delegatingToAgent": "委派至 `@{0}`"
|
|
1115
1109
|
}
|
|
1116
1110
|
},
|
|
1111
|
+
"prReview": {
|
|
1112
|
+
"capability": {
|
|
1113
|
+
"codebaseExploration": {
|
|
1114
|
+
"description": "此架構將探索工作(包括架構、使用方式、規範及測試)委派給 Explore 代理程式。若此功能被停用,PR 審查者將使用其自有工具進行探索。",
|
|
1115
|
+
"name": "委派探索"
|
|
1116
|
+
},
|
|
1117
|
+
"githubInfo": {
|
|
1118
|
+
"description": "委託 GitHub 代理程式擷取拉取請求的元資料、差異、留言、檢查項目及關聯的議題。",
|
|
1119
|
+
"name": "GH PR 資訊"
|
|
1120
|
+
},
|
|
1121
|
+
"localCheckout": {
|
|
1122
|
+
"description": "將拉取請求(pull request)檢出至本地端,並保護現有工作樹的變更。",
|
|
1123
|
+
"name": "檢出"
|
|
1124
|
+
},
|
|
1125
|
+
"localValidation": {
|
|
1126
|
+
"description": "針對拉取請求執行本機安裝、建置、語法檢查、測試或類似的驗證任務。",
|
|
1127
|
+
"name": "建置"
|
|
1128
|
+
},
|
|
1129
|
+
"pendingGitHubReview": {
|
|
1130
|
+
"description": "在獲得使用者明確確認後,將任務委派給 GitHub 代理程式,以預先準備好的內嵌評論來建立或更新待審查的拉取請求。",
|
|
1131
|
+
"name": "待 GitHub 審查"
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
},
|
|
1117
1135
|
"prReviewAgent": {
|
|
1118
1136
|
"description": "一款由人工智慧驅動的 PR 審查代理程式,可統籌完整的程式碼審查工作流程:擷取 PR 資訊、探索程式碼庫、執行結構化分析、透過 diff 檢視器引導使用者互動檢視發現的問題,並可選擇在 GitHub 上建立待審查項目。"
|
|
1119
1137
|
},
|
|
@@ -1174,6 +1192,7 @@
|
|
|
1174
1192
|
}
|
|
1175
1193
|
},
|
|
1176
1194
|
"tooltip": {
|
|
1195
|
+
"errorMessage": "錯誤訊息",
|
|
1177
1196
|
"lastActivity": "最後活動",
|
|
1178
1197
|
"lastMessage": "最後訊息",
|
|
1179
1198
|
"messages": "訊息",
|
|
@@ -1336,12 +1355,12 @@
|
|
|
1336
1355
|
"id": {
|
|
1337
1356
|
"title": "用於介面中識別自訂模型的唯一識別碼"
|
|
1338
1357
|
},
|
|
1339
|
-
"mdDescription": "整合與 OpenAI API 相容的自訂模型,例如透過 `vllm
|
|
1358
|
+
"mdDescription": "整合與 OpenAI API 相容的自訂模型,例如透過 `vllm`。必填屬性為 `model` 和 `url`。 \n 您可選擇性地 \n - 指定一個唯一的 `id`,以便在 UI 中識別該自訂模型。 若未提供,則 `model` 將被用作 `id`。 \n - 提供 `apiKey` 以存取指定 URL 所提供的 API。使用 `true` 表示使用全域 OpenAI API 金鑰。 \n - 提供 `apiVersion` 以存取 Azure 中指定 URL 所提供的 API。 若要使用全域 OpenAI API 版本,請設定為 `true`。 \n - 為您的 Azure 部署提供一個 `deployment` 名稱。 \n - 將 `developerMessageSettings` 設定為 `user`、`system`、`developer`、`mergeWithFollowingUserMessage` 或 `skip` 之一,以控制開發者訊息的 包含方式 (其中 `user`、`system` 和 `developer` 將作為角色使用;`mergeWithFollowingUserMessage` 會將系統訊息作為前綴附加於後續的使用者訊息前,或若下一則訊息非使用者訊息,則將系統訊息轉換為使用者訊息;`skip` 則僅移除系統訊息)。預設值為 `developer`。 \n - 指定 `supportsStructuredOutput: false` 以表示不應使用結構化輸出。 \n - 指定 `enableStreaming: false` 以表示不應使用串流功能。 \n - 指定 `useResponseApi: true` 以使用較新的 OpenAI Response API 取代 Chat Completion API(需相容的端點)。 \n - 設定 `reasoningSupport` 以啟用對話推理選擇器。請提供一個包含 `supportedLevels`(例如 `[\"off\", \"low\", \"medium\", \"high\", \"auto\"]`)及可選的 `defaultLevel` 的物件。 \n 更多資訊請參閱 [我們的文件](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm)。",
|
|
1340
1359
|
"modelId": {
|
|
1341
1360
|
"title": "模型 ID"
|
|
1342
1361
|
},
|
|
1343
1362
|
"reasoningSupport": {
|
|
1344
|
-
"title": "
|
|
1363
|
+
"title": "宣告模型的推理能力。設定此選項後,聊天視窗將顯示此模型的推理選單。"
|
|
1345
1364
|
},
|
|
1346
1365
|
"supportsStructuredOutput": {
|
|
1347
1366
|
"title": "指示模型是否支援結構化輸出。預設值為 `true`。"
|
|
@@ -1436,6 +1455,16 @@
|
|
|
1436
1455
|
"askTerminalCommand": "詢問關於終端機指令...",
|
|
1437
1456
|
"hitEnterConfirm": "按下 Enter 鍵以確認",
|
|
1438
1457
|
"howCanIHelp": "我能為您提供什麼協助?",
|
|
1458
|
+
"terminalCommandBlockAIVariable": {
|
|
1459
|
+
"description": "儲存已執行的終端機指令及其對應的輸出內容。",
|
|
1460
|
+
"index": {
|
|
1461
|
+
"description": "終端機歷史紀錄中命令區塊的索引。若未指定,預設為最後一條命令。"
|
|
1462
|
+
},
|
|
1463
|
+
"quickPick": {
|
|
1464
|
+
"placeholder": "輸入文字以篩選指令",
|
|
1465
|
+
"title": "從終端機歷史紀錄中選取指令及其輸出結果"
|
|
1466
|
+
}
|
|
1467
|
+
},
|
|
1439
1468
|
"tryAgain": "請重新嘗試...",
|
|
1440
1469
|
"useArrowsAlternatives": " 或使用 ⇅ 顯示替代選項..."
|
|
1441
1470
|
},
|
|
@@ -1485,6 +1514,7 @@
|
|
|
1485
1514
|
"title": "模型 ID"
|
|
1486
1515
|
},
|
|
1487
1516
|
"model": {
|
|
1517
|
+
"provider": "提供者",
|
|
1488
1518
|
"title": "模型名稱"
|
|
1489
1519
|
}
|
|
1490
1520
|
},
|
|
@@ -1493,11 +1523,15 @@
|
|
|
1493
1523
|
}
|
|
1494
1524
|
},
|
|
1495
1525
|
"workspace": {
|
|
1526
|
+
"allowedExternalPaths": {
|
|
1527
|
+
"description": "AI 工具可能讀取的工作區外部絕對路徑或檔案 URI(目錄或檔案)清單。 支援使用 `~` 指代使用者主目錄。預設為空;僅限主動啟用。此設定將由 getFileContent、findFilesByPattern、getWorkspaceFileList 及 getWorkspaceDirectoryStructure 功能所採用。當工作區未被信任時,工作區範圍內的值將被忽略。白名單目錄內的符號連結會被追蹤,且可能指向白名單外的檔案;請僅新增您信任其內容的目錄。",
|
|
1528
|
+
"title": "允許的外部路徑"
|
|
1529
|
+
},
|
|
1496
1530
|
"coderAgent": {
|
|
1497
1531
|
"description": "整合於 Theia IDE 的人工智慧助理,專為協助軟體開發者設計。此代理程式可存取使用者工作區,能取得所有可用檔案與資料夾清單並檢索其內容。此外,它可向使用者建議檔案修改方案,從而協助執行編碼任務或其他涉及檔案變更的工作。"
|
|
1498
1532
|
},
|
|
1499
1533
|
"considerGitignore": {
|
|
1500
|
-
"description": "
|
|
1534
|
+
"description": "若啟用此功能,將排除各工作區根目錄中符合 .gitignore 規則的檔案/資料夾。",
|
|
1501
1535
|
"title": "請考慮 .gitignore"
|
|
1502
1536
|
},
|
|
1503
1537
|
"createSkillAgent": {
|
|
@@ -1923,7 +1957,7 @@
|
|
|
1923
1957
|
},
|
|
1924
1958
|
"getting-started": {
|
|
1925
1959
|
"ai": {
|
|
1926
|
-
"header": "
|
|
1960
|
+
"header": "{0} 現已支援 AI 功能!",
|
|
1927
1961
|
"openAIChatView": "立即開啟 AI 聊天視窗,學習如何開始!"
|
|
1928
1962
|
},
|
|
1929
1963
|
"apiComparator": "{0} API 相容性",
|
|
@@ -2116,6 +2150,9 @@
|
|
|
2116
2150
|
"preferences": {
|
|
2117
2151
|
"ai-features": "AI 功能",
|
|
2118
2152
|
"hostedPlugin": "託管外掛程式",
|
|
2153
|
+
"input": {
|
|
2154
|
+
"browse": "瀏覽"
|
|
2155
|
+
},
|
|
2119
2156
|
"toolbar": "工具列"
|
|
2120
2157
|
},
|
|
2121
2158
|
"preview": {
|
|
@@ -2131,7 +2168,17 @@
|
|
|
2131
2168
|
"remote": {
|
|
2132
2169
|
"dev-container": {
|
|
2133
2170
|
"attach": "附加至正在執行的容器",
|
|
2171
|
+
"attachError": "無法連接到容器:{0}",
|
|
2172
|
+
"attachWarning": "附加至容器將執行其中的程式碼。請僅附加至您信任來源的容器。",
|
|
2173
|
+
"attachWarningTitle": "附加至容器",
|
|
2174
|
+
"attaching": "連接至容器",
|
|
2175
|
+
"cliAttachError": "無法連接到容器:{0}",
|
|
2176
|
+
"cliContainerNotFound": "找不到容器「{0}」或該容器未執行中。",
|
|
2134
2177
|
"connect": "重新開啟於容器中",
|
|
2178
|
+
"enterCustomPath": "輸入自訂路徑...",
|
|
2179
|
+
"enterWorkspacePath": "請在容器內輸入工作區路徑",
|
|
2180
|
+
"foundConfigMsg": "在 {0} 發現了 devcontainer.json 檔案。您是否要套用其中的 post-attach 設定(擴充功能、端口轉發等)?",
|
|
2181
|
+
"foundConfigTitle": "已找到開發容器設定",
|
|
2135
2182
|
"noDevcontainerFiles": "工作區中未找到 devcontainer.json 檔案。請確認您已建立包含 devcontainer.json 檔案的 .devcontainer 目錄。",
|
|
2136
2183
|
"noRunningContainers": "未找到正在執行的容器。",
|
|
2137
2184
|
"rebuild": "重建容器",
|
|
@@ -2139,6 +2186,7 @@
|
|
|
2139
2186
|
"reopenInContainer": "在容器中重新開啟",
|
|
2140
2187
|
"selectContainer": "選擇一個正在運行的容器以進行附加",
|
|
2141
2188
|
"selectDevcontainer": "選擇一個 devcontainer.json 檔案",
|
|
2189
|
+
"selectWorkspacePath": "在容器內選取工作區路徑",
|
|
2142
2190
|
"suggestion": "此工作區具有開發容器設定。您是否要在容器中重新開啟它?"
|
|
2143
2191
|
},
|
|
2144
2192
|
"port-forwarding": {
|
|
@@ -2269,7 +2317,6 @@
|
|
|
2269
2317
|
"deleteGroup": "刪除群組",
|
|
2270
2318
|
"deletePage": "刪除頁面",
|
|
2271
2319
|
"deleteTerminal": "刪除終端機",
|
|
2272
|
-
"group": "群組",
|
|
2273
2320
|
"label": "終端機",
|
|
2274
2321
|
"maximizeBottomPanel": "最大化底部面板",
|
|
2275
2322
|
"minimizeBottomPanel": "最小化底部面板",
|
|
@@ -2298,6 +2345,7 @@
|
|
|
2298
2345
|
"iconSet": "圖示集",
|
|
2299
2346
|
"insertGroupLeft": "插入分組分隔符(左側)",
|
|
2300
2347
|
"insertGroupRight": "插入分組分隔符號(右側)",
|
|
2348
|
+
"jsonError": "讀取您的 toolbar.json 檔案時發生錯誤。請右鍵點擊工具列並選擇「自訂工具列」,以檢查檔案是否損毀。您也可以透過選擇「還原工具列預設值」將其重設為預設狀態。",
|
|
2301
2349
|
"leftColumn": "左欄",
|
|
2302
2350
|
"openJSON": "自訂工具列(開啟 JSON)",
|
|
2303
2351
|
"removeCommand": "從工具列移除命令",
|
|
@@ -2343,7 +2391,6 @@
|
|
|
2343
2391
|
},
|
|
2344
2392
|
"workspace": {
|
|
2345
2393
|
"bothAreDirectories": "兩項資源皆為目錄。",
|
|
2346
|
-
"clickToManageTrust": "點擊以管理信任設定。",
|
|
2347
2394
|
"compareWithEachOther": "相互比較",
|
|
2348
2395
|
"confirmDeletePermanently.description": "無法使用垃圾桶刪除「{0}」。是否要改為永久刪除?",
|
|
2349
2396
|
"confirmDeletePermanently.solution": "您可在偏好設定中停用「垃圾桶」功能。",
|
|
@@ -2368,7 +2415,7 @@
|
|
|
2368
2415
|
"removeFolder": "您確定要從工作區移除以下資料夾嗎?",
|
|
2369
2416
|
"removeFolders": "您確定要從工作區移除以下資料夾嗎?",
|
|
2370
2417
|
"restrictedModeDescription": "由於此工作區未被信任,部分功能已停用。",
|
|
2371
|
-
"
|
|
2418
|
+
"restrictedModeFeatures": "為防範潛在有害程式碼,任務執行、除錯、擴充功能及 AI 等功能已停用。",
|
|
2372
2419
|
"schema": {
|
|
2373
2420
|
"folders": {
|
|
2374
2421
|
"description": "工作區中的根目錄"
|
|
@@ -2376,9 +2423,11 @@
|
|
|
2376
2423
|
"title": "工作區檔案"
|
|
2377
2424
|
},
|
|
2378
2425
|
"trashTitle": "將 {0} 移至廢紙簍",
|
|
2379
|
-
"trustDialogMessage": "
|
|
2426
|
+
"trustDialogMessage": "若您信任作者,此資料夾中的程式碼可能會被執行,包括任務、除錯設定、擴充功能及 AI 功能。",
|
|
2427
|
+
"trustDialogRestricted": "若您不信任作者,工作區將以「受限模式」開啟,此模式會停用這些功能,以防範潛在的有害程式碼。",
|
|
2380
2428
|
"trustEmptyWindow": "控制是否預設信任空工作區。",
|
|
2381
2429
|
"trustEnabled": "控制是否啟用工作區信任機制。若停用此功能,所有工作區均被視為可信。",
|
|
2430
|
+
"trustLearnMore": "進一步了解 Theia 的工作區信任機制",
|
|
2382
2431
|
"trustTrustedFolders": "無需提示即可信任的資料夾 URI 清單。",
|
|
2383
2432
|
"untitled-cleanup": "似乎存在大量未命名的作業區檔案。請檢查 {0} 並移除所有未使用檔案。",
|
|
2384
2433
|
"variables": {
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines how an argument should be quoted if it contains
|
|
3
|
+
* spaces or unsupported characters.
|
|
4
|
+
*/
|
|
5
|
+
export declare const enum ShellQuoting {
|
|
6
|
+
/**
|
|
7
|
+
* Character escaping should be used. This for example
|
|
8
|
+
* uses \ on bash and ` on PowerShell.
|
|
9
|
+
*/
|
|
10
|
+
Escape = "escape",
|
|
11
|
+
/**
|
|
12
|
+
* Strong string quoting should be used. This for example
|
|
13
|
+
* uses " for Windows cmd and ' for bash and PowerShell.
|
|
14
|
+
* Strong quoting treats arguments as literal strings.
|
|
15
|
+
* Under PowerShell echo 'The value is $(2 * 3)' will
|
|
16
|
+
* print `The value is $(2 * 3)`
|
|
17
|
+
*/
|
|
18
|
+
Strong = "strong",
|
|
19
|
+
/**
|
|
20
|
+
* Weak string quoting should be used. This for example
|
|
21
|
+
* uses " for Windows cmd, bash and PowerShell. Weak quoting
|
|
22
|
+
* still performs some kind of evaluation inside the quoted
|
|
23
|
+
* string. Under PowerShell echo "The value is $(2 * 3)"
|
|
24
|
+
* will print `The value is 6`
|
|
25
|
+
*/
|
|
26
|
+
Weak = "weak"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A string that will be quoted depending on the used shell.
|
|
30
|
+
*/
|
|
31
|
+
export interface ShellQuotedString {
|
|
32
|
+
/**
|
|
33
|
+
* The actual string value.
|
|
34
|
+
*/
|
|
35
|
+
value: string;
|
|
36
|
+
/**
|
|
37
|
+
* The quoting style to use.
|
|
38
|
+
*/
|
|
39
|
+
quoting: ShellQuoting;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Functions that provide shell quoting capabilities.
|
|
43
|
+
*/
|
|
44
|
+
export interface ShellQuotingFunctions {
|
|
45
|
+
characters: {
|
|
46
|
+
/** Characters that require quotes, white space is always implied. */
|
|
47
|
+
needQuotes?: string;
|
|
48
|
+
/** The character used to escape sequences. */
|
|
49
|
+
escape?: string;
|
|
50
|
+
/** The character used to quote sequences, preventing variable expansion. */
|
|
51
|
+
strong?: string;
|
|
52
|
+
/** The character used to quote sequences, allowing variable expansion. */
|
|
53
|
+
weak?: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Should add escape-characters in front of forbidden characters.
|
|
57
|
+
*/
|
|
58
|
+
escape?(this: any, arg: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Should quote the argument in such a way that variables CANNOT be expanded.
|
|
61
|
+
*/
|
|
62
|
+
strong?(this: any, arg: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Should quote the argument in such a way that variables CAN be expanded.
|
|
65
|
+
*/
|
|
66
|
+
weak?(this: any, arg: string): string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Converts a list of args into an escaped shell command.
|
|
70
|
+
*
|
|
71
|
+
* There are two main use cases when handling command/arguments for a shell:
|
|
72
|
+
* 1. User already wrote the escaped commandline, then just use that.
|
|
73
|
+
* 2. User wants a specific process to be invoked with some arguments.
|
|
74
|
+
*
|
|
75
|
+
* The `createShellCommandLine` function is useful for the latter.
|
|
76
|
+
*
|
|
77
|
+
* @param args Standard list of spawn/exec arguments, first item is the command.
|
|
78
|
+
* @param quotingFunctions Collection of functions to process arguments.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createShellCommandLine(args: Array<string | ShellQuotedString>, quotingFunctions?: ShellQuotingFunctions): string;
|
|
81
|
+
/**
|
|
82
|
+
* Escape (or quote) a given input.
|
|
83
|
+
*
|
|
84
|
+
* @param arg Input to escape.
|
|
85
|
+
* @param quotingFunctions Collection of functions to process the given `arg`.
|
|
86
|
+
* @param quotingType Override the quoting type specified by the given `arg`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function escapeForShell(arg: string | ShellQuotedString, quotingFunctions?: ShellQuotingFunctions, quotingType?: ShellQuoting): string;
|
|
89
|
+
export declare const BashQuotingFunctions: Required<ShellQuotingFunctions>;
|
|
90
|
+
export declare const CmdQuotingFunctions: Required<ShellQuotingFunctions>;
|
|
91
|
+
export declare const PowershellQuotingFunctions: Required<ShellQuotingFunctions>;
|
|
92
|
+
//# sourceMappingURL=shell-quoting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-quoting.d.ts","sourceRoot":"","sources":["../../src/common/shell-quoting.ts"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,0BAAkB,YAAY;IAE1B;;;OAGG;IACH,MAAM,WAAW;IAEjB;;;;;;OAMG;IACH,MAAM,WAAW;IAEjB;;;;;;OAMG;IACH,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;CACzB;AAID;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAElC,UAAU,EAAE;QACR,qEAAqE;QACrE,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,8CAA8C;QAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,4EAA4E;QAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,0EAA0E;QAC1E,IAAI,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IAED;;OAEG;IAEH,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvC;;OAEG;IAEH,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAExC;;OAEG;IAEH,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAEhI;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,MAAM,CAkB5I;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,CAyBhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,qBAAqB,CA8B/D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,qBAAqB,CAyBtE,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 Ericsson and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.PowershellQuotingFunctions = exports.CmdQuotingFunctions = exports.BashQuotingFunctions = void 0;
|
|
19
|
+
exports.createShellCommandLine = createShellCommandLine;
|
|
20
|
+
exports.escapeForShell = escapeForShell;
|
|
21
|
+
/**
|
|
22
|
+
* Converts a list of args into an escaped shell command.
|
|
23
|
+
*
|
|
24
|
+
* There are two main use cases when handling command/arguments for a shell:
|
|
25
|
+
* 1. User already wrote the escaped commandline, then just use that.
|
|
26
|
+
* 2. User wants a specific process to be invoked with some arguments.
|
|
27
|
+
*
|
|
28
|
+
* The `createShellCommandLine` function is useful for the latter.
|
|
29
|
+
*
|
|
30
|
+
* @param args Standard list of spawn/exec arguments, first item is the command.
|
|
31
|
+
* @param quotingFunctions Collection of functions to process arguments.
|
|
32
|
+
*/
|
|
33
|
+
function createShellCommandLine(args, quotingFunctions) {
|
|
34
|
+
return args.map(arg => escapeForShell(arg, quotingFunctions)).join(' ');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Escape (or quote) a given input.
|
|
38
|
+
*
|
|
39
|
+
* @param arg Input to escape.
|
|
40
|
+
* @param quotingFunctions Collection of functions to process the given `arg`.
|
|
41
|
+
* @param quotingType Override the quoting type specified by the given `arg`.
|
|
42
|
+
*/
|
|
43
|
+
function escapeForShell(arg, quotingFunctions, quotingType) {
|
|
44
|
+
let value;
|
|
45
|
+
let quoting = quotingType;
|
|
46
|
+
if (typeof arg === 'string') {
|
|
47
|
+
if (!quoting) {
|
|
48
|
+
return arg;
|
|
49
|
+
}
|
|
50
|
+
value = arg;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
if (!quoting) {
|
|
54
|
+
quoting = arg.quoting;
|
|
55
|
+
}
|
|
56
|
+
value = arg.value;
|
|
57
|
+
}
|
|
58
|
+
if (quotingFunctions && typeof quotingFunctions[quoting] === 'function') {
|
|
59
|
+
return quotingFunctions[quoting](value);
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
exports.BashQuotingFunctions = {
|
|
64
|
+
characters: {
|
|
65
|
+
needQuotes: '()',
|
|
66
|
+
escape: '\\',
|
|
67
|
+
strong: '\'',
|
|
68
|
+
weak: '"',
|
|
69
|
+
},
|
|
70
|
+
escape(arg) {
|
|
71
|
+
return arg
|
|
72
|
+
.replace(/[\s\\|(){}<>$&;"']/g, '\\$&');
|
|
73
|
+
},
|
|
74
|
+
strong(arg) {
|
|
75
|
+
// ('+) becomes ('"'+"')
|
|
76
|
+
return `'${arg
|
|
77
|
+
.replace(/'+/g, '\'"$&"\'')}'`;
|
|
78
|
+
},
|
|
79
|
+
weak(arg) {
|
|
80
|
+
return `"${arg
|
|
81
|
+
// Escape escape-characters.
|
|
82
|
+
.replace(/\\"/g, '\\\\"')
|
|
83
|
+
// Escape user-specified double-quotes.
|
|
84
|
+
.replace(/"/g, '\\"')
|
|
85
|
+
// Escape trailing (\), we don't want the user to escape our last quote.
|
|
86
|
+
.replace(/\\$/g, '\\\\')}"`;
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
exports.CmdQuotingFunctions = {
|
|
90
|
+
characters: {
|
|
91
|
+
weak: '"',
|
|
92
|
+
},
|
|
93
|
+
escape(arg) {
|
|
94
|
+
return arg
|
|
95
|
+
// Escape forbidden characters (see: cmd /?).
|
|
96
|
+
.replace(/[%&<>()@^|]/g, '^$&')
|
|
97
|
+
// Some characters must be escaped using `\`.
|
|
98
|
+
.replace(/[\\"]/g, '\\$&')
|
|
99
|
+
// Double-quote whitespaces, else we cannot escape it.
|
|
100
|
+
.replace(/\s+/g, '"$&"');
|
|
101
|
+
},
|
|
102
|
+
strong(arg) {
|
|
103
|
+
return this.weak(arg)
|
|
104
|
+
// Try to prevent variable expansion.
|
|
105
|
+
.replace(/%/g, '"%"');
|
|
106
|
+
},
|
|
107
|
+
weak(arg) {
|
|
108
|
+
return `"${arg
|
|
109
|
+
// Escape double quotes.
|
|
110
|
+
.replace(/\\"/g, '\\\\"')
|
|
111
|
+
.replace(/"/g, '\\"')
|
|
112
|
+
// Escape forbidden characters (see: cmd /?)
|
|
113
|
+
.replace(/[&<>()@^|]/g, '^$&')
|
|
114
|
+
// Escape trailing backslash, we don't want the user to escape our last quote.
|
|
115
|
+
.replace(/\\$/g, '\\\\')
|
|
116
|
+
// Escape line returns
|
|
117
|
+
.replace(/\r?\n/g, '^$&')}"`;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
exports.PowershellQuotingFunctions = {
|
|
121
|
+
characters: {
|
|
122
|
+
needQuotes: '()',
|
|
123
|
+
escape: '`',
|
|
124
|
+
strong: '\'',
|
|
125
|
+
weak: '"',
|
|
126
|
+
},
|
|
127
|
+
escape(arg) {
|
|
128
|
+
return arg.replace(/[`|{}()<>;"' ]/g, '`$&');
|
|
129
|
+
},
|
|
130
|
+
strong(arg) {
|
|
131
|
+
// In powershell, one must write ('') for a single quote to be displayed
|
|
132
|
+
// within a single quoted string.
|
|
133
|
+
return `'${arg
|
|
134
|
+
.replace(/'/g, '\'\'')}'`;
|
|
135
|
+
},
|
|
136
|
+
weak(arg) {
|
|
137
|
+
return `"${arg
|
|
138
|
+
// Escape escape-characters.
|
|
139
|
+
.replace(/`"/g, '``"')
|
|
140
|
+
// Escape user-specified backticks.
|
|
141
|
+
.replace(/"/g, '`"')
|
|
142
|
+
// Escape trailing (`), we don't want the user to escape our last quote.
|
|
143
|
+
.replace(/`$/g, '``')}"`;
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=shell-quoting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-quoting.js","sourceRoot":"","sources":["../../src/common/shell-quoting.ts"],"names":[],"mappings":"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"}
|