@lobehub/chat 1.109.1 → 1.110.1

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.
Files changed (57) hide show
  1. package/.cursor/rules/i18n.mdc +1 -2
  2. package/CHANGELOG.md +50 -0
  3. package/README.md +1 -1
  4. package/README.zh-CN.md +1 -1
  5. package/apps/desktop/electron-builder.js +22 -0
  6. package/apps/desktop/src/main/controllers/McpInstallCtr.ts +153 -0
  7. package/apps/desktop/src/main/controllers/index.ts +19 -0
  8. package/apps/desktop/src/main/core/App.ts +46 -0
  9. package/apps/desktop/src/main/core/infrastructure/IoCContainer.ts +4 -0
  10. package/apps/desktop/src/main/core/infrastructure/ProtocolManager.ts +256 -0
  11. package/apps/desktop/src/main/types/protocol.ts +60 -0
  12. package/apps/desktop/src/main/utils/__tests__/protocol.test.ts +203 -0
  13. package/apps/desktop/src/main/utils/protocol.ts +210 -0
  14. package/changelog/v1.json +18 -0
  15. package/locales/ar/plugin.json +196 -136
  16. package/locales/bg-BG/plugin.json +204 -144
  17. package/locales/de-DE/plugin.json +176 -116
  18. package/locales/en-US/plugin.json +192 -132
  19. package/locales/es-ES/plugin.json +203 -143
  20. package/locales/fa-IR/plugin.json +155 -95
  21. package/locales/fr-FR/plugin.json +161 -101
  22. package/locales/it-IT/plugin.json +193 -133
  23. package/locales/ja-JP/plugin.json +195 -135
  24. package/locales/ko-KR/plugin.json +163 -103
  25. package/locales/nl-NL/plugin.json +211 -151
  26. package/locales/pl-PL/plugin.json +171 -111
  27. package/locales/pt-BR/plugin.json +180 -120
  28. package/locales/ru-RU/plugin.json +191 -131
  29. package/locales/tr-TR/plugin.json +187 -127
  30. package/locales/vi-VN/plugin.json +152 -92
  31. package/locales/zh-CN/plugin.json +60 -0
  32. package/locales/zh-TW/plugin.json +157 -97
  33. package/package.json +2 -1
  34. package/packages/electron-client-ipc/src/events/index.ts +5 -2
  35. package/packages/electron-client-ipc/src/events/protocol.ts +29 -0
  36. package/packages/electron-client-ipc/src/types/index.ts +1 -0
  37. package/packages/electron-client-ipc/src/types/mcpInstall.ts +19 -0
  38. package/packages/types/src/plugins/mcp.ts +38 -1
  39. package/packages/types/src/plugins/protocol.ts +166 -0
  40. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +4 -1
  41. package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ActionButton/index.tsx +1 -2
  42. package/src/components/KeyValueEditor/index.tsx +4 -2
  43. package/src/features/ChatItem/index.tsx +25 -2
  44. package/src/features/MCP/MCPInstallProgress/index.tsx +1 -1
  45. package/src/features/PluginDevModal/MCPManifestForm/index.tsx +30 -36
  46. package/src/features/PluginStore/McpList/List/Item.tsx +1 -1
  47. package/src/features/ProtocolUrlHandler/InstallPlugin/ConfigDisplay.tsx +211 -0
  48. package/src/features/ProtocolUrlHandler/InstallPlugin/CustomPluginInstallModal.tsx +228 -0
  49. package/src/features/ProtocolUrlHandler/InstallPlugin/OfficialPluginInstallModal/Detail.tsx +44 -0
  50. package/src/features/ProtocolUrlHandler/InstallPlugin/OfficialPluginInstallModal/index.tsx +105 -0
  51. package/src/features/ProtocolUrlHandler/InstallPlugin/index.tsx +55 -0
  52. package/src/features/ProtocolUrlHandler/InstallPlugin/types.ts +45 -0
  53. package/src/features/ProtocolUrlHandler/index.tsx +30 -0
  54. package/src/locales/default/plugin.ts +60 -0
  55. package/src/store/tool/slices/mcpStore/action.ts +127 -1
  56. package/src/store/tool/slices/mcpStore/initialState.ts +8 -13
  57. package/src/store/tool/slices/mcpStore/selectors.ts +13 -0
@@ -33,21 +33,21 @@
33
33
  "title": "جزئیات افزونه"
34
34
  },
35
35
  "dev": {
36
- "confirmDeleteDevPlugin": "این افزونه محلی حذف خواهد شد و پس از حذف قابل بازیابی نخواهد بود. آیا می‌خواهید این افزونه را حذف کنید؟",
36
+ "confirmDeleteDevPlugin": "در حال حذف این افزونه محلی هستید، پس از حذف قابل بازیابی نخواهد بود. آیا مطمئن به حذف افزونه هستید؟",
37
37
  "customParams": {
38
38
  "useProxy": {
39
- "label": "نصب از طریق پروکسی (در صورت بروز خطای دسترسی متقابل، می‌توانید این گزینه را فعال کرده و دوباره نصب کنید)"
39
+ "label": "نصب از طریق پراکسی (در صورت بروز خطای دسترسی متقاطع، این گزینه را فعال کرده و مجدداً نصب کنید)"
40
40
  }
41
41
  },
42
42
  "deleteSuccess": "افزونه با موفقیت حذف شد",
43
43
  "manifest": {
44
44
  "identifier": {
45
- "desc": "شناسه‌ی یکتای افزونه",
45
+ "desc": "شناسه یکتا افزونه",
46
46
  "label": "شناسه"
47
47
  },
48
48
  "mode": {
49
49
  "mcp": "افزونه MCP",
50
- "mcpExp": "تجربی",
50
+ "mcpExp": "آزمایشی",
51
51
  "url": "لینک آنلاین"
52
52
  },
53
53
  "name": {
@@ -61,16 +61,16 @@
61
61
  "title": "تنظیمات پیشرفته"
62
62
  },
63
63
  "args": {
64
- "desc": "لیست پارامترهایی که به دستور اجرا منتقل می‌شوند، معمولاً در اینجا نام سرور MCP یا مسیر اسکریپت راه‌اندازی را وارد کنید",
65
- "label": "پارامترهای دستور",
66
- "placeholder": "برای مثال: --port 8080 --debug",
67
- "required": "لطفاً پارامترهای راه‌اندازی را وارد کنید"
64
+ "desc": "لیست پارامترهای ارسال شده به فرمان اجرا، معمولاً نام سرور MCP یا مسیر اسکریپت راه‌اندازی وارد می‌شود",
65
+ "label": "پارامترهای فرمان",
66
+ "placeholder": "مثال: mcp-hello-world",
67
+ "required": "لطفاً پارامتر راه‌اندازی را وارد کنید"
68
68
  },
69
69
  "auth": {
70
70
  "bear": "کلید API",
71
71
  "desc": "روش احراز هویت سرور MCP را انتخاب کنید",
72
72
  "label": "نوع احراز هویت",
73
- "none": "نیاز به احراز هویت نیست",
73
+ "none": "نیازی به احراز هویت نیست",
74
74
  "placeholder": "لطفاً نوع احراز هویت را انتخاب کنید",
75
75
  "token": {
76
76
  "desc": "کلید API یا توکن Bearer خود را وارد کنید",
@@ -83,28 +83,28 @@
83
83
  "label": "آیکون افزونه"
84
84
  },
85
85
  "command": {
86
- "desc": "فایل اجرایی یا اسکریپتی که برای راه‌اندازی افزونه MCP STDIO استفاده می‌شود",
87
- "label": "دستور",
88
- "placeholder": "برای مثال: python main.py یا /path/to/executable",
89
- "required": "لطفاً دستور راه‌اندازی را وارد کنید"
86
+ "desc": "فایل اجرایی یا اسکریپتی که برای راه‌اندازی MCP STDIO Server استفاده می‌شود",
87
+ "label": "فرمان",
88
+ "placeholder": "مثال: npx / uv / docker و غیره",
89
+ "required": "لطفاً فرمان راه‌اندازی را وارد کنید"
90
90
  },
91
91
  "desc": {
92
- "desc": "توضیحات مربوط به افزونه را اضافه کنید",
92
+ "desc": "توضیحی برای افزونه اضافه کنید",
93
93
  "label": "توضیحات افزونه",
94
- "placeholder": "اطلاعات مربوط به نحوه استفاده و سناریوهای این افزونه را تکمیل کنید"
94
+ "placeholder": "اطلاعات استفاده و سناریوهای افزونه را تکمیل کنید"
95
95
  },
96
96
  "endpoint": {
97
- "desc": "آدرس سرور HTTP Streamable MCP خود را وارد کنید",
98
- "label": "آدرس URL نقطه پایانی MCP"
97
+ "desc": "آدرس MCP Streamable HTTP Server خود را وارد کنید",
98
+ "label": "آدرس Endpoint MCP"
99
99
  },
100
100
  "env": {
101
- "add": "یک خط جدید اضافه کنید",
101
+ "add": "افزودن یک خط جدید",
102
102
  "desc": "متغیرهای محیطی مورد نیاز سرور MCP خود را وارد کنید",
103
- "duplicateKeyError": "کلید فیلد باید منحصر به فرد باشد",
103
+ "duplicateKeyError": "کلید فیلد باید یکتا باشد",
104
104
  "formValidationFailed": "اعتبارسنجی فرم ناموفق بود، لطفاً فرمت پارامترها را بررسی کنید",
105
105
  "keyRequired": "کلید فیلد نمی‌تواند خالی باشد",
106
106
  "label": "متغیرهای محیطی سرور MCP",
107
- "stringifyError": "نمی‌توان پارامترها را سریالیزه کرد، لطفاً فرمت پارامترها را بررسی کنید"
107
+ "stringifyError": "امکان سریال‌سازی پارامترها وجود ندارد، لطفاً فرمت پارامترها را بررسی کنید"
108
108
  },
109
109
  "headers": {
110
110
  "add": "افزودن یک خط جدید",
@@ -112,39 +112,39 @@
112
112
  "label": "هدرهای HTTP"
113
113
  },
114
114
  "identifier": {
115
- "desc": "برای افزونه MCP خود یک نام مشخص کنید، باید از کاراکترهای انگلیسی استفاده کنید",
116
- "invalid": "فقط می‌توانید از کاراکترهای انگلیسی، اعداد، - و _ استفاده کنید",
115
+ "desc": "یک نام برای افزونه MCP خود تعیین کنید، باید از حروف انگلیسی استفاده شود",
116
+ "invalid": "شناسه فقط می‌تواند شامل حروف، اعداد، خط تیره و زیرخط باشد",
117
117
  "label": "نام افزونه MCP",
118
- "placeholder": "برای مثال: my-mcp-plugin",
118
+ "placeholder": "مثال: my-mcp-plugin",
119
119
  "required": "لطفاً شناسه سرویس MCP را وارد کنید"
120
120
  },
121
121
  "previewManifest": "پیش‌نمایش فایل توصیف افزونه",
122
122
  "quickImport": "وارد کردن سریع پیکربندی JSON",
123
123
  "quickImportError": {
124
- "empty": "محتوای ورودی نمی‌تواند خالی باشد",
124
+ "empty": "محتوا نمی‌تواند خالی باشد",
125
125
  "invalidJson": "فرمت JSON نامعتبر است",
126
126
  "invalidStructure": "فرمت JSON نامعتبر است"
127
127
  },
128
- "stdioNotSupported": "محیط فعلی از پلاگین MCP نوع stdio پشتیبانی نمی‌کند",
128
+ "stdioNotSupported": "محیط فعلی از افزونه MCP نوع stdio پشتیبانی نمی‌کند",
129
129
  "testConnection": "آزمایش اتصال",
130
- "testConnectionTip": "پس از موفقیت‌آمیز بودن آزمایش اتصال، افزونه MCP می‌تواند به‌طور عادی استفاده شود",
130
+ "testConnectionTip": "پس از موفقیت در آزمایش اتصال، افزونه MCP قابل استفاده خواهد بود",
131
131
  "type": {
132
- "desc": "روش ارتباط افزونه MCP را انتخاب کنید، نسخه وب فقط از HTTP Streamable پشتیبانی می‌کند",
133
- "httpFeature1": "سازگاری با نسخه وب و دسکتاپ",
134
- "httpFeature2": "اتصال به سرور MCP از راه دور، بدون نیاز به نصب و پیکربندی اضافی",
135
- "httpShortDesc": "پروتکل ارتباطی مبتنی بر HTTP جریانی",
132
+ "desc": "نوع ارتباط افزونه MCP را انتخاب کنید، نسخه وب فقط از Streamable HTTP پشتیبانی می‌کند",
133
+ "httpFeature1": "سازگار با نسخه وب و دسکتاپ",
134
+ "httpFeature2": "اتصال به سرور MCP از راه دور بدون نیاز به نصب و پیکربندی اضافی",
135
+ "httpShortDesc": "پروتکل ارتباطی مبتنی بر HTTP جریان‌پذیر",
136
136
  "label": "نوع افزونه MCP",
137
- "stdioFeature1": "تاخیر ارتباطی کمتر، مناسب برای اجراهای محلی",
137
+ "stdioFeature1": "تاخیر ارتباطی کمتر، مناسب برای اجرا محلی",
138
138
  "stdioFeature2": "نیاز به نصب و اجرای سرور MCP به صورت محلی",
139
139
  "stdioNotAvailable": "حالت STDIO فقط در نسخه دسکتاپ در دسترس است",
140
140
  "stdioShortDesc": "پروتکل ارتباطی مبتنی بر ورودی و خروجی استاندارد",
141
141
  "title": "نوع افزونه MCP"
142
142
  },
143
143
  "url": {
144
- "desc": "آدرس HTTP قابل پخش سرور MCP خود را وارد کنید، حالت SSE پشتیبانی نمی‌شود",
144
+ "desc": "آدرس Streamable HTTP سرور MCP خود را وارد کنید، حالت SSE پشتیبانی نمی‌شود",
145
145
  "invalid": "لطفاً یک آدرس URL معتبر وارد کنید",
146
- "label": "آدرس URL نقطه پایانی HTTP",
147
- "required": "لطفاً URL سرویس MCP را وارد کنید"
146
+ "label": "آدرس Endpoint HTTP جریان‌پذیر",
147
+ "required": "لطفاً آدرس سرویس MCP را وارد کنید"
148
148
  }
149
149
  },
150
150
  "meta": {
@@ -158,8 +158,8 @@
158
158
  },
159
159
  "description": {
160
160
  "desc": "توضیحات افزونه",
161
- "label": "توضیحات",
162
- "placeholder": "اطلاعات را از موتور جستجو دریافت کنید"
161
+ "label": "توضیح",
162
+ "placeholder": "برای دریافت اطلاعات، موتور جستجو را جستجو کنید"
163
163
  },
164
164
  "formFieldRequired": "این فیلد الزامی است",
165
165
  "homepage": {
@@ -167,15 +167,15 @@
167
167
  "label": "صفحه اصلی"
168
168
  },
169
169
  "identifier": {
170
- "desc": "شناسه‌ی یکتای افزونه که به‌طور خودکار از manifest شناسایی می‌شود",
171
- "errorDuplicate": "شناسه با افزونه‌های موجود تکراری است، لطفاً شناسه را تغییر دهید",
170
+ "desc": "شناسه یکتا افزونه که به طور خودکار از manifest شناسایی می‌شود",
171
+ "errorDuplicate": "شناسه با افزونه موجود تکراری است، لطفاً شناسه را تغییر دهید",
172
172
  "label": "شناسه",
173
- "pattenErrorMessage": "فقط می‌توانید از حروف انگلیسی، اعداد، - و _ استفاده کنید"
173
+ "pattenErrorMessage": "فقط می‌توانید حروف انگلیسی، اعداد، - و _ وارد کنید"
174
174
  },
175
- "lobe": "افزونه {{appName}}",
175
+ "lobe": "{{appName}} افزونه",
176
176
  "manifest": {
177
- "desc": "{{appName}} از طریق این لینک افزونه را نصب خواهد کرد",
178
- "label": "URL فایل توضیحات افزونه (Manifest)",
177
+ "desc": "{{appName}} از این لینک برای نصب افزونه استفاده خواهد کرد",
178
+ "label": "فایل توصیف افزونه (Manifest) URL",
179
179
  "preview": "پیش‌نمایش Manifest",
180
180
  "refresh": "تازه‌سازی"
181
181
  },
@@ -187,30 +187,30 @@
187
187
  }
188
188
  },
189
189
  "metaConfig": "پیکربندی اطلاعات متا افزونه",
190
- "modalDesc": "پس از افزودن افزونه سفارشی، می‌توانید از آن برای تأیید توسعه افزونه استفاده کنید یا مستقیماً در مکالمه‌ها از آن بهره ببرید. برای توسعه افزونه به <1>مستندات توسعه↗</> مراجعه کنید.",
190
+ "modalDesc": "پس از افزودن افزونه سفارشی، می‌توانید برای توسعه و اعتبارسنجی افزونه استفاده کنید یا مستقیماً در گفتگوها به کار ببرید. برای توسعه افزونه به <1>مستندات توسعه↗</> مراجعه کنید.",
191
191
  "openai": {
192
192
  "importUrl": "وارد کردن از لینک URL",
193
- "schema": "Schema"
193
+ "schema": "طرح‌واره"
194
194
  },
195
195
  "preview": {
196
196
  "api": {
197
- "noParams": "این ابزار پارامتر ندارد",
198
- "noResults": "هیچ API مطابق با شرایط جستجو پیدا نشد",
197
+ "noParams": "این ابزار پارامتری ندارد",
198
+ "noResults": "هیچ API مطابق با شرایط جستجو یافت نشد",
199
199
  "params": "پارامترها:",
200
200
  "searchPlaceholder": "جستجوی ابزار..."
201
201
  },
202
202
  "card": "پیش‌نمایش نمایش افزونه",
203
203
  "desc": "پیش‌نمایش توضیحات افزونه",
204
204
  "empty": {
205
- "desc": "پس از اتمام پیکربندی، می‌توانید قابلیت‌های ابزارهای پشتیبانی شده توسط پلاگین را در اینجا پیش‌نمایش کنید",
206
- "title": "پس از پیکربندی پلاگین، پیش‌نمایش را شروع کنید"
205
+ "desc": "پس از پیکربندی، می‌توانید قابلیت‌های ابزار پشتیبانی شده توسط افزونه را در اینجا پیش‌نمایش کنید",
206
+ "title": "پس از پیکربندی افزونه، پیش‌نمایش را شروع کنید"
207
207
  },
208
208
  "title": "پیش‌نمایش نام افزونه"
209
209
  },
210
210
  "save": "نصب افزونه",
211
211
  "saveSuccess": "تنظیمات افزونه با موفقیت ذخیره شد",
212
212
  "tabs": {
213
- "manifest": "فهرست توضیحات عملکرد (Manifest)",
213
+ "manifest": "فهرست توصیف عملکرد (Manifest)",
214
214
  "meta": "اطلاعات متا افزونه"
215
215
  },
216
216
  "title": {
@@ -218,25 +218,25 @@
218
218
  "edit": "ویرایش افزونه سفارشی"
219
219
  },
220
220
  "type": {
221
- "lobe": "افزونه {{appName}}",
221
+ "lobe": "{{appName}} افزونه",
222
222
  "openai": "افزونه OpenAI"
223
223
  },
224
224
  "update": "به‌روزرسانی",
225
225
  "updateSuccess": "تنظیمات افزونه با موفقیت به‌روزرسانی شد"
226
226
  },
227
227
  "error": {
228
- "fetchError": "درخواست برای این لینک manifest ناموفق بود، لطفاً از معتبر بودن لینک اطمینان حاصل کنید و بررسی کنید که آیا لینک اجازه دسترسی بین دامنه‌ای را می‌دهد.",
229
- "installError": "نصب افزونه {{name}} ناموفق بود.",
230
- "manifestInvalid": "manifest با استانداردها مطابقت ندارد، نتیجه بررسی: \n\n {{error}}",
231
- "noManifest": "فایل توصیفی وجود ندارد.",
228
+ "fetchError": "درخواست لینک manifest ناموفق بود، لطفاً از اعتبار لینک و اجازه دسترسی متقاطع آن اطمینان حاصل کنید",
229
+ "installError": "نصب افزونه {{name}} ناموفق بود",
230
+ "manifestInvalid": "manifest با استانداردها مطابقت ندارد، نتیجه اعتبارسنجی: \n\n {{error}}",
231
+ "noManifest": "فایل توصیف وجود ندارد",
232
232
  "openAPIInvalid": "تجزیه OpenAPI ناموفق بود، خطا: \n\n {{error}}",
233
- "reinstallError": "بروزرسانی افزونه {{name}} ناموفق بود.",
233
+ "reinstallError": "تازه‌سازی افزونه {{name}} ناموفق بود",
234
234
  "testConnectionFailed": "دریافت Manifest ناموفق بود: {{error}}",
235
- "urlError": "این لینک محتوای JSON بازنگرداند، لطفاً از معتبر بودن لینک اطمینان حاصل کنید."
235
+ "urlError": "این لینک محتوای فرمت JSON بازنگردانده است، لطفاً از معتبر بودن لینک اطمینان حاصل کنید"
236
236
  },
237
237
  "inspector": {
238
238
  "args": "مشاهده لیست پارامترها",
239
- "pluginRender": "مشاهده رابط کاربری پلاگین"
239
+ "pluginRender": "مشاهده رابط افزونه"
240
240
  },
241
241
  "list": {
242
242
  "item": {
@@ -251,8 +251,8 @@
251
251
  },
252
252
  "localSystem": {
253
253
  "apiName": {
254
- "listLocalFiles": "نمایش لیست فایل‌ها",
255
- "moveLocalFiles": "انتقال فایل‌ها",
254
+ "listLocalFiles": "مشاهده لیست فایل‌ها",
255
+ "moveLocalFiles": "جابجایی فایل‌ها",
256
256
  "readLocalFile": "خواندن محتوای فایل",
257
257
  "renameLocalFile": "تغییر نام",
258
258
  "searchLocalFiles": "جستجوی فایل‌ها",
@@ -263,15 +263,15 @@
263
263
  "mcpInstall": {
264
264
  "CHECKING_INSTALLATION": "در حال بررسی محیط نصب...",
265
265
  "COMPLETED": "نصب کامل شد",
266
- "CONFIGURATION_REQUIRED": "لطفاً پیکربندی‌های لازم را انجام دهید و سپس نصب را ادامه دهید",
266
+ "CONFIGURATION_REQUIRED": "لطفاً پیکربندی‌های لازم را انجام داده و سپس نصب را ادامه دهید",
267
267
  "ERROR": "خطای نصب",
268
- "FETCHING_MANIFEST": "در حال دریافت فایل توضیحات افزونه...",
269
- "GETTING_SERVER_MANIFEST": "در حال راه‌اندازی سرور MCP...",
268
+ "FETCHING_MANIFEST": "دریافت فایل توصیف افزونه...",
269
+ "GETTING_SERVER_MANIFEST": "راه‌اندازی سرور MCP...",
270
270
  "INSTALLING_PLUGIN": "در حال نصب افزونه...",
271
- "configurationDescription": "این افزونه MCP نیاز به پارامترهای پیکربندی دارد تا به درستی کار کند، لطفاً اطلاعات پیکربندی لازم را وارد کنید",
271
+ "configurationDescription": "این افزونه MCP نیاز به پیکربندی پارامترها برای عملکرد صحیح دارد، لطفاً اطلاعات لازم را وارد کنید",
272
272
  "configurationRequired": "پیکربندی پارامترهای افزونه",
273
273
  "continueInstall": "ادامه نصب",
274
- "dependenciesDescription": "این افزونه برای عملکرد صحیح نیاز به نصب وابستگی‌های سیستمی زیر دارد، لطفاً وابستگی‌های گمشده را طبق راهنما نصب کرده و سپس برای ادامه نصب روی بررسی مجدد کلیک کنید.",
274
+ "dependenciesDescription": "این افزونه نیاز به نصب وابستگی‌های سیستمی زیر دارد تا به درستی کار کند، لطفاً وابستگی‌های گمشده را طبق راهنما نصب کرده و سپس برای ادامه نصب دوباره بررسی کنید.",
275
275
  "dependenciesRequired": "لطفاً وابستگی‌های سیستمی افزونه را نصب کنید",
276
276
  "dependencyStatus": {
277
277
  "installed": "نصب شده",
@@ -280,7 +280,7 @@
280
280
  },
281
281
  "errorDetails": {
282
282
  "args": "پارامترها",
283
- "command": "دستور",
283
+ "command": "فرمان",
284
284
  "connectionParams": "پارامترهای اتصال",
285
285
  "env": "متغیرهای محیطی",
286
286
  "errorOutput": "گزارش خطا",
@@ -290,14 +290,14 @@
290
290
  "showDetails": "نمایش جزئیات"
291
291
  },
292
292
  "errorTypes": {
293
- "AUTHORIZATION_ERROR": "خطای تأیید مجوز",
294
- "CONNECTION_FAILED": "اتصال ناموفق بود",
293
+ "AUTHORIZATION_ERROR": "خطای احراز هویت",
294
+ "CONNECTION_FAILED": "اتصال ناموفق",
295
295
  "INITIALIZATION_TIMEOUT": "زمان راه‌اندازی به پایان رسید",
296
- "PROCESS_SPAWN_ERROR": "خطا در راه‌اندازی فرآیند",
296
+ "PROCESS_SPAWN_ERROR": "خطای راه‌اندازی فرآیند",
297
297
  "UNKNOWN_ERROR": "خطای ناشناخته",
298
298
  "VALIDATION_ERROR": "اعتبارسنجی پارامترها ناموفق بود"
299
299
  },
300
- "installError": "نصب افزونه MCP ناموفق بود، دلیل خطا: {{detail}}",
300
+ "installError": "نصب افزونه MCP ناموفق بود، دلیل شکست: {{detail}}",
301
301
  "installMethods": {
302
302
  "manual": "نصب دستی:",
303
303
  "recommended": "روش نصب پیشنهادی:"
@@ -306,35 +306,95 @@
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
- "crawlMultiPages": "خواندن محتوای چندین صفحه",
371
+ "crawlMultiPages": "خواندن محتوای چند صفحه",
312
372
  "crawlSinglePage": "خواندن محتوای صفحه",
313
- "search": "جستجو در صفحه"
373
+ "search": "جستجوی صفحه"
314
374
  },
315
375
  "config": {
316
- "addKey": "کلید را اضافه کنید",
376
+ "addKey": "افزودن کلید",
317
377
  "close": "حذف",
318
- "confirm": "پیکربندی کامل و دوباره تلاش کنید"
378
+ "confirm": "پیکربندی انجام شده و دوباره تلاش کنید"
319
379
  },
320
380
  "crawPages": {
321
- "crawling": "در حال شناسایی لینک",
381
+ "crawling": "شناسایی لینک‌ها در حال انجام است",
322
382
  "detail": {
323
383
  "preview": "پیش‌نمایش",
324
- "raw": "متن اصلی",
325
- "tooLong": "متن بسیار طولانی است، فقط {{characters}} کاراکتر اول در زمینه گفتگو حفظ می‌شود و بخش‌های اضافی در زمینه گفتگو محاسبه نمی‌شوند"
384
+ "raw": "متن خام",
385
+ "tooLong": "محتوای متن بسیار طولانی است، فقط {{characters}} کاراکتر اول در زمینه گفتگو حفظ شده و بخش اضافی لحاظ نمی‌شود"
326
386
  },
327
387
  "meta": {
328
- "crawler": "مدل خزنده",
329
- "words": "تعداد کاراکتر"
388
+ "crawler": "حالت خزیدن",
389
+ "words": "تعداد کاراکترها"
330
390
  }
331
391
  },
332
392
  "searchxng": {
333
393
  "baseURL": "لطفاً وارد کنید",
334
- "description": "لطفاً آدرس وب SearchXNG را وارد کنید تا جستجوی آنلاین را شروع کنید",
394
+ "description": "آدرس SearchXNG را وارد کنید تا جستجوی آنلاین آغاز شود",
335
395
  "keyPlaceholder": "لطفاً کلید را وارد کنید",
336
396
  "title": "پیکربندی موتور جستجوی SearchXNG",
337
- "unconfiguredDesc": "لطفاً با مدیر تماس بگیرید تا پیکربندی موتور جستجوی SearchXNG را کامل کند و بتوانید جستجوی آنلاین را شروع کنید",
397
+ "unconfiguredDesc": "لطفاً با مدیر تماس بگیرید تا پیکربندی موتور جستجوی SearchXNG انجام شود و سپس جستجوی آنلاین را شروع کنید",
338
398
  "unconfiguredTitle": "موتور جستجوی SearchXNG هنوز پیکربندی نشده است"
339
399
  },
340
400
  "title": "جستجوی آنلاین"
@@ -352,17 +412,17 @@
352
412
  },
353
413
  "connection": {
354
414
  "args": "پارامترهای راه‌اندازی",
355
- "command": "دستور راه‌اندازی",
415
+ "command": "فرمان راه‌اندازی",
356
416
  "title": "اطلاعات اتصال",
357
417
  "type": "نوع اتصال",
358
418
  "url": "آدرس سرویس"
359
419
  },
360
420
  "edit": "ویرایش",
361
- "envConfigDescription": "این تنظیمات به عنوان متغیرهای محیطی هنگام راه‌اندازی سرور MCP به فرآیند منتقل می‌شوند",
362
- "httpTypeNotice": "افزونه‌های MCP با نوع HTTP در حال حاضر نیازی به تنظیم متغیرهای محیطی ندارند",
421
+ "envConfigDescription": "این پیکربندی‌ها به عنوان متغیرهای محیطی هنگام راه‌اندازی سرور MCP به فرآیند منتقل می‌شوند",
422
+ "httpTypeNotice": "افزونه‌های MCP نوع HTTP نیازی به پیکربندی متغیرهای محیطی ندارند",
363
423
  "indexUrl": {
364
- "title": "شاخص بازار",
365
- "tooltip": "ویرایش آنلاین در حال حاضر پشتیبانی نمی‌شود، لطفاً از طریق متغیرهای محیطی در زمان استقرار تنظیم کنید"
424
+ "title": "فهرست بازار",
425
+ "tooltip": "ویرایش آنلاین پشتیبانی نمی‌شود، لطفاً از طریق متغیرهای محیطی هنگام استقرار تنظیم کنید"
366
426
  },
367
427
  "messages": {
368
428
  "connectionUpdateFailed": "به‌روزرسانی اطلاعات اتصال ناموفق بود",
@@ -373,7 +433,7 @@
373
433
  "modalDesc": "پس از پیکربندی آدرس بازار افزونه، می‌توانید از بازار افزونه سفارشی استفاده کنید",
374
434
  "rules": {
375
435
  "argsRequired": "لطفاً پارامترهای راه‌اندازی را وارد کنید",
376
- "commandRequired": "لطفاً دستور راه‌اندازی را وارد کنید",
436
+ "commandRequired": "لطفاً فرمان راه‌اندازی را وارد کنید",
377
437
  "urlRequired": "لطفاً آدرس سرویس را وارد کنید"
378
438
  },
379
439
  "saveSettings": "ذخیره تنظیمات",
@@ -383,27 +443,27 @@
383
443
  "store": {
384
444
  "actions": {
385
445
  "cancel": "لغو نصب",
386
- "confirmUninstall": "در حال حذف این افزونه هستید. پس از حذف، تنظیمات افزونه پاک خواهد شد. لطفاً عملیات خود را تأیید کنید.",
446
+ "confirmUninstall": "در حال حذف این افزونه هستید، پس از حذف پیکربندی‌های افزونه پاک خواهد شد، لطفاً عملیات خود را تأیید کنید",
387
447
  "detail": "جزئیات",
388
448
  "install": "نصب",
389
449
  "manifest": "ویرایش فایل نصب",
390
450
  "settings": "تنظیمات",
391
- "uninstall": "حذف"
451
+ "uninstall": "حذف نصب"
392
452
  },
393
- "communityPlugin": "افزونه‌های جامعه",
394
- "customPlugin": "افزونه سفارشی",
395
- "empty": "هیچ افزونه‌ای نصب نشده است",
396
- "emptySelectHint": "برای پیش‌نمایش جزئیات، افزونه‌ای را انتخاب کنید",
453
+ "communityPlugin": "جامعه شخص ثالث",
454
+ "customPlugin": "سفارشی",
455
+ "empty": "هیچ افزونه نصب شده‌ای وجود ندارد",
456
+ "emptySelectHint": "برای مشاهده جزئیات، افزونه‌ای را انتخاب کنید",
397
457
  "installAllPlugins": "نصب همه",
398
- "networkError": "دریافت فروشگاه افزونه‌ها ناموفق بود. لطفاً اتصال شبکه خود را بررسی کرده و دوباره تلاش کنید.",
399
- "placeholder": "نام افزونه، توضیحات یا کلمات کلیدی را جستجو کنید...",
458
+ "networkError": "دریافت فروشگاه افزونه ناموفق بود، لطفاً اتصال شبکه را بررسی و دوباره تلاش کنید",
459
+ "placeholder": "جستجوی نام، توضیحات یا کلمات کلیدی افزونه...",
400
460
  "releasedAt": "منتشر شده در {{createdAt}}",
401
461
  "tabs": {
402
462
  "installed": "نصب شده",
403
463
  "mcp": "افزونه MCP",
404
464
  "old": "افزونه LobeChat"
405
465
  },
406
- "title": "فروشگاه افزونه‌ها"
466
+ "title": "فروشگاه افزونه"
407
467
  },
408
468
  "unknownError": "خطای ناشناخته",
409
469
  "unknownPlugin": "افزونه ناشناخته"