@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,42 +1,42 @@
1
1
  {
2
2
  "confirm": "Conferma",
3
3
  "debug": {
4
- "arguments": "Argomenti di chiamata",
5
- "function_call": "Chiamata di funzione",
6
- "off": "Disattivato",
7
- "on": "Visualizza informazioni sulla chiamata del plugin",
8
- "payload": "carico del plugin",
9
- "pluginState": "Stato del plugin",
10
- "response": "Risposta",
11
- "title": "Dettagli del plugin",
12
- "tool_call": "richiesta di chiamata dello strumento"
4
+ "arguments": "Parametri di chiamata",
5
+ "function_call": "Chiamata funzione",
6
+ "off": "Disattiva debug",
7
+ "on": "Visualizza informazioni chiamata plugin",
8
+ "payload": "Payload plugin",
9
+ "pluginState": "Stato plugin",
10
+ "response": "Risultato restituito",
11
+ "title": "Dettagli plugin",
12
+ "tool_call": "Richiesta chiamata strumento"
13
13
  },
14
14
  "detailModal": {
15
15
  "customPlugin": {
16
- "description": "Per favore, vai alla pagina di modifica per vedere i dettagli",
16
+ "description": "Per favore visita la pagina di modifica per vedere i dettagli",
17
17
  "editBtn": "Modifica ora",
18
18
  "title": "Questo è un plugin personalizzato"
19
19
  },
20
20
  "emptyState": {
21
- "description": "Si prega di installare questo plugin per visualizzare le funzionalità e le opzioni di configurazione del plugin",
22
- "title": "Visualizza i dettagli del plugin dopo l'installazione"
21
+ "description": "Installa prima questo plugin per vedere le capacità e le opzioni di configurazione",
22
+ "title": "Visualizza dettagli plugin dopo l'installazione"
23
23
  },
24
24
  "info": {
25
25
  "description": "Descrizione API",
26
26
  "name": "Nome API"
27
27
  },
28
28
  "tabs": {
29
- "info": "Abilità del plugin",
29
+ "info": "Capacità plugin",
30
30
  "manifest": "File di installazione",
31
31
  "settings": "Impostazioni"
32
32
  },
33
- "title": "Dettagli del plugin"
33
+ "title": "Dettagli plugin"
34
34
  },
35
35
  "dev": {
36
- "confirmDeleteDevPlugin": "Stai per eliminare questo plugin locale. Una volta eliminato, non sarà possibile recuperarlo. Vuoi eliminare questo plugin?",
36
+ "confirmDeleteDevPlugin": "Stai per eliminare questo plugin locale, l'operazione è irreversibile. Vuoi procedere?",
37
37
  "customParams": {
38
38
  "useProxy": {
39
- "label": "Installa tramite proxy (se si verificano errori di accesso cross-origin, prova ad abilitare questa opzione e reinstallare)"
39
+ "label": "Installa tramite proxy (se si verificano errori di accesso cross-origin, prova ad attivare questa opzione e reinstallare)"
40
40
  }
41
41
  },
42
42
  "deleteSuccess": "Plugin eliminato con successo",
@@ -48,7 +48,7 @@
48
48
  "mode": {
49
49
  "mcp": "Plugin MCP",
50
50
  "mcpExp": "Sperimentale",
51
- "url": "Collegamento online"
51
+ "url": "Link online"
52
52
  },
53
53
  "name": {
54
54
  "desc": "Titolo del plugin",
@@ -61,9 +61,9 @@
61
61
  "title": "Impostazioni avanzate"
62
62
  },
63
63
  "args": {
64
- "desc": "Elenco di parametri da passare al comando di esecuzione, di solito qui si inserisce il nome del server MCP o il percorso dello script di avvio",
65
- "label": "Parametri del comando",
66
- "placeholder": "Ad esempio: --port 8080 --debug",
64
+ "desc": "Lista dei parametri passati al comando di esecuzione, solitamente qui si inserisce il nome del server MCP o il percorso dello script di avvio",
65
+ "label": "Parametri comando",
66
+ "placeholder": "esempio: mcp-hello-world",
67
67
  "required": "Inserisci i parametri di avvio"
68
68
  },
69
69
  "auth": {
@@ -71,7 +71,7 @@
71
71
  "desc": "Seleziona il metodo di autenticazione del server MCP",
72
72
  "label": "Tipo di autenticazione",
73
73
  "none": "Nessuna autenticazione richiesta",
74
- "placeholder": "Seleziona il tipo di autenticazione",
74
+ "placeholder": "Seleziona tipo di autenticazione",
75
75
  "token": {
76
76
  "desc": "Inserisci la tua API Key o Bearer Token",
77
77
  "label": "API Key",
@@ -80,70 +80,70 @@
80
80
  }
81
81
  },
82
82
  "avatar": {
83
- "label": "Icona del plugin"
83
+ "label": "Icona plugin"
84
84
  },
85
85
  "command": {
86
- "desc": "File eseguibile o script per avviare il plugin MCP STDIO",
86
+ "desc": "File eseguibile o script per avviare MCP STDIO Server",
87
87
  "label": "Comando",
88
- "placeholder": "Ad esempio: python main.py o /path/to/executable",
88
+ "placeholder": "esempio: npx / uv / docker ecc.",
89
89
  "required": "Inserisci il comando di avvio"
90
90
  },
91
91
  "desc": {
92
- "desc": "Descrizione del plugin",
93
- "label": "Descrizione del plugin",
94
- "placeholder": "Aggiungi informazioni sull'uso e sugli scenari del plugin"
92
+ "desc": "Aggiungi una descrizione del plugin",
93
+ "label": "Descrizione plugin",
94
+ "placeholder": "Aggiungi informazioni sull'uso e gli scenari del plugin"
95
95
  },
96
96
  "endpoint": {
97
- "desc": "Inserisci l'indirizzo del tuo server HTTP Streamable MCP",
97
+ "desc": "Inserisci l'indirizzo del tuo MCP Streamable HTTP Server",
98
98
  "label": "URL Endpoint MCP"
99
99
  },
100
100
  "env": {
101
101
  "add": "Aggiungi una riga",
102
- "desc": "Inserisci le variabili d'ambiente necessarie per il tuo server MCP",
102
+ "desc": "Inserisci le variabili d'ambiente necessarie per il server MCP",
103
103
  "duplicateKeyError": "La chiave del campo deve essere unica",
104
- "formValidationFailed": "La convalida del modulo è fallita, controlla il formato dei parametri",
104
+ "formValidationFailed": "Validazione del modulo fallita, controlla il formato dei parametri",
105
105
  "keyRequired": "La chiave del campo non può essere vuota",
106
- "label": "Variabili d'ambiente del server MCP",
107
- "stringifyError": "Impossibile serializzare i parametri, controlla il formato dei parametri"
106
+ "label": "Variabili d'ambiente server MCP",
107
+ "stringifyError": "Impossibile serializzare i parametri, controlla il formato"
108
108
  },
109
109
  "headers": {
110
110
  "add": "Aggiungi una riga",
111
- "desc": "Inserisci le intestazioni della richiesta",
112
- "label": "Intestazioni HTTP"
111
+ "desc": "Inserisci gli header della richiesta",
112
+ "label": "HTTP Headers"
113
113
  },
114
114
  "identifier": {
115
- "desc": "Assegna un nome al tuo plugin MCP, deve utilizzare caratteri inglesi",
116
- "invalid": "Puoi inserire solo caratteri inglesi, numeri, e i simboli - e _",
117
- "label": "Nome del plugin MCP",
118
- "placeholder": "Ad esempio: my-mcp-plugin",
115
+ "desc": "Assegna un nome al tuo plugin MCP, deve essere in caratteri inglesi",
116
+ "invalid": "L'identificatore può contenere solo lettere, numeri, trattini e underscore",
117
+ "label": "Nome plugin MCP",
118
+ "placeholder": "esempio: my-mcp-plugin",
119
119
  "required": "Inserisci l'identificatore del servizio MCP"
120
120
  },
121
- "previewManifest": "Anteprima del file di descrizione del plugin",
122
- "quickImport": "Importazione rapida della configurazione JSON",
121
+ "previewManifest": "Anteprima file descrizione plugin",
122
+ "quickImport": "Importazione rapida configurazione JSON",
123
123
  "quickImportError": {
124
124
  "empty": "Il contenuto non può essere vuoto",
125
125
  "invalidJson": "Formato JSON non valido",
126
126
  "invalidStructure": "Struttura JSON non valida"
127
127
  },
128
- "stdioNotSupported": "L'ambiente attuale non supporta i plugin MCP di tipo stdio",
129
- "testConnection": "Test di connessione",
130
- "testConnectionTip": "Il plugin MCP può essere utilizzato correttamente solo dopo un test di connessione riuscito",
128
+ "stdioNotSupported": "L'ambiente attuale non supporta plugin MCP di tipo stdio",
129
+ "testConnection": "Test connessione",
130
+ "testConnectionTip": "Il plugin MCP può essere usato normalmente solo dopo un test di connessione riuscito",
131
131
  "type": {
132
- "desc": "Scegli il metodo di comunicazione del plugin MCP, la versione web supporta solo Streamable HTTP",
133
- "httpFeature1": "Compatibile con la versione web e desktop",
134
- "httpFeature2": "Collegamento a un server MCP remoto, senza installazione o configurazione aggiuntive",
132
+ "desc": "Seleziona il tipo di comunicazione del plugin MCP, la versione web supporta solo Streamable HTTP",
133
+ "httpFeature1": "Compatibile con versione web e desktop",
134
+ "httpFeature2": "Connessione a server MCP remoto senza installazioni aggiuntive",
135
135
  "httpShortDesc": "Protocollo di comunicazione basato su HTTP streaming",
136
- "label": "Tipo di plugin MCP",
137
- "stdioFeature1": "Minore latenza nella comunicazione, adatto per esecuzione locale",
138
- "stdioFeature2": "È necessario installare e far funzionare il server MCP localmente",
136
+ "label": "Tipo plugin MCP",
137
+ "stdioFeature1": "Minore latenza di comunicazione, adatto per esecuzione locale",
138
+ "stdioFeature2": "Richiede installazione locale del server MCP",
139
139
  "stdioNotAvailable": "La modalità STDIO è disponibile solo nella versione desktop",
140
- "stdioShortDesc": "Protocollo di comunicazione basato su input e output standard",
141
- "title": "Tipo di plugin MCP"
140
+ "stdioShortDesc": "Protocollo di comunicazione basato su input/output standard",
141
+ "title": "Tipo plugin MCP"
142
142
  },
143
143
  "url": {
144
- "desc": "Inserisci il tuo indirizzo HTTP Streamable del server MCP, il supporto per la modalità SSE non è disponibile",
144
+ "desc": "Inserisci l'indirizzo Streamable HTTP del tuo server MCP, la modalità SSE non è supportata",
145
145
  "invalid": "Inserisci un URL valido",
146
- "label": "URL Endpoint HTTP",
146
+ "label": "URL Endpoint Streamable HTTP",
147
147
  "required": "Inserisci l'URL del servizio MCP"
148
148
  }
149
149
  },
@@ -153,13 +153,13 @@
153
153
  "label": "Autore"
154
154
  },
155
155
  "avatar": {
156
- "desc": "Icona del plugin, puoi usare Emoji o un URL",
156
+ "desc": "Icona del plugin, può essere un'emoji o un URL",
157
157
  "label": "Icona"
158
158
  },
159
159
  "description": {
160
160
  "desc": "Descrizione del plugin",
161
161
  "label": "Descrizione",
162
- "placeholder": "Ottieni informazioni dai motori di ricerca"
162
+ "placeholder": "Cerca informazioni tramite motore di ricerca"
163
163
  },
164
164
  "formFieldRequired": "Questo campo è obbligatorio",
165
165
  "homepage": {
@@ -167,15 +167,15 @@
167
167
  "label": "Homepage"
168
168
  },
169
169
  "identifier": {
170
- "desc": "Identificatore univoco del plugin, verrà riconosciuto automaticamente dal manifesto",
171
- "errorDuplicate": "Identificatore duplicato rispetto a un plugin esistente. Modifica l'identificatore",
170
+ "desc": "Identificatore univoco del plugin, rilevato automaticamente dal manifest",
171
+ "errorDuplicate": "Identificatore duplicato con un plugin esistente, modifica l'identificatore",
172
172
  "label": "Identificatore",
173
- "pattenErrorMessage": "Puoi inserire solo caratteri alfanumerici, - e _"
173
+ "pattenErrorMessage": "Sono ammessi solo caratteri inglesi, numeri, - e _"
174
174
  },
175
- "lobe": "Plugin {{appName}}",
175
+ "lobe": "{{appName}} Plugin",
176
176
  "manifest": {
177
177
  "desc": "{{appName}} installerà il plugin tramite questo link",
178
- "label": "URL del file di descrizione del plugin (Manifest)",
178
+ "label": "URL file descrizione plugin (Manifest)",
179
179
  "preview": "Anteprima Manifest",
180
180
  "refresh": "Aggiorna"
181
181
  },
@@ -186,8 +186,8 @@
186
186
  "placeholder": "Motore di ricerca"
187
187
  }
188
188
  },
189
- "metaConfig": "Configurazione metadati del plugin",
190
- "modalDesc": "Dopo aver aggiunto un plugin personalizzato, potrà essere utilizzato per la convalida dello sviluppo del plugin o direttamente nelle conversazioni. Per lo sviluppo del plugin, consulta il <1>documento di sviluppo↗</>",
189
+ "metaConfig": "Configurazione metadati plugin",
190
+ "modalDesc": "Dopo aver aggiunto un plugin personalizzato, può essere usato per sviluppo e verifica, o direttamente in conversazione. Per lo sviluppo consulta la <1>documentazione↗</1>",
191
191
  "openai": {
192
192
  "importUrl": "Importa da URL",
193
193
  "schema": "Schema"
@@ -195,63 +195,63 @@
195
195
  "preview": {
196
196
  "api": {
197
197
  "noParams": "Questo strumento non ha parametri",
198
- "noResults": "Nessuna API trovata che soddisfi i criteri di ricerca",
198
+ "noResults": "Nessuna API trovata corrispondente ai criteri di ricerca",
199
199
  "params": "Parametri:",
200
200
  "searchPlaceholder": "Cerca strumento..."
201
201
  },
202
- "card": "Anteprima dell'aspetto del plugin",
203
- "desc": "Anteprima della descrizione del plugin",
202
+ "card": "Anteprima visualizzazione plugin",
203
+ "desc": "Anteprima descrizione plugin",
204
204
  "empty": {
205
- "desc": "Dopo aver completato la configurazione, sarà possibile visualizzare qui le capacità degli strumenti supportati dal plugin",
206
- "title": "Inizia a visualizzare dopo aver configurato il plugin"
205
+ "desc": "Dopo la configurazione, qui potrai vedere le capacità degli strumenti supportati dal plugin",
206
+ "title": "Inizia l'anteprima dopo la configurazione"
207
207
  },
208
- "title": "Anteprima del nome del plugin"
208
+ "title": "Anteprima nome plugin"
209
209
  },
210
210
  "save": "Installa plugin",
211
- "saveSuccess": "Impostazioni del plugin salvate con successo",
211
+ "saveSuccess": "Impostazioni plugin salvate con successo",
212
212
  "tabs": {
213
- "manifest": "Elenco delle funzionalità (Manifest)",
214
- "meta": "Metadati del plugin"
213
+ "manifest": "Elenco funzionalità (Manifest)",
214
+ "meta": "Metadati plugin"
215
215
  },
216
216
  "title": {
217
217
  "create": "Aggiungi plugin personalizzato",
218
218
  "edit": "Modifica plugin personalizzato"
219
219
  },
220
220
  "type": {
221
- "lobe": "Plugin LobeChat",
221
+ "lobe": "{{appName}} Plugin",
222
222
  "openai": "Plugin OpenAI"
223
223
  },
224
224
  "update": "Aggiorna",
225
- "updateSuccess": "Impostazioni del plugin aggiornate con successo"
225
+ "updateSuccess": "Impostazioni plugin aggiornate con successo"
226
226
  },
227
227
  "error": {
228
- "fetchError": "Errore nel recupero del collegamento al manifesto. Assicurati che il collegamento sia valido e che sia consentito l'accesso cross-origin.",
229
- "installError": "Installazione del plugin {{name}} fallita",
230
- "manifestInvalid": "Il manifesto non è conforme allo standard. Risultato della convalida: \n\n {{error}}",
231
- "noManifest": "Il file di descrizione non esiste",
232
- "openAPIInvalid": "Analisi dell'OpenAPI fallita. Errore: \n\n {{error}}",
233
- "reinstallError": "Ricaricamento del plugin {{name}} fallito",
234
- "testConnectionFailed": "Impossibile ottenere il Manifest: {{error}}",
235
- "urlError": "Il collegamento non restituisce contenuti nel formato JSON. Assicurati che il collegamento sia valido"
228
+ "fetchError": "Richiesta al link manifest fallita, verifica la validità del link e che consenta accessi cross-origin",
229
+ "installError": "Installazione plugin {{name}} fallita",
230
+ "manifestInvalid": "Manifest non conforme, risultato della validazione: \n\n {{error}}",
231
+ "noManifest": "File descrizione non trovato",
232
+ "openAPIInvalid": "Parsing OpenAPI fallito, errore: \n\n {{error}}",
233
+ "reinstallError": "Aggiornamento plugin {{name}} fallito",
234
+ "testConnectionFailed": "Recupero Manifest fallito: {{error}}",
235
+ "urlError": "Il link non ha restituito contenuto in formato JSON, assicurati che sia un link valido"
236
236
  },
237
237
  "inspector": {
238
- "args": "Visualizza l'elenco dei parametri",
239
- "pluginRender": "Visualizza l'interfaccia del plugin"
238
+ "args": "Visualizza lista parametri",
239
+ "pluginRender": "Visualizza interfaccia plugin"
240
240
  },
241
241
  "list": {
242
242
  "item": {
243
- "deprecated.title": "Deprecato",
243
+ "deprecated.title": "Eliminato",
244
244
  "local.config": "Configurazione",
245
245
  "local.title": "Personalizzato"
246
246
  }
247
247
  },
248
248
  "loading": {
249
- "content": "Caricamento del plugin in corso...",
250
- "plugin": "Esecuzione del plugin in corso..."
249
+ "content": "Chiamata plugin in corso...",
250
+ "plugin": "Plugin in esecuzione..."
251
251
  },
252
252
  "localSystem": {
253
253
  "apiName": {
254
- "listLocalFiles": "Visualizza elenco file",
254
+ "listLocalFiles": "Visualizza lista file",
255
255
  "moveLocalFiles": "Sposta file",
256
256
  "readLocalFile": "Leggi contenuto file",
257
257
  "renameLocalFile": "Rinomina",
@@ -261,18 +261,18 @@
261
261
  "title": "File locali"
262
262
  },
263
263
  "mcpInstall": {
264
- "CHECKING_INSTALLATION": "Verifica dell'ambiente di installazione...",
264
+ "CHECKING_INSTALLATION": "Verifica ambiente di installazione...",
265
265
  "COMPLETED": "Installazione completata",
266
- "CONFIGURATION_REQUIRED": "Si prega di completare la configurazione prima di continuare l'installazione",
266
+ "CONFIGURATION_REQUIRED": "Completa la configurazione richiesta per continuare l'installazione",
267
267
  "ERROR": "Errore di installazione",
268
- "FETCHING_MANIFEST": "Recupero del file di descrizione del plugin...",
269
- "GETTING_SERVER_MANIFEST": "Inizializzazione del server MCP...",
270
- "INSTALLING_PLUGIN": "Installazione del plugin in corso...",
271
- "configurationDescription": "Questo plugin MCP richiede la configurazione dei parametri per funzionare correttamente, si prega di inserire le informazioni di configurazione necessarie",
272
- "configurationRequired": "Configurazione dei parametri del plugin",
268
+ "FETCHING_MANIFEST": "Recupero file descrizione plugin...",
269
+ "GETTING_SERVER_MANIFEST": "Inizializzazione server MCP...",
270
+ "INSTALLING_PLUGIN": "Installazione plugin in corso...",
271
+ "configurationDescription": "Questo plugin MCP richiede parametri di configurazione per funzionare correttamente, inserisci le informazioni necessarie",
272
+ "configurationRequired": "Configura parametri plugin",
273
273
  "continueInstall": "Continua installazione",
274
- "dependenciesDescription": "Questo plugin necessita dell'installazione delle seguenti dipendenze di sistema per funzionare correttamente. Si prega di installare le dipendenze mancanti seguendo le istruzioni, quindi cliccare su 'Riprova' per continuare l'installazione.",
275
- "dependenciesRequired": "Si prega di installare le dipendenze di sistema del plugin",
274
+ "dependenciesDescription": "Questo plugin necessita delle seguenti dipendenze di sistema per funzionare correttamente. Installa le dipendenze mancanti seguendo le istruzioni, poi clicca per ricontrollare e continuare l'installazione.",
275
+ "dependenciesRequired": "Installa le dipendenze di sistema del plugin",
276
276
  "dependencyStatus": {
277
277
  "installed": "Installato",
278
278
  "notInstalled": "Non installato",
@@ -283,7 +283,7 @@
283
283
  "command": "Comando",
284
284
  "connectionParams": "Parametri di connessione",
285
285
  "env": "Variabili d'ambiente",
286
- "errorOutput": "Log degli errori",
286
+ "errorOutput": "Log errori",
287
287
  "exitCode": "Codice di uscita",
288
288
  "hideDetails": "Nascondi dettagli",
289
289
  "originalError": "Errore originale",
@@ -293,117 +293,177 @@
293
293
  "AUTHORIZATION_ERROR": "Errore di autorizzazione",
294
294
  "CONNECTION_FAILED": "Connessione fallita",
295
295
  "INITIALIZATION_TIMEOUT": "Timeout di inizializzazione",
296
- "PROCESS_SPAWN_ERROR": "Errore nell'avvio del processo",
296
+ "PROCESS_SPAWN_ERROR": "Errore avvio processo",
297
297
  "UNKNOWN_ERROR": "Errore sconosciuto",
298
- "VALIDATION_ERROR": "Validazione dei parametri fallita"
298
+ "VALIDATION_ERROR": "Validazione parametri fallita"
299
299
  },
300
- "installError": "Installazione del plugin MCP fallita, motivo: {{detail}}",
300
+ "installError": "Installazione plugin MCP fallita, motivo: {{detail}}",
301
301
  "installMethods": {
302
302
  "manual": "Installazione manuale:",
303
303
  "recommended": "Metodo di installazione consigliato:"
304
304
  },
305
- "recheckDependencies": "Riprova",
306
- "skipDependencies": "Salta verifica"
305
+ "recheckDependencies": "Ricontrolla",
306
+ "skipDependencies": "Salta controllo"
307
+ },
308
+ "pluginList": "Lista plugin",
309
+ "protocolInstall": {
310
+ "actions": {
311
+ "install": "Installa",
312
+ "installAnyway": "Installa comunque",
313
+ "installed": "Installato"
314
+ },
315
+ "config": {
316
+ "args": "Parametri",
317
+ "command": "Comando",
318
+ "env": "Variabili d'ambiente",
319
+ "headers": "Header richiesta",
320
+ "title": "Informazioni configurazione",
321
+ "type": {
322
+ "http": "Tipo: HTTP",
323
+ "label": "Tipo",
324
+ "stdio": "Tipo: Stdio"
325
+ },
326
+ "url": "Indirizzo servizio"
327
+ },
328
+ "custom": {
329
+ "badge": "Plugin personalizzato",
330
+ "security": {
331
+ "description": "Questo plugin non è stato verificato ufficialmente, l'installazione potrebbe comportare rischi di sicurezza! Assicurati di fidarti della fonte del plugin.",
332
+ "title": "⚠️ Avviso di rischio sicurezza"
333
+ },
334
+ "title": "Installa plugin personalizzato"
335
+ },
336
+ "marketplace": {
337
+ "title": "Installa plugin di terze parti",
338
+ "trustedBy": "Fornito da {{name}}",
339
+ "unverified": {
340
+ "title": "Plugin di terze parti non verificato",
341
+ "warning": "Questo plugin proviene da un marketplace di terze parti non verificato, conferma di fidarti della fonte prima di installare."
342
+ },
343
+ "verified": "Verificato"
344
+ },
345
+ "messages": {
346
+ "connectionTestFailed": "Test di connessione fallito",
347
+ "installError": "Installazione plugin fallita, riprova",
348
+ "installSuccess": "Plugin {{name}} installato con successo!",
349
+ "manifestError": "Recupero dettagli plugin fallito, controlla la connessione e riprova",
350
+ "manifestNotFound": "File descrizione plugin non trovato"
351
+ },
352
+ "meta": {
353
+ "author": "Autore",
354
+ "homepage": "Homepage",
355
+ "identifier": "Identificatore",
356
+ "source": "Fonte",
357
+ "version": "Versione"
358
+ },
359
+ "official": {
360
+ "badge": "Plugin ufficiale LobeHub",
361
+ "description": "Questo plugin è sviluppato e mantenuto ufficialmente da LobeHub, sottoposto a rigorosi controlli di sicurezza, può essere usato con fiducia.",
362
+ "loadingMessage": "Recupero dettagli plugin in corso...",
363
+ "loadingTitle": "Caricamento",
364
+ "title": "Installa plugin ufficiale"
365
+ },
366
+ "title": "Installa plugin MCP",
367
+ "warning": "⚠️ Assicurati di fidarti della fonte di questo plugin, plugin malevoli possono compromettere la sicurezza del sistema."
307
368
  },
308
- "pluginList": "Elenco dei plugin",
309
369
  "search": {
310
370
  "apiName": {
311
- "crawlMultiPages": "Leggi il contenuto di più pagine",
371
+ "crawlMultiPages": "Leggi contenuti di più pagine",
312
372
  "crawlSinglePage": "Leggi contenuto pagina",
313
373
  "search": "Cerca pagina"
314
374
  },
315
375
  "config": {
316
376
  "addKey": "Aggiungi chiave",
317
- "close": "Rimuovi",
318
- "confirm": "Configurazione completata, riprovare"
377
+ "close": "Elimina",
378
+ "confirm": "Configurazione completata e riprova"
319
379
  },
320
380
  "crawPages": {
321
- "crawling": "Riconoscimento del link in corso",
381
+ "crawling": "Riconoscimento link in corso",
322
382
  "detail": {
323
383
  "preview": "Anteprima",
324
384
  "raw": "Testo originale",
325
- "tooLong": "Il contenuto del testo è troppo lungo, il contesto della conversazione manterrà solo i primi {{characters}} caratteri, la parte in eccesso non verrà considerata nel contesto della conversazione"
385
+ "tooLong": "Il contenuto è troppo lungo, il contesto della conversazione manterrà solo i primi {{characters}} caratteri, la parte eccedente non sarà considerata."
326
386
  },
327
387
  "meta": {
328
- "crawler": "Modalità di scansione",
329
- "words": "Numero di caratteri"
388
+ "crawler": "Modalità crawling",
389
+ "words": "Numero caratteri"
330
390
  }
331
391
  },
332
392
  "searchxng": {
333
393
  "baseURL": "Inserisci",
334
394
  "description": "Inserisci l'URL di SearchXNG per iniziare la ricerca online",
335
- "keyPlaceholder": "Inserisci chiave",
336
- "title": "Configura il motore di ricerca SearchXNG",
337
- "unconfiguredDesc": "Contatta l'amministratore per completare la configurazione del motore di ricerca SearchXNG e iniziare la ricerca online",
338
- "unconfiguredTitle": "Motore di ricerca SearchXNG non configurato"
395
+ "keyPlaceholder": "Inserisci la chiave",
396
+ "title": "Configura motore di ricerca SearchXNG",
397
+ "unconfiguredDesc": "Contatta l'amministratore per completare la configurazione di SearchXNG e iniziare la ricerca online",
398
+ "unconfiguredTitle": "SearchXNG non configurato"
339
399
  },
340
400
  "title": "Ricerca online"
341
401
  },
342
- "setting": "Impostazioni del plugin",
402
+ "setting": "Impostazioni plugin",
343
403
  "settings": {
344
404
  "capabilities": {
345
405
  "prompts": "Prompt",
346
406
  "resources": "Risorse",
347
- "title": "Capacità del plugin",
407
+ "title": "Capacità plugin",
348
408
  "tools": "Strumenti"
349
409
  },
350
410
  "configuration": {
351
- "title": "Configurazione del plugin"
411
+ "title": "Configurazione plugin"
352
412
  },
353
413
  "connection": {
354
414
  "args": "Parametri di avvio",
355
415
  "command": "Comando di avvio",
356
416
  "title": "Informazioni di connessione",
357
417
  "type": "Tipo di connessione",
358
- "url": "Indirizzo del servizio"
418
+ "url": "Indirizzo servizio"
359
419
  },
360
420
  "edit": "Modifica",
361
421
  "envConfigDescription": "Queste configurazioni saranno passate come variabili d'ambiente al processo all'avvio del server MCP",
362
422
  "httpTypeNotice": "I plugin MCP di tipo HTTP non richiedono variabili d'ambiente da configurare",
363
423
  "indexUrl": {
364
- "title": "Indice di mercato",
365
- "tooltip": "Modifica non supportata online. Imposta tramite variabili d'ambiente durante il deploy"
424
+ "title": "Indice marketplace",
425
+ "tooltip": "Modifica online non supportata, configura tramite variabili d'ambiente in fase di deploy"
366
426
  },
367
427
  "messages": {
368
- "connectionUpdateFailed": "Aggiornamento delle informazioni di connessione fallito",
428
+ "connectionUpdateFailed": "Aggiornamento informazioni di connessione fallito",
369
429
  "connectionUpdateSuccess": "Informazioni di connessione aggiornate con successo",
370
- "envUpdateFailed": "Salvataggio delle variabili d'ambiente fallito",
430
+ "envUpdateFailed": "Salvataggio variabili d'ambiente fallito",
371
431
  "envUpdateSuccess": "Variabili d'ambiente salvate con successo"
372
432
  },
373
- "modalDesc": "Dopo aver configurato l'indirizzo del mercato dei plugin, è possibile utilizzare un mercato dei plugin personalizzato",
433
+ "modalDesc": "Configurando l'indirizzo del marketplace plugin, puoi usare un marketplace personalizzato",
374
434
  "rules": {
375
435
  "argsRequired": "Inserisci i parametri di avvio",
376
436
  "commandRequired": "Inserisci il comando di avvio",
377
437
  "urlRequired": "Inserisci l'indirizzo del servizio"
378
438
  },
379
439
  "saveSettings": "Salva impostazioni",
380
- "title": "Impostazioni del mercato dei plugin"
440
+ "title": "Impostazioni marketplace plugin"
381
441
  },
382
- "showInPortal": "Si prega di visualizzare i dettagli nell'area di lavoro",
442
+ "showInPortal": "Visualizza i dettagli nell'area di lavoro",
383
443
  "store": {
384
444
  "actions": {
385
445
  "cancel": "Annulla installazione",
386
- "confirmUninstall": "Stai per disinstallare questo plugin. La disinstallazione cancellerà la configurazione del plugin. Conferma l'operazione",
446
+ "confirmUninstall": "Stai per disinstallare questo plugin, la configurazione sarà rimossa. Confermi?",
387
447
  "detail": "Dettagli",
388
448
  "install": "Installa",
389
449
  "manifest": "Modifica file di installazione",
390
450
  "settings": "Impostazioni",
391
451
  "uninstall": "Disinstalla"
392
452
  },
393
- "communityPlugin": "Plugin della community",
453
+ "communityPlugin": "Community di terze parti",
394
454
  "customPlugin": "Personalizzato",
395
- "empty": "Nessun plugin installato al momento",
396
- "emptySelectHint": "Seleziona un plugin per visualizzare i dettagli",
397
- "installAllPlugins": "Installa tutti",
398
- "networkError": "Impossibile recuperare il negozio dei plugin. Controlla la connessione di rete e riprova",
399
- "placeholder": "Cerca per nome, descrizione o parola chiave del plugin...",
455
+ "empty": "Nessun plugin installato",
456
+ "emptySelectHint": "Seleziona un plugin per vedere i dettagli",
457
+ "installAllPlugins": "Installa tutto",
458
+ "networkError": "Recupero marketplace plugin fallito, controlla la connessione e riprova",
459
+ "placeholder": "Cerca nome, descrizione o parole chiave del plugin...",
400
460
  "releasedAt": "Pubblicato il {{createdAt}}",
401
461
  "tabs": {
402
462
  "installed": "Installati",
403
463
  "mcp": "Plugin MCP",
404
464
  "old": "Plugin LobeChat"
405
465
  },
406
- "title": "Negozio dei plugin"
466
+ "title": "Marketplace plugin"
407
467
  },
408
468
  "unknownError": "Errore sconosciuto",
409
469
  "unknownPlugin": "Plugin sconosciuto"