@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
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "confirm": "تأكيد",
3
3
  "debug": {
4
- "arguments": "متغيرات الاستدعاء",
4
+ "arguments": "معلمات الاستدعاء",
5
5
  "function_call": "استدعاء الدالة",
6
6
  "off": "إيقاف التصحيح",
7
- "on": "عرض معلومات استدعاء البرنامج المساعد",
8
- "payload": "حمولة البرنامج المساعد",
9
- "pluginState": "حالة المكون",
10
- "response": "الرد",
7
+ "on": "عرض معلومات استدعاء الإضافة",
8
+ "payload": "حمولة الإضافة",
9
+ "pluginState": "حالة الإضافة",
10
+ "response": "النتيجة المرجعة",
11
11
  "title": "تفاصيل الإضافة",
12
12
  "tool_call": "طلب استدعاء الأداة"
13
13
  },
14
14
  "detailModal": {
15
15
  "customPlugin": {
16
16
  "description": "يرجى الانتقال إلى صفحة التحرير لمشاهدة التفاصيل",
17
- "editBtn": "حرر الآن",
17
+ "editBtn": "تحرير الآن",
18
18
  "title": "هذه إضافة مخصصة"
19
19
  },
20
20
  "emptyState": {
@@ -22,48 +22,48 @@
22
22
  "title": "عرض تفاصيل الإضافة بعد التثبيت"
23
23
  },
24
24
  "info": {
25
- "description": "وصف واجهة برمجة التطبيقات",
26
- "name": "اسم واجهة برمجة التطبيقات"
25
+ "description": "وصف API",
26
+ "name": "اسم API"
27
27
  },
28
28
  "tabs": {
29
- "info": "قدرات البرنامج المساعد",
29
+ "info": "قدرات الإضافة",
30
30
  "manifest": "ملف التثبيت",
31
31
  "settings": "الإعدادات"
32
32
  },
33
- "title": "تفاصيل البرنامج المساعد"
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
- "deleteSuccess": "تم حذف البرنامج المساعد بنجاح",
42
+ "deleteSuccess": "تم حذف الإضافة بنجاح",
43
43
  "manifest": {
44
44
  "identifier": {
45
- "desc": "العلامة المميزة للبرنامج المساعد",
45
+ "desc": "المعرف الفريد للإضافة",
46
46
  "label": "المعرف"
47
47
  },
48
48
  "mode": {
49
- "mcp": "مكون MCP",
49
+ "mcp": "إضافة MCP",
50
50
  "mcpExp": "تجريبي",
51
- "url": "رابط عبر الإنترنت"
51
+ "url": "رابط مباشر"
52
52
  },
53
53
  "name": {
54
- "desc": "عنوان البرنامج المساعد",
54
+ "desc": "عنوان الإضافة",
55
55
  "label": "العنوان",
56
56
  "placeholder": "محرك البحث"
57
57
  }
58
58
  },
59
59
  "mcp": {
60
60
  "advanced": {
61
- "title": "الإعدادات المتقدمة"
61
+ "title": "إعدادات متقدمة"
62
62
  },
63
63
  "args": {
64
- "desc": "قائمة المعلمات المرسلة إلى الأمر المنفذ، عادةً ما يتم إدخال اسم خادم MCP هنا، أو مسار البرنامج النصي للتشغيل",
64
+ "desc": "قائمة المعلمات الممررة لأمر التنفيذ، عادةً هنا يتم إدخال اسم خادم MCP أو مسار سكريبت التشغيل",
65
65
  "label": "معلمات الأمر",
66
- "placeholder": "على سبيل المثال: --port 8080 --debug",
66
+ "placeholder": "مثال: mcp-hello-world",
67
67
  "required": "يرجى إدخال معلمات التشغيل"
68
68
  },
69
69
  "auth": {
@@ -83,171 +83,171 @@
83
83
  "label": "أيقونة الإضافة"
84
84
  },
85
85
  "command": {
86
- "desc": "الملف القابل للتنفيذ أو البرنامج النصي المستخدم لبدء ملحق MCP STDIO",
86
+ "desc": "الملف التنفيذي أو السكريبت المستخدم لتشغيل خادم MCP STDIO",
87
87
  "label": "الأمر",
88
- "placeholder": "على سبيل المثال: python main.py أو /path/to/executable",
88
+ "placeholder": "مثال: npx / uv / docker إلخ",
89
89
  "required": "يرجى إدخال أمر التشغيل"
90
90
  },
91
91
  "desc": {
92
92
  "desc": "أضف وصفًا للإضافة",
93
93
  "label": "وصف الإضافة",
94
- "placeholder": "أضف معلومات حول كيفية استخدام هذه الإضافة وسيناريوهاتها وغيرها"
94
+ "placeholder": "أضف معلومات عن استخدام الإضافة وسيناريوهاتها"
95
95
  },
96
96
  "endpoint": {
97
97
  "desc": "أدخل عنوان خادم MCP Streamable HTTP الخاص بك",
98
- "label": "عنوان URL لنقطة نهاية MCP"
98
+ "label": "رابط نقطة نهاية MCP"
99
99
  },
100
100
  "env": {
101
- "add": "إضافة سطر جديد",
102
- "desc": "أدخل المتغيرات البيئية المطلوبة لخادم MCP الخاص بك",
103
- "duplicateKeyError": "يجب أن تكون مفاتيح الحقول فريدة",
104
- "formValidationFailed": "فشل التحقق من صحة النموذج، يرجى التحقق من تنسيق المعلمات",
105
- "keyRequired": "لا يمكن أن يكون مفتاح الحقل فارغًا",
106
- "label": "متغيرات البيئة لخادم MCP",
107
- "stringifyError": "تعذر تسلسل المعلمات، يرجى التحقق من تنسيق المعلمات"
101
+ "add": "أضف سطرًا جديدًا",
102
+ "desc": "أدخل متغيرات البيئة المطلوبة لخادم MCP",
103
+ "duplicateKeyError": "مفتاح الحقل يجب أن يكون فريدًا",
104
+ "formValidationFailed": "فشل التحقق من النموذج، يرجى مراجعة تنسيق المعلمات",
105
+ "keyRequired": "مفتاح الحقل لا يمكن أن يكون فارغًا",
106
+ "label": "متغيرات بيئة خادم MCP",
107
+ "stringifyError": "تعذر تسلسل المعلمات، يرجى مراجعة التنسيق"
108
108
  },
109
109
  "headers": {
110
- "add": "أضف صفًا جديدًا",
110
+ "add": "أضف سطرًا جديدًا",
111
111
  "desc": "أدخل رؤوس الطلب",
112
112
  "label": "رؤوس HTTP"
113
113
  },
114
114
  "identifier": {
115
- "desc": "حدد اسمًا لملحق MCP الخاص بك، يجب أن يكون باستخدام أحرف إنجليزية",
116
- "invalid": "يمكنك إدخال أحرف إنجليزية، أرقام، والرمزين - و _ فقط",
117
- "label": "اسم ملحق MCP",
118
- "placeholder": "على سبيل المثال: my-mcp-plugin",
115
+ "desc": "حدد اسمًا لإضافة MCP الخاصة بك، يجب أن يكون بالأحرف الإنجليزية",
116
+ "invalid": "المعرف يمكن أن يحتوي فقط على أحرف، أرقام، شرطات وشرطات سفلية",
117
+ "label": "اسم إضافة MCP",
118
+ "placeholder": "مثال: my-mcp-plugin",
119
119
  "required": "يرجى إدخال معرف خدمة MCP"
120
120
  },
121
121
  "previewManifest": "معاينة ملف وصف الإضافة",
122
- "quickImport": "استيراد إعدادات JSON بسرعة",
122
+ "quickImport": "استيراد سريع لتكوين JSON",
123
123
  "quickImportError": {
124
- "empty": "لا يمكن أن تكون المدخلات فارغة",
124
+ "empty": "لا يمكن أن يكون المحتوى فارغًا",
125
125
  "invalidJson": "تنسيق JSON غير صالح",
126
- "invalidStructure": "تنسيق JSON غير صحيح"
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، النسخة الويب تدعم فقط Streamable HTTP",
133
- "httpFeature1": "متوافق مع النسخة الويب وسطح المكتب",
134
- "httpFeature2": "الاتصال بخادم MCP عن بُعد، دون الحاجة إلى تثبيت أو إعداد إضافي",
135
- "httpShortDesc": "بروتوكول الاتصال القائم على HTTP المتدفق",
136
- "label": "نوع ملحق MCP",
137
- "stdioFeature1": "زمن تأخير أقل في الاتصال، مناسب للتنفيذ المحلي",
138
- "stdioFeature2": "يجب تثبيت خادم MCP وتشغيله محليًا",
139
- "stdioNotAvailable": "وضع STDIO متاح فقط في النسخة المكتبية",
140
- "stdioShortDesc": "بروتوكول الاتصال القائم على الإدخال والإخراج القياسي",
141
- "title": "نوع ملحق MCP"
132
+ "desc": "اختر طريقة اتصال إضافة MCP، النسخة الويب تدعم فقط Streamable HTTP",
133
+ "httpFeature1": "متوافق مع الويب وسطح المكتب",
134
+ "httpFeature2": "اتصال بخادم MCP عن بعد، لا حاجة لتثبيت إضافي",
135
+ "httpShortDesc": "بروتوكول اتصال HTTP متدفق",
136
+ "label": "نوع إضافة MCP",
137
+ "stdioFeature1": "تأخير اتصال أقل، مناسب للتنفيذ المحلي",
138
+ "stdioFeature2": "يجب تثبيت وتشغيل خادم MCP محليًا",
139
+ "stdioNotAvailable": "وضع STDIO متاح فقط في نسخة سطح المكتب",
140
+ "stdioShortDesc": "بروتوكول اتصال يعتمد على الإدخال والإخراج القياسي",
141
+ "title": "نوع إضافة MCP"
142
142
  },
143
143
  "url": {
144
- "desc": "أدخل عنوان HTTP القابل للبث لخادم MCP الخاص بك، لا يدعم وضع SSE",
144
+ "desc": "أدخل عنوان MCP Server Streamable HTTP الخاص بك، لا يدعم وضع SSE",
145
145
  "invalid": "يرجى إدخال عنوان URL صالح",
146
- "label": "عنوان URL لنقطة نهاية HTTP",
146
+ "label": "رابط نقطة نهاية HTTP المتدفق",
147
147
  "required": "يرجى إدخال عنوان URL لخدمة MCP"
148
148
  }
149
149
  },
150
150
  "meta": {
151
151
  "author": {
152
- "desc": "مؤلف البرنامج المساعد",
152
+ "desc": "مؤلف الإضافة",
153
153
  "label": "المؤلف"
154
154
  },
155
155
  "avatar": {
156
- "desc": "رمز البرنامج المساعد، يمكن استخدام الرموز التعبيرية أو روابط URL",
157
- "label": "الرمز"
156
+ "desc": "أيقونة الإضافة، يمكن استخدام إيموجي أو رابط URL",
157
+ "label": "الأيقونة"
158
158
  },
159
159
  "description": {
160
- "desc": "وصف البرنامج المساعد",
160
+ "desc": "وصف الإضافة",
161
161
  "label": "الوصف",
162
- "placeholder": "البحث في محركات البحث للحصول على المعلومات"
162
+ "placeholder": "ابحث في محرك البحث للحصول على معلومات"
163
163
  },
164
164
  "formFieldRequired": "هذا الحقل مطلوب",
165
165
  "homepage": {
166
- "desc": "صفحة البداية للبرنامج المساعد",
166
+ "desc": "الصفحة الرئيسية للإضافة",
167
167
  "label": "الصفحة الرئيسية"
168
168
  },
169
169
  "identifier": {
170
- "desc": "العلامة المميزة للبرنامج المساعد، سيتم التعرف عليها تلقائيًا من خلال الملف التعريفي",
171
- "errorDuplicate": "تكرار العلامة المميزة مع برنامج مساعد موجود، يرجى تعديل العلامة المميزة",
170
+ "desc": "المعرف الفريد للإضافة، سيتم التعرف عليه تلقائيًا من ملف manifest",
171
+ "errorDuplicate": "المعرف مكرر مع إضافة موجودة، يرجى تغييره",
172
172
  "label": "المعرف",
173
- "pattenErrorMessage": "يمكن إدخال الأحرف الإنجليزية والأرقام والرمزين - و_ فقط"
173
+ "pattenErrorMessage": "يمكن إدخال أحرف إنجليزية، أرقام، - و _ فقط"
174
174
  },
175
175
  "lobe": "إضافة {{appName}}",
176
176
  "manifest": {
177
- "desc": "{{appName}} سيتم تثبيت الإضافة من خلال هذا الرابط",
178
- "label": "ملف وصف البرنامج المساعد (Manifest) URL",
179
- "preview": "معاينة الملف التعريفي",
177
+ "desc": "سيتم تثبيت {{appName}} عبر هذا الرابط",
178
+ "label": "رابط ملف وصف الإضافة (Manifest)",
179
+ "preview": "معاينة Manifest",
180
180
  "refresh": "تحديث"
181
181
  },
182
182
  "openai": "إضافة OpenAI",
183
183
  "title": {
184
- "desc": "عنوان البرنامج المساعد",
184
+ "desc": "عنوان الإضافة",
185
185
  "label": "العنوان",
186
186
  "placeholder": "محرك البحث"
187
187
  }
188
188
  },
189
- "metaConfig": "تكوين معلومات البرنامج المساعد",
190
- "modalDesc": "بعد إضافة البرنامج المساعد المخصص، يمكن استخدامه للتحقق من تطوير البرنامج المساعد، كما يمكن استخدامه مباشرة في الدردشة. للحصول على معلومات حول تطوير البرنامج المساعد، يرجى الرجوع إلى <1>وثائق التطوير↗</>",
189
+ "metaConfig": "تكوين معلومات الإضافة الأساسية",
190
+ "modalDesc": "بعد إضافة إضافة مخصصة، يمكن استخدامها للتحقق من تطوير الإضافة أو استخدامها مباشرة في المحادثة. يرجى الرجوع إلى <1>وثائق التطوير↗</> لتطوير الإضافات.",
191
191
  "openai": {
192
192
  "importUrl": "استيراد من رابط URL",
193
- "schema": "مخطط"
193
+ "schema": "المخطط"
194
194
  },
195
195
  "preview": {
196
196
  "api": {
197
- "noParams": "لا توجد معلمات لهذه الأداة",
198
- "noResults": "لم يتم العثور على واجهات برمجة التطبيقات التي تتوافق مع شروط البحث",
197
+ "noParams": "هذه الأداة لا تحتوي على معلمات",
198
+ "noResults": "لم يتم العثور على API تطابق شروط البحث",
199
199
  "params": "المعلمات:",
200
- "searchPlaceholder": "ابحث في الأدوات..."
200
+ "searchPlaceholder": "ابحث عن أداة..."
201
201
  },
202
- "card": "معاينة عرض البرنامج المساعد",
203
- "desc": "معاينة وصف البرنامج المساعد",
202
+ "card": "معاينة عرض الإضافة",
203
+ "desc": "معاينة وصف الإضافة",
204
204
  "empty": {
205
- "desc": "بعد إكمال الإعداد، ستتمكن من معاينة قدرات الأدوات المدعومة من المكون الإضافي هنا",
206
- "title": "ابدأ المعاينة بعد تكوين المكون الإضافي"
205
+ "desc": "بعد إكمال التكوين، يمكنك معاينة قدرات الأدوات المدعومة هنا",
206
+ "title": "ابدأ المعاينة بعد تكوين الإضافة"
207
207
  },
208
- "title": "معاينة اسم البرنامج المساعد"
208
+ "title": "معاينة اسم الإضافة"
209
209
  },
210
- "save": "تثبيت البرنامج المساعد",
211
- "saveSuccess": "تم حفظ إعدادات البرنامج المساعد بنجاح",
210
+ "save": "تثبيت الإضافة",
211
+ "saveSuccess": "تم حفظ إعدادات الإضافة بنجاح",
212
212
  "tabs": {
213
213
  "manifest": "قائمة وصف الوظائف (Manifest)",
214
- "meta": "معلومات البرنامج المساعد"
214
+ "meta": "معلومات الإضافة الأساسية"
215
215
  },
216
216
  "title": {
217
- "create": "إضافة برنامج مساعد مخصص",
218
- "edit": "تحرير برنامج مساعد مخصص"
217
+ "create": "إضافة إضافة مخصصة",
218
+ "edit": "تحرير إضافة مخصصة"
219
219
  },
220
220
  "type": {
221
- "lobe": "برنامج مساعد LobeChat",
222
- "openai": "برنامج مساعد OpenAI"
221
+ "lobe": "إضافة {{appName}}",
222
+ "openai": "إضافة OpenAI"
223
223
  },
224
224
  "update": "تحديث",
225
- "updateSuccess": "تم تحديث إعدادات البرنامج المساعد بنجاح"
225
+ "updateSuccess": "تم تحديث إعدادات الإضافة بنجاح"
226
226
  },
227
227
  "error": {
228
- "fetchError": "فشل طلب الرابط المعطى للملف، يرجى التأكد من صحة الرابط والسماح بالوصول عبر النطاقات المختلفة",
228
+ "fetchError": "فشل طلب رابط manifest، يرجى التأكد من صلاحية الرابط وفحص ما إذا كان يسمح بالوصول عبر النطاق",
229
229
  "installError": "فشل تثبيت الإضافة {{name}}",
230
- "manifestInvalid": "الملف غير مطابق للمواصفات، نتيجة التحقق: \n\n {{error}}",
230
+ "manifestInvalid": "الملف manifest غير مطابق للمواصفات، نتيجة التحقق: \n\n {{error}}",
231
231
  "noManifest": "ملف الوصف غير موجود",
232
232
  "openAPIInvalid": "فشل تحليل OpenAPI، الخطأ: \n\n {{error}}",
233
233
  "reinstallError": "فشل تحديث الإضافة {{name}}",
234
- "testConnectionFailed": "فشل في الحصول على ملف التعريف: {{error}}",
235
- "urlError": "الرابط لا يعيد محتوى بتنسيق JSON، يرجى التأكد من صحة الرابط"
234
+ "testConnectionFailed": "فشل الحصول على Manifest: {{error}}",
235
+ "urlError": "الرابط لم يرجع محتوى بصيغة JSON، يرجى التأكد من صحة الرابط"
236
236
  },
237
237
  "inspector": {
238
238
  "args": "عرض قائمة المعلمات",
239
- "pluginRender": "عرض واجهة المكون الإضافي"
239
+ "pluginRender": "عرض واجهة الإضافة"
240
240
  },
241
241
  "list": {
242
242
  "item": {
243
- "deprecated.title": "مهجور",
244
- "local.config": "التكوين",
243
+ "deprecated.title": "تم الحذف",
244
+ "local.config": "الإعدادات",
245
245
  "local.title": "مخصص"
246
246
  }
247
247
  },
248
248
  "loading": {
249
- "content": "جاري استدعاء الإضافة...",
250
- "plugin": "جاري تشغيل الإضافة..."
249
+ "content": "جارٍ استدعاء الإضافة...",
250
+ "plugin": "تشغيل الإضافة..."
251
251
  },
252
252
  "localSystem": {
253
253
  "apiName": {
@@ -255,7 +255,7 @@
255
255
  "moveLocalFiles": "نقل الملفات",
256
256
  "readLocalFile": "قراءة محتوى الملف",
257
257
  "renameLocalFile": "إعادة تسمية",
258
- "searchLocalFiles": "البحث عن الملفات",
258
+ "searchLocalFiles": "بحث في الملفات",
259
259
  "writeLocalFile": "كتابة في الملف"
260
260
  },
261
261
  "title": "الملفات المحلية"
@@ -263,23 +263,23 @@
263
263
  "mcpInstall": {
264
264
  "CHECKING_INSTALLATION": "جارٍ فحص بيئة التثبيت...",
265
265
  "COMPLETED": "اكتمل التثبيت",
266
- "CONFIGURATION_REQUIRED": "يرجى إكمال التكوينات المطلوبة للمتابعة في التثبيت",
266
+ "CONFIGURATION_REQUIRED": "يرجى إكمال التكوين المطلوب للمتابعة بالتثبيت",
267
267
  "ERROR": "خطأ في التثبيت",
268
- "FETCHING_MANIFEST": "جارٍ جلب ملف وصف الإضافة...",
268
+ "FETCHING_MANIFEST": "جارٍ الحصول على ملف وصف الإضافة...",
269
269
  "GETTING_SERVER_MANIFEST": "جارٍ تهيئة خادم MCP...",
270
270
  "INSTALLING_PLUGIN": "جارٍ تثبيت الإضافة...",
271
- "configurationDescription": "تتطلب هذه الإضافة من MCP إعداد معلمات لتعمل بشكل صحيح، يرجى ملء المعلومات الضرورية.",
271
+ "configurationDescription": "تتطلب هذه الإضافة MCP إعداد معلمات لتعمل بشكل صحيح، يرجى ملء المعلومات اللازمة",
272
272
  "configurationRequired": "تكوين معلمات الإضافة",
273
273
  "continueInstall": "متابعة التثبيت",
274
- "dependenciesDescription": "تتطلب هذه الإضافة تثبيت الاعتمادات النظامية التالية لتعمل بشكل صحيح، يرجى تثبيت الاعتمادات المفقودة حسب التعليمات ثم النقر على إعادة الفحص للمتابعة.",
275
- "dependenciesRequired": "يرجى تثبيت الاعتمادات النظامية للإضافة",
274
+ "dependenciesDescription": "تتطلب هذه الإضافة تثبيت تبعيات نظامية لتعمل بشكل صحيح، يرجى تثبيت التبعيات المفقودة حسب التعليمات ثم اضغط إعادة الفحص للمتابعة بالتثبيت.",
275
+ "dependenciesRequired": "يرجى تثبيت تبعيات النظام للإضافة",
276
276
  "dependencyStatus": {
277
- "installed": "مثبّت",
278
- "notInstalled": "غير مثبّت",
277
+ "installed": "مثبت",
278
+ "notInstalled": "غير مثبت",
279
279
  "requiredVersion": "الإصدار المطلوب: {{version}}"
280
280
  },
281
281
  "errorDetails": {
282
- "args": "المعطيات",
282
+ "args": "المعلمات",
283
283
  "command": "الأمر",
284
284
  "connectionParams": "معلمات الاتصال",
285
285
  "env": "متغيرات البيئة",
@@ -295,34 +295,94 @@
295
295
  "INITIALIZATION_TIMEOUT": "انتهت مهلة التهيئة",
296
296
  "PROCESS_SPAWN_ERROR": "فشل بدء العملية",
297
297
  "UNKNOWN_ERROR": "خطأ غير معروف",
298
- "VALIDATION_ERROR": "فشل التحقق من المعطيات"
298
+ "VALIDATION_ERROR": "فشل التحقق من المعلمات"
299
299
  },
300
- "installError": "فشل تثبيت إضافة MCP، سبب الفشل: {{detail}}",
300
+ "installError": "فشل تثبيت إضافة MCP، السبب: {{detail}}",
301
301
  "installMethods": {
302
- "manual": "التثبيت اليدوي:",
302
+ "manual": "تثبيت يدوي:",
303
303
  "recommended": "طريقة التثبيت الموصى بها:"
304
304
  },
305
305
  "recheckDependencies": "إعادة فحص",
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
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
388
  "crawler": "وضع الزحف",
@@ -330,19 +390,19 @@
330
390
  }
331
391
  },
332
392
  "searchxng": {
333
- "baseURL": "الرجاء الإدخال",
334
- "description": "الرجاء إدخال عنوان URL لـ SearchXNG لبدء البحث عبر الإنترنت",
335
- "keyPlaceholder": "الرجاء إدخال المفتاح",
336
- "title": "تكوين محرك بحث SearchXNG",
337
- "unconfiguredDesc": "يرجى الاتصال بالمسؤول لإكمال تكوين محرك بحث SearchXNG لبدء البحث عبر الإنترنت",
338
- "unconfiguredTitle": "لم يتم تكوين محرك بحث SearchXNG بعد"
393
+ "baseURL": "يرجى الإدخال",
394
+ "description": "يرجى إدخال عنوان SearchXNG للبدء في البحث عبر الإنترنت",
395
+ "keyPlaceholder": "يرجى إدخال المفتاح",
396
+ "title": "تكوين محرك البحث SearchXNG",
397
+ "unconfiguredDesc": "يرجى الاتصال بالمسؤول لإكمال تكوين محرك البحث SearchXNG للبدء في البحث عبر الإنترنت",
398
+ "unconfiguredTitle": "لم يتم تكوين محرك البحث SearchXNG بعد"
339
399
  },
340
400
  "title": "البحث عبر الإنترنت"
341
401
  },
342
402
  "setting": "إعدادات الإضافة",
343
403
  "settings": {
344
404
  "capabilities": {
345
- "prompts": "نصوص التوجيه",
405
+ "prompts": "عبارات التوجيه",
346
406
  "resources": "الموارد",
347
407
  "title": "قدرات الإضافة",
348
408
  "tools": "الأدوات"
@@ -351,18 +411,18 @@
351
411
  "title": "تكوين الإضافة"
352
412
  },
353
413
  "connection": {
354
- "args": "معطيات التشغيل",
414
+ "args": "معلمات التشغيل",
355
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
424
  "title": "فهرس السوق",
365
- "tooltip": "غير مدعوم حاليا للتحرير عبر الإنترنت، يرجى ضبطه عند نشر المتغيرات البيئية"
425
+ "tooltip": "لا يدعم التحرير عبر الإنترنت حاليًا، يرجى التكوين عبر متغيرات البيئة عند النشر"
366
426
  },
367
427
  "messages": {
368
428
  "connectionUpdateFailed": "فشل تحديث معلومات الاتصال",
@@ -370,41 +430,41 @@
370
430
  "envUpdateFailed": "فشل حفظ متغيرات البيئة",
371
431
  "envUpdateSuccess": "تم حفظ متغيرات البيئة بنجاح"
372
432
  },
373
- "modalDesc": "بعد ضبط عنوان سوق الإضافات، يمكن استخدام سوق الإضافات المخصص",
433
+ "modalDesc": "بعد تكوين عنوان سوق الإضافات، يمكنك استخدام سوق إضافات مخصص",
374
434
  "rules": {
375
435
  "argsRequired": "يرجى إدخال معلمات التشغيل",
376
436
  "commandRequired": "يرجى إدخال أمر التشغيل",
377
437
  "urlRequired": "يرجى إدخال عنوان الخدمة"
378
438
  },
379
439
  "saveSettings": "حفظ الإعدادات",
380
- "title": "ضبط سوق الإضافات"
440
+ "title": "إعدادات سوق الإضافات"
381
441
  },
382
- "showInPortal": "يرجى الاطلاع على التفاصيل في مساحة العمل",
442
+ "showInPortal": "يرجى عرض التفاصيل في مساحة العمل",
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
451
  "uninstall": "إلغاء التثبيت"
392
452
  },
393
- "communityPlugin": "مجتمع ثالث",
453
+ "communityPlugin": "مجتمع الطرف الثالث",
394
454
  "customPlugin": "مخصص",
395
- "empty": "لا توجد إضافات مثبتة حاليا",
455
+ "empty": "لا توجد إضافات مثبتة",
396
456
  "emptySelectHint": "اختر إضافة لمعاينة التفاصيل",
397
457
  "installAllPlugins": "تثبيت الكل",
398
- "networkError": "فشل الحصول على متجر الإضافات، يرجى التحقق من الاتصال بالشبكة وإعادة المحاولة",
399
- "placeholder": "ابحث عن اسم الإضافة أو الكلمات الرئيسية...",
400
- "releasedAt": "صدر في {{createdAt}}",
458
+ "networkError": "فشل الحصول على متجر الإضافات، يرجى التحقق من الاتصال بالشبكة والمحاولة مجددًا",
459
+ "placeholder": "ابحث عن اسم الإضافة أو الوصف أو الكلمات المفتاحية...",
460
+ "releasedAt": "نُشر في {{createdAt}}",
401
461
  "tabs": {
402
- "installed": "مثبتة",
403
- "mcp": "إضافة MCP",
404
- "old": "إضافة LobeChat"
462
+ "installed": "مثبت",
463
+ "mcp": "إضافات MCP",
464
+ "old": "إضافات LobeChat"
405
465
  },
406
466
  "title": "متجر الإضافات"
407
467
  },
408
468
  "unknownError": "خطأ غير معروف",
409
- "unknownPlugin": "البرنامج المساعد غير معروف"
469
+ "unknownPlugin": "إضافة غير معروفة"
410
470
  }