@lobehub/chat 1.109.1 → 1.110.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/.cursor/rules/i18n.mdc +1 -2
- package/CHANGELOG.md +25 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/apps/desktop/electron-builder.js +22 -0
- package/apps/desktop/src/main/controllers/McpInstallCtr.ts +153 -0
- package/apps/desktop/src/main/controllers/index.ts +19 -0
- package/apps/desktop/src/main/core/App.ts +46 -0
- package/apps/desktop/src/main/core/infrastructure/IoCContainer.ts +4 -0
- package/apps/desktop/src/main/core/infrastructure/ProtocolManager.ts +256 -0
- package/apps/desktop/src/main/types/protocol.ts +60 -0
- package/apps/desktop/src/main/utils/__tests__/protocol.test.ts +203 -0
- package/apps/desktop/src/main/utils/protocol.ts +210 -0
- package/changelog/v1.json +9 -0
- package/locales/ar/plugin.json +196 -136
- package/locales/bg-BG/plugin.json +204 -144
- package/locales/de-DE/plugin.json +176 -116
- package/locales/en-US/plugin.json +192 -132
- package/locales/es-ES/plugin.json +203 -143
- package/locales/fa-IR/plugin.json +155 -95
- package/locales/fr-FR/plugin.json +161 -101
- package/locales/it-IT/plugin.json +193 -133
- package/locales/ja-JP/plugin.json +195 -135
- package/locales/ko-KR/plugin.json +163 -103
- package/locales/nl-NL/plugin.json +211 -151
- package/locales/pl-PL/plugin.json +171 -111
- package/locales/pt-BR/plugin.json +180 -120
- package/locales/ru-RU/plugin.json +191 -131
- package/locales/tr-TR/plugin.json +187 -127
- package/locales/vi-VN/plugin.json +152 -92
- package/locales/zh-CN/plugin.json +60 -0
- package/locales/zh-TW/plugin.json +157 -97
- package/package.json +2 -1
- package/packages/electron-client-ipc/src/events/index.ts +5 -2
- package/packages/electron-client-ipc/src/events/protocol.ts +29 -0
- package/packages/electron-client-ipc/src/types/index.ts +1 -0
- package/packages/electron-client-ipc/src/types/mcpInstall.ts +19 -0
- package/packages/types/src/plugins/mcp.ts +38 -1
- package/packages/types/src/plugins/protocol.ts +166 -0
- package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +4 -1
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ActionButton/index.tsx +1 -2
- package/src/components/KeyValueEditor/index.tsx +4 -2
- package/src/features/MCP/MCPInstallProgress/index.tsx +1 -1
- package/src/features/PluginDevModal/MCPManifestForm/index.tsx +30 -36
- package/src/features/PluginStore/McpList/List/Item.tsx +1 -1
- package/src/features/ProtocolUrlHandler/InstallPlugin/ConfigDisplay.tsx +211 -0
- package/src/features/ProtocolUrlHandler/InstallPlugin/CustomPluginInstallModal.tsx +228 -0
- package/src/features/ProtocolUrlHandler/InstallPlugin/OfficialPluginInstallModal/Detail.tsx +44 -0
- package/src/features/ProtocolUrlHandler/InstallPlugin/OfficialPluginInstallModal/index.tsx +105 -0
- package/src/features/ProtocolUrlHandler/InstallPlugin/index.tsx +55 -0
- package/src/features/ProtocolUrlHandler/InstallPlugin/types.ts +45 -0
- package/src/features/ProtocolUrlHandler/index.tsx +30 -0
- package/src/locales/default/plugin.ts +60 -0
- package/src/store/tool/slices/mcpStore/action.ts +127 -1
- package/src/store/tool/slices/mcpStore/initialState.ts +8 -13
- package/src/store/tool/slices/mcpStore/selectors.ts +13 -0
@@ -5,11 +5,11 @@
|
|
5
5
|
"function_call": "Gọi hàm",
|
6
6
|
"off": "Tắt gỡ lỗi",
|
7
7
|
"on": "Xem thông tin gọi plugin",
|
8
|
-
"payload": "
|
8
|
+
"payload": "Tải trọng plugin",
|
9
9
|
"pluginState": "Trạng thái plugin",
|
10
10
|
"response": "Kết quả trả về",
|
11
11
|
"title": "Chi tiết plugin",
|
12
|
-
"tool_call": "Yêu cầu công cụ"
|
12
|
+
"tool_call": "Yêu cầu gọi công cụ"
|
13
13
|
},
|
14
14
|
"detailModal": {
|
15
15
|
"customPlugin": {
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"title": "Đây là một plugin tùy chỉnh"
|
19
19
|
},
|
20
20
|
"emptyState": {
|
21
|
-
"description": "Vui lòng cài đặt plugin này trước để xem
|
21
|
+
"description": "Vui lòng cài đặt plugin này trước để xem khả năng và tùy chọn cấu hình",
|
22
22
|
"title": "Xem chi tiết plugin sau khi cài đặt"
|
23
23
|
},
|
24
24
|
"info": {
|
@@ -33,10 +33,10 @@
|
|
33
33
|
"title": "Chi tiết plugin"
|
34
34
|
},
|
35
35
|
"dev": {
|
36
|
-
"confirmDeleteDevPlugin": "Bạn sắp xóa plugin cục bộ này, sau khi xóa sẽ không thể khôi phục, bạn có muốn xóa plugin này không?",
|
36
|
+
"confirmDeleteDevPlugin": "Bạn sắp xóa plugin cục bộ này, sau khi xóa sẽ không thể khôi phục, bạn có chắc muốn xóa plugin này không?",
|
37
37
|
"customParams": {
|
38
38
|
"useProxy": {
|
39
|
-
"label": "Cài đặt
|
39
|
+
"label": "Cài đặt qua proxy (nếu gặp lỗi truy cập chéo, hãy thử bật tùy chọn này rồi cài lại)"
|
40
40
|
}
|
41
41
|
},
|
42
42
|
"deleteSuccess": "Xóa plugin thành công",
|
@@ -46,14 +46,14 @@
|
|
46
46
|
"label": "Định danh"
|
47
47
|
},
|
48
48
|
"mode": {
|
49
|
-
"mcp": "MCP
|
50
|
-
"mcpExp": "
|
49
|
+
"mcp": "Plugin MCP",
|
50
|
+
"mcpExp": "Thử nghiệm",
|
51
51
|
"url": "Liên kết trực tuyến"
|
52
52
|
},
|
53
53
|
"name": {
|
54
54
|
"desc": "Tiêu đề plugin",
|
55
55
|
"label": "Tiêu đề",
|
56
|
-
"placeholder": "
|
56
|
+
"placeholder": "Công cụ tìm kiếm"
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
@@ -61,14 +61,14 @@
|
|
61
61
|
"title": "Cài đặt nâng cao"
|
62
62
|
},
|
63
63
|
"args": {
|
64
|
-
"desc": "Danh sách
|
64
|
+
"desc": "Danh sách tham số truyền cho lệnh thực thi, thường nhập tên máy chủ MCP hoặc đường dẫn script khởi động",
|
65
65
|
"label": "Tham số lệnh",
|
66
66
|
"placeholder": "Ví dụ: mcp-hello-world",
|
67
67
|
"required": "Vui lòng nhập tham số khởi động"
|
68
68
|
},
|
69
69
|
"auth": {
|
70
70
|
"bear": "API Key",
|
71
|
-
"desc": "Chọn phương thức xác thực
|
71
|
+
"desc": "Chọn phương thức xác thực máy chủ MCP",
|
72
72
|
"label": "Loại xác thực",
|
73
73
|
"none": "Không cần xác thực",
|
74
74
|
"placeholder": "Vui lòng chọn loại xác thực",
|
@@ -76,101 +76,101 @@
|
|
76
76
|
"desc": "Nhập API Key hoặc Bearer Token của bạn",
|
77
77
|
"label": "API Key",
|
78
78
|
"placeholder": "sk-xxxxx",
|
79
|
-
"required": "Vui lòng nhập
|
79
|
+
"required": "Vui lòng nhập token xác thực"
|
80
80
|
}
|
81
81
|
},
|
82
82
|
"avatar": {
|
83
|
-
"label": "Biểu tượng
|
83
|
+
"label": "Biểu tượng plugin"
|
84
84
|
},
|
85
85
|
"command": {
|
86
|
-
"desc": "
|
86
|
+
"desc": "Tệp thực thi hoặc script dùng để khởi động MCP STDIO Server",
|
87
87
|
"label": "Lệnh",
|
88
|
-
"placeholder": "Ví dụ: npx / uv / docker v.v.",
|
88
|
+
"placeholder": "Ví dụ: npx / uv / docker, v.v.",
|
89
89
|
"required": "Vui lòng nhập lệnh khởi động"
|
90
90
|
},
|
91
91
|
"desc": {
|
92
|
-
"desc": "
|
93
|
-
"label": "Mô tả
|
94
|
-
"placeholder": "Bổ sung
|
92
|
+
"desc": "Thêm mô tả cho plugin",
|
93
|
+
"label": "Mô tả plugin",
|
94
|
+
"placeholder": "Bổ sung hướng dẫn sử dụng và kịch bản"
|
95
95
|
},
|
96
96
|
"endpoint": {
|
97
|
-
"desc": "Nhập địa chỉ
|
98
|
-
"label": "URL
|
97
|
+
"desc": "Nhập địa chỉ MCP Streamable HTTP Server của bạn",
|
98
|
+
"label": "URL MCP Endpoint"
|
99
99
|
},
|
100
100
|
"env": {
|
101
|
-
"add": "Thêm
|
102
|
-
"desc": "Nhập
|
103
|
-
"duplicateKeyError": "Khóa trường phải
|
104
|
-
"formValidationFailed": "Xác thực biểu mẫu
|
101
|
+
"add": "Thêm dòng mới",
|
102
|
+
"desc": "Nhập biến môi trường cần thiết cho MCP Server",
|
103
|
+
"duplicateKeyError": "Khóa trường phải duy nhất",
|
104
|
+
"formValidationFailed": "Xác thực biểu mẫu thất bại, vui lòng kiểm tra định dạng tham số",
|
105
105
|
"keyRequired": "Khóa trường không được để trống",
|
106
|
-
"label": "Biến môi trường
|
107
|
-
"stringifyError": "Không thể tuần tự hóa tham số, vui lòng kiểm tra định dạng
|
106
|
+
"label": "Biến môi trường MCP Server",
|
107
|
+
"stringifyError": "Không thể tuần tự hóa tham số, vui lòng kiểm tra định dạng"
|
108
108
|
},
|
109
109
|
"headers": {
|
110
110
|
"add": "Thêm dòng mới",
|
111
|
-
"desc": "Nhập
|
111
|
+
"desc": "Nhập header yêu cầu",
|
112
112
|
"label": "HTTP Headers"
|
113
113
|
},
|
114
114
|
"identifier": {
|
115
|
-
"desc": "
|
116
|
-
"invalid": "
|
115
|
+
"desc": "Đặt tên cho plugin MCP của bạn, phải dùng ký tự tiếng Anh",
|
116
|
+
"invalid": "Định danh chỉ được chứa chữ cái, số, dấu gạch ngang và gạch dưới",
|
117
117
|
"label": "Tên plugin MCP",
|
118
118
|
"placeholder": "Ví dụ: my-mcp-plugin",
|
119
119
|
"required": "Vui lòng nhập định danh dịch vụ MCP"
|
120
120
|
},
|
121
121
|
"previewManifest": "Xem trước tệp mô tả plugin",
|
122
|
-
"quickImport": "Nhập
|
122
|
+
"quickImport": "Nhập nhanh cấu hình JSON",
|
123
123
|
"quickImportError": {
|
124
|
-
"empty": "Nội dung nhập
|
124
|
+
"empty": "Nội dung nhập không được để trống",
|
125
125
|
"invalidJson": "Định dạng JSON không hợp lệ",
|
126
|
-
"invalidStructure": "
|
126
|
+
"invalidStructure": "Cấu trúc JSON không hợp lệ"
|
127
127
|
},
|
128
128
|
"stdioNotSupported": "Môi trường hiện tại không hỗ trợ plugin MCP loại stdio",
|
129
129
|
"testConnection": "Kiểm tra kết nối",
|
130
|
-
"testConnectionTip": "
|
130
|
+
"testConnectionTip": "Plugin MCP chỉ có thể sử dụng bình thường khi kiểm tra kết nối thành công",
|
131
131
|
"type": {
|
132
132
|
"desc": "Chọn phương thức giao tiếp của plugin MCP, phiên bản web chỉ hỗ trợ Streamable HTTP",
|
133
|
-
"httpFeature1": "Tương thích
|
134
|
-
"httpFeature2": "Kết nối
|
135
|
-
"httpShortDesc": "Giao thức
|
133
|
+
"httpFeature1": "Tương thích web và desktop",
|
134
|
+
"httpFeature2": "Kết nối máy chủ MCP từ xa, không cần cài đặt thêm",
|
135
|
+
"httpShortDesc": "Giao thức HTTP dạng luồng",
|
136
136
|
"label": "Loại plugin MCP",
|
137
|
-
"stdioFeature1": "Độ trễ
|
138
|
-
"stdioFeature2": "Cần cài đặt
|
139
|
-
"stdioNotAvailable": "Chế độ STDIO chỉ
|
140
|
-
"stdioShortDesc": "Giao thức
|
137
|
+
"stdioFeature1": "Độ trễ giao tiếp thấp hơn, phù hợp chạy cục bộ",
|
138
|
+
"stdioFeature2": "Cần cài đặt MCP server chạy cục bộ",
|
139
|
+
"stdioNotAvailable": "Chế độ STDIO chỉ có trên bản desktop",
|
140
|
+
"stdioShortDesc": "Giao thức dựa trên nhập xuất chuẩn",
|
141
141
|
"title": "Loại plugin MCP"
|
142
142
|
},
|
143
143
|
"url": {
|
144
|
-
"desc": "Nhập địa chỉ
|
145
|
-
"invalid": "Vui lòng nhập
|
146
|
-
"label": "URL
|
144
|
+
"desc": "Nhập địa chỉ MCP Server Streamable HTTP, không hỗ trợ chế độ SSE",
|
145
|
+
"invalid": "Vui lòng nhập URL hợp lệ",
|
146
|
+
"label": "URL Streamable HTTP Endpoint",
|
147
147
|
"required": "Vui lòng nhập URL dịch vụ MCP"
|
148
148
|
}
|
149
149
|
},
|
150
150
|
"meta": {
|
151
151
|
"author": {
|
152
|
-
"desc": "Tác giả
|
152
|
+
"desc": "Tác giả plugin",
|
153
153
|
"label": "Tác giả"
|
154
154
|
},
|
155
155
|
"avatar": {
|
156
|
-
"desc": "Biểu tượng
|
156
|
+
"desc": "Biểu tượng plugin, có thể dùng Emoji hoặc URL",
|
157
157
|
"label": "Biểu tượng"
|
158
158
|
},
|
159
159
|
"description": {
|
160
160
|
"desc": "Mô tả plugin",
|
161
161
|
"label": "Mô tả",
|
162
|
-
"placeholder": "Tìm kiếm công cụ tìm kiếm
|
162
|
+
"placeholder": "Tìm kiếm thông tin qua công cụ tìm kiếm"
|
163
163
|
},
|
164
164
|
"formFieldRequired": "Trường này là bắt buộc",
|
165
165
|
"homepage": {
|
166
|
-
"desc": "Trang chủ
|
166
|
+
"desc": "Trang chủ plugin",
|
167
167
|
"label": "Trang chủ"
|
168
168
|
},
|
169
169
|
"identifier": {
|
170
|
-
"desc": "Định danh duy nhất của plugin,
|
171
|
-
"errorDuplicate": "Định danh trùng với plugin đã có, vui lòng
|
170
|
+
"desc": "Định danh duy nhất của plugin, tự động nhận diện từ manifest",
|
171
|
+
"errorDuplicate": "Định danh trùng với plugin đã có, vui lòng đổi tên",
|
172
172
|
"label": "Định danh",
|
173
|
-
"pattenErrorMessage": "Chỉ
|
173
|
+
"pattenErrorMessage": "Chỉ được nhập ký tự tiếng Anh, số, dấu - và _"
|
174
174
|
},
|
175
175
|
"lobe": "Plugin {{appName}}",
|
176
176
|
"manifest": {
|
@@ -183,11 +183,11 @@
|
|
183
183
|
"title": {
|
184
184
|
"desc": "Tiêu đề plugin",
|
185
185
|
"label": "Tiêu đề",
|
186
|
-
"placeholder": "
|
186
|
+
"placeholder": "Công cụ tìm kiếm"
|
187
187
|
}
|
188
188
|
},
|
189
|
-
"metaConfig": "Cấu hình thông tin plugin",
|
190
|
-
"modalDesc": "Sau khi thêm plugin tùy chỉnh, có thể
|
189
|
+
"metaConfig": "Cấu hình thông tin meta plugin",
|
190
|
+
"modalDesc": "Sau khi thêm plugin tùy chỉnh, có thể dùng để kiểm tra phát triển hoặc sử dụng trực tiếp trong hội thoại. Vui lòng tham khảo <1>tài liệu phát triển↗</> để biết thêm chi tiết.",
|
191
191
|
"openai": {
|
192
192
|
"importUrl": "Nhập từ liên kết URL",
|
193
193
|
"schema": "Schema"
|
@@ -195,44 +195,44 @@
|
|
195
195
|
"preview": {
|
196
196
|
"api": {
|
197
197
|
"noParams": "Công cụ này không có tham số",
|
198
|
-
"noResults": "Không tìm thấy API
|
198
|
+
"noResults": "Không tìm thấy API phù hợp với điều kiện tìm kiếm",
|
199
199
|
"params": "Tham số:",
|
200
200
|
"searchPlaceholder": "Tìm kiếm công cụ..."
|
201
201
|
},
|
202
|
-
"card": "Xem trước hiệu ứng plugin",
|
202
|
+
"card": "Xem trước hiệu ứng hiển thị plugin",
|
203
203
|
"desc": "Xem trước mô tả plugin",
|
204
204
|
"empty": {
|
205
|
-
"desc": "Sau khi
|
205
|
+
"desc": "Sau khi cấu hình xong, bạn có thể xem trước khả năng công cụ hỗ trợ tại đây",
|
206
206
|
"title": "Bắt đầu xem trước sau khi cấu hình plugin"
|
207
207
|
},
|
208
208
|
"title": "Xem trước tên plugin"
|
209
209
|
},
|
210
210
|
"save": "Cài đặt plugin",
|
211
|
-
"saveSuccess": "Lưu
|
211
|
+
"saveSuccess": "Lưu cấu hình plugin thành công",
|
212
212
|
"tabs": {
|
213
213
|
"manifest": "Danh sách mô tả chức năng (Manifest)",
|
214
|
-
"meta": "Thông tin plugin"
|
214
|
+
"meta": "Thông tin meta plugin"
|
215
215
|
},
|
216
216
|
"title": {
|
217
217
|
"create": "Thêm plugin tùy chỉnh",
|
218
218
|
"edit": "Chỉnh sửa plugin tùy chỉnh"
|
219
219
|
},
|
220
220
|
"type": {
|
221
|
-
"lobe": "Plugin
|
221
|
+
"lobe": "Plugin {{appName}}",
|
222
222
|
"openai": "Plugin OpenAI"
|
223
223
|
},
|
224
224
|
"update": "Cập nhật",
|
225
|
-
"updateSuccess": "Cập nhật
|
225
|
+
"updateSuccess": "Cập nhật cấu hình plugin thành công"
|
226
226
|
},
|
227
227
|
"error": {
|
228
|
-
"fetchError": "
|
228
|
+
"fetchError": "Yêu cầu lấy liên kết manifest thất bại, vui lòng đảm bảo liên kết hợp lệ và cho phép truy cập chéo",
|
229
229
|
"installError": "Cài đặt plugin {{name}} thất bại",
|
230
|
-
"manifestInvalid": "Manifest không
|
231
|
-
"noManifest": "
|
232
|
-
"openAPIInvalid": "
|
230
|
+
"manifestInvalid": "Manifest không hợp lệ, kết quả kiểm tra: \n\n {{error}}",
|
231
|
+
"noManifest": "Không tìm thấy tệp mô tả",
|
232
|
+
"openAPIInvalid": "Phân tích OpenAPI thất bại, lỗi: \n\n {{error}}",
|
233
233
|
"reinstallError": "Làm mới plugin {{name}} thất bại",
|
234
234
|
"testConnectionFailed": "Lấy Manifest thất bại: {{error}}",
|
235
|
-
"urlError": "Liên kết này không trả về nội dung dạng JSON, vui lòng đảm bảo
|
235
|
+
"urlError": "Liên kết này không trả về nội dung định dạng JSON, vui lòng đảm bảo liên kết hợp lệ"
|
236
236
|
},
|
237
237
|
"inspector": {
|
238
238
|
"args": "Xem danh sách tham số",
|
@@ -240,7 +240,7 @@
|
|
240
240
|
},
|
241
241
|
"list": {
|
242
242
|
"item": {
|
243
|
-
"deprecated.title": "Đã
|
243
|
+
"deprecated.title": "Đã xóa",
|
244
244
|
"local.config": "Cấu hình",
|
245
245
|
"local.title": "Tùy chỉnh"
|
246
246
|
}
|
@@ -256,22 +256,22 @@
|
|
256
256
|
"readLocalFile": "Đọc nội dung tệp",
|
257
257
|
"renameLocalFile": "Đổi tên",
|
258
258
|
"searchLocalFiles": "Tìm kiếm tệp",
|
259
|
-
"writeLocalFile": "Ghi
|
259
|
+
"writeLocalFile": "Ghi tệp"
|
260
260
|
},
|
261
261
|
"title": "Tệp cục bộ"
|
262
262
|
},
|
263
263
|
"mcpInstall": {
|
264
264
|
"CHECKING_INSTALLATION": "Đang kiểm tra môi trường cài đặt...",
|
265
|
-
"COMPLETED": "
|
266
|
-
"CONFIGURATION_REQUIRED": "Vui lòng hoàn thành cấu hình
|
265
|
+
"COMPLETED": "Hoàn thành cài đặt",
|
266
|
+
"CONFIGURATION_REQUIRED": "Vui lòng hoàn thành cấu hình trước khi tiếp tục cài đặt",
|
267
267
|
"ERROR": "Lỗi cài đặt",
|
268
268
|
"FETCHING_MANIFEST": "Đang lấy tệp mô tả plugin...",
|
269
269
|
"GETTING_SERVER_MANIFEST": "Khởi tạo máy chủ MCP...",
|
270
270
|
"INSTALLING_PLUGIN": "Đang cài đặt plugin...",
|
271
|
-
"configurationDescription": "Plugin MCP này cần cấu hình
|
271
|
+
"configurationDescription": "Plugin MCP này cần cấu hình tham số để hoạt động bình thường, vui lòng điền thông tin cần thiết",
|
272
272
|
"configurationRequired": "Cấu hình tham số plugin",
|
273
273
|
"continueInstall": "Tiếp tục cài đặt",
|
274
|
-
"dependenciesDescription": "Plugin này cần cài đặt các phụ thuộc hệ thống sau để hoạt động
|
274
|
+
"dependenciesDescription": "Plugin này cần cài đặt các phụ thuộc hệ thống sau để hoạt động, vui lòng làm theo hướng dẫn để cài đặt các phụ thuộc còn thiếu, sau đó nhấn kiểm tra lại để tiếp tục cài đặt.",
|
275
275
|
"dependenciesRequired": "Vui lòng cài đặt các phụ thuộc hệ thống của plugin",
|
276
276
|
"dependencyStatus": {
|
277
277
|
"installed": "Đã cài đặt",
|
@@ -290,30 +290,90 @@
|
|
290
290
|
"showDetails": "Xem chi tiết"
|
291
291
|
},
|
292
292
|
"errorTypes": {
|
293
|
-
"AUTHORIZATION_ERROR": "Lỗi xác thực
|
293
|
+
"AUTHORIZATION_ERROR": "Lỗi xác thực",
|
294
294
|
"CONNECTION_FAILED": "Kết nối thất bại",
|
295
295
|
"INITIALIZATION_TIMEOUT": "Khởi tạo quá thời gian",
|
296
|
-
"PROCESS_SPAWN_ERROR": "Khởi
|
296
|
+
"PROCESS_SPAWN_ERROR": "Khởi động tiến trình thất bại",
|
297
297
|
"UNKNOWN_ERROR": "Lỗi không xác định",
|
298
298
|
"VALIDATION_ERROR": "Xác thực tham số thất bại"
|
299
299
|
},
|
300
|
-
"installError": "Cài đặt plugin MCP thất bại,
|
300
|
+
"installError": "Cài đặt plugin MCP thất bại, lý do: {{detail}}",
|
301
301
|
"installMethods": {
|
302
302
|
"manual": "Cài đặt thủ công:",
|
303
|
-
"recommended": "Phương
|
303
|
+
"recommended": "Phương pháp cài đặt được khuyến nghị:"
|
304
304
|
},
|
305
305
|
"recheckDependencies": "Kiểm tra lại",
|
306
306
|
"skipDependencies": "Bỏ qua kiểm tra"
|
307
307
|
},
|
308
308
|
"pluginList": "Danh sách plugin",
|
309
|
+
"protocolInstall": {
|
310
|
+
"actions": {
|
311
|
+
"install": "Cài đặt",
|
312
|
+
"installAnyway": "Vẫn cài đặt",
|
313
|
+
"installed": "Đã cài đặt"
|
314
|
+
},
|
315
|
+
"config": {
|
316
|
+
"args": "Tham số",
|
317
|
+
"command": "Lệnh",
|
318
|
+
"env": "Biến môi trường",
|
319
|
+
"headers": "Header yêu cầu",
|
320
|
+
"title": "Thông tin cấu hình",
|
321
|
+
"type": {
|
322
|
+
"http": "Loại: HTTP",
|
323
|
+
"label": "Loại",
|
324
|
+
"stdio": "Loại: Stdio"
|
325
|
+
},
|
326
|
+
"url": "Địa chỉ dịch vụ"
|
327
|
+
},
|
328
|
+
"custom": {
|
329
|
+
"badge": "Plugin tùy chỉnh",
|
330
|
+
"security": {
|
331
|
+
"description": "Plugin này chưa được xác thực chính thức, việc cài đặt có thể tiềm ẩn rủi ro bảo mật! Vui lòng đảm bảo bạn tin tưởng nguồn plugin.",
|
332
|
+
"title": "⚠️ Cảnh báo rủi ro bảo mật"
|
333
|
+
},
|
334
|
+
"title": "Cài đặt plugin tùy chỉnh"
|
335
|
+
},
|
336
|
+
"marketplace": {
|
337
|
+
"title": "Cài đặt plugin bên thứ ba",
|
338
|
+
"trustedBy": "Cung cấp bởi {{name}}",
|
339
|
+
"unverified": {
|
340
|
+
"title": "Plugin bên thứ ba chưa xác thực",
|
341
|
+
"warning": "Plugin này đến từ thị trường bên thứ ba chưa được xác thực, vui lòng xác nhận bạn tin tưởng nguồn trước khi cài đặt."
|
342
|
+
},
|
343
|
+
"verified": "Đã xác thực"
|
344
|
+
},
|
345
|
+
"messages": {
|
346
|
+
"connectionTestFailed": "Kiểm tra kết nối thất bại",
|
347
|
+
"installError": "Cài đặt plugin thất bại, vui lòng thử lại",
|
348
|
+
"installSuccess": "Cài đặt plugin {{name}} thành công!",
|
349
|
+
"manifestError": "Lấy chi tiết plugin thất bại, vui lòng kiểm tra kết nối mạng và thử lại",
|
350
|
+
"manifestNotFound": "Không tìm thấy tệp mô tả plugin"
|
351
|
+
},
|
352
|
+
"meta": {
|
353
|
+
"author": "Tác giả",
|
354
|
+
"homepage": "Trang chủ",
|
355
|
+
"identifier": "Định danh",
|
356
|
+
"source": "Nguồn",
|
357
|
+
"version": "Phiên bản"
|
358
|
+
},
|
359
|
+
"official": {
|
360
|
+
"badge": "Plugin chính thức của LobeHub",
|
361
|
+
"description": "Plugin này được phát triển và duy trì bởi LobeHub chính thức, đã qua kiểm tra bảo mật nghiêm ngặt, bạn có thể yên tâm sử dụng.",
|
362
|
+
"loadingMessage": "Đang lấy chi tiết plugin...",
|
363
|
+
"loadingTitle": "Đang tải",
|
364
|
+
"title": "Cài đặt plugin chính thức"
|
365
|
+
},
|
366
|
+
"title": "Cài đặt plugin MCP",
|
367
|
+
"warning": "⚠️ Vui lòng xác nhận bạn tin tưởng nguồn plugin này, plugin độc hại có thể gây nguy hiểm cho hệ thống của bạn."
|
368
|
+
},
|
309
369
|
"search": {
|
310
370
|
"apiName": {
|
311
|
-
"crawlMultiPages": "Đọc nội dung
|
371
|
+
"crawlMultiPages": "Đọc nội dung nhiều trang",
|
312
372
|
"crawlSinglePage": "Đọc nội dung trang",
|
313
373
|
"search": "Tìm kiếm trang"
|
314
374
|
},
|
315
375
|
"config": {
|
316
|
-
"addKey": "Thêm khóa",
|
376
|
+
"addKey": "Thêm khóa bí mật",
|
317
377
|
"close": "Xóa",
|
318
378
|
"confirm": "Đã hoàn thành cấu hình và thử lại"
|
319
379
|
},
|
@@ -322,7 +382,7 @@
|
|
322
382
|
"detail": {
|
323
383
|
"preview": "Xem trước",
|
324
384
|
"raw": "Văn bản gốc",
|
325
|
-
"tooLong": "Nội dung văn bản quá dài, chỉ giữ lại {{characters}} ký tự đầu
|
385
|
+
"tooLong": "Nội dung văn bản quá dài, ngữ cảnh hội thoại chỉ giữ lại {{characters}} ký tự đầu, phần vượt quá không được tính vào ngữ cảnh."
|
326
386
|
},
|
327
387
|
"meta": {
|
328
388
|
"crawler": "Chế độ thu thập",
|
@@ -330,11 +390,11 @@
|
|
330
390
|
}
|
331
391
|
},
|
332
392
|
"searchxng": {
|
333
|
-
"baseURL": "
|
334
|
-
"description": "Nhập
|
335
|
-
"keyPlaceholder": "
|
393
|
+
"baseURL": "Vui lòng nhập",
|
394
|
+
"description": "Nhập địa chỉ SearchXNG để bắt đầu tìm kiếm trực tuyến",
|
395
|
+
"keyPlaceholder": "Vui lòng nhập khóa bí mật",
|
336
396
|
"title": "Cấu hình công cụ tìm kiếm SearchXNG",
|
337
|
-
"unconfiguredDesc": "Vui lòng liên hệ
|
397
|
+
"unconfiguredDesc": "Vui lòng liên hệ quản trị viên để hoàn thành cấu hình SearchXNG, sau đó có thể bắt đầu tìm kiếm trực tuyến",
|
338
398
|
"unconfiguredTitle": "Chưa cấu hình công cụ tìm kiếm SearchXNG"
|
339
399
|
},
|
340
400
|
"title": "Tìm kiếm trực tuyến"
|
@@ -358,11 +418,11 @@
|
|
358
418
|
"url": "Địa chỉ dịch vụ"
|
359
419
|
},
|
360
420
|
"edit": "Chỉnh sửa",
|
361
|
-
"envConfigDescription": "Các cấu hình này sẽ được truyền dưới dạng biến môi trường khi
|
362
|
-
"httpTypeNotice": "Plugin MCP loại HTTP hiện
|
421
|
+
"envConfigDescription": "Các cấu hình này sẽ được truyền dưới dạng biến môi trường khi MCP server khởi động",
|
422
|
+
"httpTypeNotice": "Plugin MCP loại HTTP hiện chưa cần cấu hình biến môi trường",
|
363
423
|
"indexUrl": {
|
364
424
|
"title": "Chỉ mục thị trường",
|
365
|
-
"tooltip": "Hiện
|
425
|
+
"tooltip": "Hiện chưa hỗ trợ chỉnh sửa trực tuyến, vui lòng cấu hình qua biến môi trường khi triển khai"
|
366
426
|
},
|
367
427
|
"messages": {
|
368
428
|
"connectionUpdateFailed": "Cập nhật thông tin kết nối thất bại",
|
@@ -379,28 +439,28 @@
|
|
379
439
|
"saveSettings": "Lưu cài đặt",
|
380
440
|
"title": "Cài đặt thị trường plugin"
|
381
441
|
},
|
382
|
-
"showInPortal": "Vui lòng xem chi tiết trong
|
442
|
+
"showInPortal": "Vui lòng xem chi tiết trong không gian làm việc",
|
383
443
|
"store": {
|
384
444
|
"actions": {
|
385
445
|
"cancel": "Hủy cài đặt",
|
386
|
-
"confirmUninstall": "
|
446
|
+
"confirmUninstall": "Bạn sắp gỡ cài đặt plugin này, thao tác sẽ xóa cấu hình plugin, vui lòng xác nhận",
|
387
447
|
"detail": "Chi tiết",
|
388
448
|
"install": "Cài đặt",
|
389
449
|
"manifest": "Chỉnh sửa tệp cài đặt",
|
390
450
|
"settings": "Cài đặt",
|
391
|
-
"uninstall": "Gỡ
|
451
|
+
"uninstall": "Gỡ cài đặt"
|
392
452
|
},
|
393
453
|
"communityPlugin": "Cộng đồng bên thứ ba",
|
394
454
|
"customPlugin": "Tùy chỉnh",
|
395
|
-
"empty": "
|
396
|
-
"emptySelectHint": "Chọn plugin để xem
|
455
|
+
"empty": "Chưa có plugin đã cài đặt",
|
456
|
+
"emptySelectHint": "Chọn plugin để xem chi tiết",
|
397
457
|
"installAllPlugins": "Cài đặt tất cả",
|
398
458
|
"networkError": "Lấy cửa hàng plugin thất bại, vui lòng kiểm tra kết nối mạng và thử lại",
|
399
|
-
"placeholder": "Tìm kiếm tên
|
400
|
-
"releasedAt": "
|
459
|
+
"placeholder": "Tìm kiếm tên, mô tả hoặc từ khóa plugin...",
|
460
|
+
"releasedAt": "Phát hành vào {{createdAt}}",
|
401
461
|
"tabs": {
|
402
462
|
"installed": "Đã cài đặt",
|
403
|
-
"mcp": "
|
463
|
+
"mcp": "Plugin MCP",
|
404
464
|
"old": "Plugin LobeChat"
|
405
465
|
},
|
406
466
|
"title": "Cửa hàng plugin"
|
@@ -306,6 +306,66 @@
|
|
306
306
|
"skipDependencies": "跳过检查"
|
307
307
|
},
|
308
308
|
"pluginList": "插件列表",
|
309
|
+
"protocolInstall": {
|
310
|
+
"actions": {
|
311
|
+
"install": "安装",
|
312
|
+
"installAnyway": "仍要安装",
|
313
|
+
"installed": "已安装"
|
314
|
+
},
|
315
|
+
"config": {
|
316
|
+
"args": "参数",
|
317
|
+
"command": "命令",
|
318
|
+
"env": "环境变量",
|
319
|
+
"headers": "请求头",
|
320
|
+
"title": "配置信息",
|
321
|
+
"type": {
|
322
|
+
"http": "类型: HTTP",
|
323
|
+
"label": "类型",
|
324
|
+
"stdio": "类型: Stdio"
|
325
|
+
},
|
326
|
+
"url": "服务地址"
|
327
|
+
},
|
328
|
+
"custom": {
|
329
|
+
"badge": "自定义插件",
|
330
|
+
"security": {
|
331
|
+
"description": "此插件未经过官方验证,安装可能存在安全风险!请确保您信任插件来源。",
|
332
|
+
"title": "⚠️ 安全风险提示"
|
333
|
+
},
|
334
|
+
"title": "安装自定义插件"
|
335
|
+
},
|
336
|
+
"marketplace": {
|
337
|
+
"title": "安装第三方插件",
|
338
|
+
"trustedBy": "由 {{name}} 提供",
|
339
|
+
"unverified": {
|
340
|
+
"title": "未经验证的第三方插件",
|
341
|
+
"warning": "此插件来自未验证的第三方市场,安装前请确认您信任该来源。"
|
342
|
+
},
|
343
|
+
"verified": "已验证"
|
344
|
+
},
|
345
|
+
"messages": {
|
346
|
+
"connectionTestFailed": "连接测试失败",
|
347
|
+
"installError": "插件安装失败,请重试",
|
348
|
+
"installSuccess": "插件 {{name}} 安装成功!",
|
349
|
+
"manifestError": "获取插件详情失败,请检查网络连接后重试",
|
350
|
+
"manifestNotFound": "未能获取插件描述文件"
|
351
|
+
},
|
352
|
+
"meta": {
|
353
|
+
"author": "作者",
|
354
|
+
"homepage": "主页",
|
355
|
+
"identifier": "标识符",
|
356
|
+
"source": "来源",
|
357
|
+
"version": "版本"
|
358
|
+
},
|
359
|
+
"official": {
|
360
|
+
"badge": "LobeHub 官方插件",
|
361
|
+
"description": "此插件由 LobeHub 官方开发和维护,经过严格的安全审核,可放心使用。",
|
362
|
+
"loadingMessage": "正在获取插件详情...",
|
363
|
+
"loadingTitle": "加载中",
|
364
|
+
"title": "安装官方插件"
|
365
|
+
},
|
366
|
+
"title": "安装 MCP 插件",
|
367
|
+
"warning": "⚠️ 请确认您信任此插件的来源,恶意插件可能会危害您的系统安全。"
|
368
|
+
},
|
309
369
|
"search": {
|
310
370
|
"apiName": {
|
311
371
|
"crawlMultiPages": "读取多个页面内容",
|