@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
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"confirm": "Confirmer",
|
3
3
|
"debug": {
|
4
|
-
"arguments": "Arguments
|
4
|
+
"arguments": "Arguments d'appel",
|
5
5
|
"function_call": "Appel de fonction",
|
6
|
-
"off": "
|
7
|
-
"on": "
|
8
|
-
"payload": "
|
6
|
+
"off": "Désactiver le débogage",
|
7
|
+
"on": "Voir les informations d'appel du plugin",
|
8
|
+
"payload": "Charge utile du plugin",
|
9
9
|
"pluginState": "État du plugin",
|
10
|
-
"response": "
|
10
|
+
"response": "Résultat retourné",
|
11
11
|
"title": "Détails du plugin",
|
12
|
-
"tool_call": "
|
12
|
+
"tool_call": "Requête d'appel d'outil"
|
13
13
|
},
|
14
14
|
"detailModal": {
|
15
15
|
"customPlugin": {
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"title": "Ceci est un plugin personnalisé"
|
19
19
|
},
|
20
20
|
"emptyState": {
|
21
|
-
"description": "Veuillez installer ce plugin pour voir ses
|
21
|
+
"description": "Veuillez d'abord installer ce plugin pour voir ses capacités et options de configuration",
|
22
22
|
"title": "Voir les détails du plugin après installation"
|
23
23
|
},
|
24
24
|
"info": {
|
@@ -33,13 +33,13 @@
|
|
33
33
|
"title": "Détails du plugin"
|
34
34
|
},
|
35
35
|
"dev": {
|
36
|
-
"confirmDeleteDevPlugin": "
|
36
|
+
"confirmDeleteDevPlugin": "Vous êtes sur le point de supprimer ce plugin local. Cette action est irréversible. Voulez-vous vraiment supprimer ce plugin ?",
|
37
37
|
"customParams": {
|
38
38
|
"useProxy": {
|
39
|
-
"label": "Installer via proxy (
|
39
|
+
"label": "Installer via proxy (en cas d'erreur d'accès cross-origin, essayez d'activer cette option puis réinstallez)"
|
40
40
|
}
|
41
41
|
},
|
42
|
-
"deleteSuccess": "
|
42
|
+
"deleteSuccess": "Plugin supprimé avec succès",
|
43
43
|
"manifest": {
|
44
44
|
"identifier": {
|
45
45
|
"desc": "Identifiant unique du plugin",
|
@@ -61,19 +61,19 @@
|
|
61
61
|
"title": "Paramètres avancés"
|
62
62
|
},
|
63
63
|
"args": {
|
64
|
-
"desc": "Liste des
|
65
|
-
"label": "
|
66
|
-
"placeholder": "Par exemple :
|
67
|
-
"required": "Veuillez
|
64
|
+
"desc": "Liste des arguments passés à la commande d'exécution, généralement le nom du serveur MCP ou le chemin du script de démarrage",
|
65
|
+
"label": "Arguments de commande",
|
66
|
+
"placeholder": "Par exemple : mcp-hello-world",
|
67
|
+
"required": "Veuillez saisir les arguments de démarrage"
|
68
68
|
},
|
69
69
|
"auth": {
|
70
70
|
"bear": "Clé API",
|
71
71
|
"desc": "Choisissez le mode d'authentification du serveur MCP",
|
72
72
|
"label": "Type d'authentification",
|
73
73
|
"none": "Aucune authentification requise",
|
74
|
-
"placeholder": "Veuillez
|
74
|
+
"placeholder": "Veuillez choisir un type d'authentification",
|
75
75
|
"token": {
|
76
|
-
"desc": "
|
76
|
+
"desc": "Saisissez votre clé API ou jeton Bearer",
|
77
77
|
"label": "Clé API",
|
78
78
|
"placeholder": "sk-xxxxx",
|
79
79
|
"required": "Veuillez saisir le jeton d'authentification"
|
@@ -83,68 +83,68 @@
|
|
83
83
|
"label": "Icône du plugin"
|
84
84
|
},
|
85
85
|
"command": {
|
86
|
-
"desc": "Fichier exécutable ou script
|
86
|
+
"desc": "Fichier exécutable ou script pour démarrer le serveur MCP STDIO",
|
87
87
|
"label": "Commande",
|
88
|
-
"placeholder": "Par exemple :
|
89
|
-
"required": "Veuillez
|
88
|
+
"placeholder": "Par exemple : npx / uv / docker etc.",
|
89
|
+
"required": "Veuillez saisir la commande de démarrage"
|
90
90
|
},
|
91
91
|
"desc": {
|
92
|
-
"desc": "
|
92
|
+
"desc": "Ajoutez une description du plugin",
|
93
93
|
"label": "Description du plugin",
|
94
|
-
"placeholder": "
|
94
|
+
"placeholder": "Complétez les instructions d'utilisation et les scénarios"
|
95
95
|
},
|
96
96
|
"endpoint": {
|
97
|
-
"desc": "
|
98
|
-
"label": "URL de
|
97
|
+
"desc": "Saisissez l'adresse de votre serveur MCP Streamable HTTP",
|
98
|
+
"label": "URL du point de terminaison MCP"
|
99
99
|
},
|
100
100
|
"env": {
|
101
101
|
"add": "Ajouter une ligne",
|
102
|
-
"desc": "
|
102
|
+
"desc": "Saisissez les variables d'environnement nécessaires pour le serveur MCP",
|
103
103
|
"duplicateKeyError": "La clé du champ doit être unique",
|
104
104
|
"formValidationFailed": "Échec de la validation du formulaire, veuillez vérifier le format des paramètres",
|
105
105
|
"keyRequired": "La clé du champ ne peut pas être vide",
|
106
106
|
"label": "Variables d'environnement du serveur MCP",
|
107
|
-
"stringifyError": "Impossible de sérialiser les paramètres, veuillez vérifier le format
|
107
|
+
"stringifyError": "Impossible de sérialiser les paramètres, veuillez vérifier le format"
|
108
108
|
},
|
109
109
|
"headers": {
|
110
110
|
"add": "Ajouter une ligne",
|
111
|
-
"desc": "
|
111
|
+
"desc": "Saisissez les en-têtes de requête",
|
112
112
|
"label": "En-têtes HTTP"
|
113
113
|
},
|
114
114
|
"identifier": {
|
115
|
-
"desc": "
|
116
|
-
"invalid": "
|
115
|
+
"desc": "Attribuez un nom à votre plugin MCP, en utilisant des caractères anglais",
|
116
|
+
"invalid": "L'identifiant ne peut contenir que des lettres, chiffres, tirets et underscores",
|
117
117
|
"label": "Nom du plugin MCP",
|
118
118
|
"placeholder": "Par exemple : my-mcp-plugin",
|
119
|
-
"required": "Veuillez
|
119
|
+
"required": "Veuillez saisir l'identifiant du service MCP"
|
120
120
|
},
|
121
121
|
"previewManifest": "Aperçu du fichier de description du plugin",
|
122
122
|
"quickImport": "Importation rapide de la configuration JSON",
|
123
123
|
"quickImportError": {
|
124
|
-
"empty": "Le contenu ne peut pas être vide",
|
124
|
+
"empty": "Le contenu saisi ne peut pas être vide",
|
125
125
|
"invalidJson": "Format JSON invalide",
|
126
126
|
"invalidStructure": "Structure JSON invalide"
|
127
127
|
},
|
128
|
-
"stdioNotSupported": "L'environnement actuel ne
|
128
|
+
"stdioNotSupported": "L'environnement actuel ne supporte pas les plugins MCP de type stdio",
|
129
129
|
"testConnection": "Tester la connexion",
|
130
130
|
"testConnectionTip": "Le plugin MCP ne peut être utilisé normalement qu'après un test de connexion réussi",
|
131
131
|
"type": {
|
132
|
-
"desc": "Choisissez le mode de communication du plugin MCP, la version web ne
|
133
|
-
"httpFeature1": "Compatible avec la version web et
|
134
|
-
"httpFeature2": "Connexion
|
135
|
-
"httpShortDesc": "Protocole de communication basé sur HTTP en
|
132
|
+
"desc": "Choisissez le mode de communication du plugin MCP, la version web ne supporte que Streamable HTTP",
|
133
|
+
"httpFeature1": "Compatible avec la version web et desktop",
|
134
|
+
"httpFeature2": "Connexion au serveur MCP distant, sans installation ni configuration supplémentaires",
|
135
|
+
"httpShortDesc": "Protocole de communication basé sur HTTP en streaming",
|
136
136
|
"label": "Type de plugin MCP",
|
137
|
-
"stdioFeature1": "Latence de communication
|
138
|
-
"stdioFeature2": "Nécessite l'installation
|
139
|
-
"stdioNotAvailable": "Le mode STDIO
|
137
|
+
"stdioFeature1": "Latence de communication plus faible, adapté à l'exécution locale",
|
138
|
+
"stdioFeature2": "Nécessite l'installation locale du serveur MCP",
|
139
|
+
"stdioNotAvailable": "Le mode STDIO est disponible uniquement sur la version desktop",
|
140
140
|
"stdioShortDesc": "Protocole de communication basé sur l'entrée/sortie standard",
|
141
141
|
"title": "Type de plugin MCP"
|
142
142
|
},
|
143
143
|
"url": {
|
144
|
-
"desc": "
|
145
|
-
"invalid": "Veuillez
|
146
|
-
"label": "URL de
|
147
|
-
"required": "Veuillez
|
144
|
+
"desc": "Saisissez l'adresse Streamable HTTP de votre serveur MCP, le mode SSE n'est pas supporté",
|
145
|
+
"invalid": "Veuillez saisir une URL valide",
|
146
|
+
"label": "URL du point de terminaison Streamable HTTP",
|
147
|
+
"required": "Veuillez saisir l'URL du service MCP"
|
148
148
|
}
|
149
149
|
},
|
150
150
|
"meta": {
|
@@ -153,29 +153,29 @@
|
|
153
153
|
"label": "Auteur"
|
154
154
|
},
|
155
155
|
"avatar": {
|
156
|
-
"desc": "Icône du plugin, peut être un
|
156
|
+
"desc": "Icône du plugin, peut être un emoji ou une URL",
|
157
157
|
"label": "Icône"
|
158
158
|
},
|
159
159
|
"description": {
|
160
160
|
"desc": "Description du plugin",
|
161
161
|
"label": "Description",
|
162
|
-
"placeholder": "
|
162
|
+
"placeholder": "Recherchez des informations via un moteur de recherche"
|
163
163
|
},
|
164
|
-
"formFieldRequired": "Ce champ est
|
164
|
+
"formFieldRequired": "Ce champ est obligatoire",
|
165
165
|
"homepage": {
|
166
166
|
"desc": "Page d'accueil du plugin",
|
167
167
|
"label": "Page d'accueil"
|
168
168
|
},
|
169
169
|
"identifier": {
|
170
|
-
"desc": "Identifiant unique du plugin,
|
171
|
-
"errorDuplicate": "L'identifiant
|
170
|
+
"desc": "Identifiant unique du plugin, détecté automatiquement depuis le manifest",
|
171
|
+
"errorDuplicate": "L'identifiant est en conflit avec un plugin existant, veuillez le modifier",
|
172
172
|
"label": "Identifiant",
|
173
|
-
"pattenErrorMessage": "Seuls les caractères
|
173
|
+
"pattenErrorMessage": "Seuls les caractères anglais, chiffres, - et _ sont autorisés"
|
174
174
|
},
|
175
175
|
"lobe": "Plugin {{appName}}",
|
176
176
|
"manifest": {
|
177
|
-
"desc": "{{appName}}
|
178
|
-
"label": "URL du fichier de description
|
177
|
+
"desc": "{{appName}} installera le plugin via ce lien",
|
178
|
+
"label": "URL du fichier de description (Manifest)",
|
179
179
|
"preview": "Aperçu du Manifest",
|
180
180
|
"refresh": "Actualiser"
|
181
181
|
},
|
@@ -187,30 +187,30 @@
|
|
187
187
|
}
|
188
188
|
},
|
189
189
|
"metaConfig": "Configuration des métadonnées du plugin",
|
190
|
-
"modalDesc": "
|
190
|
+
"modalDesc": "Après avoir ajouté un plugin personnalisé, il peut être utilisé pour le développement et la validation, ou directement dans les conversations. Pour le développement, veuillez consulter la <1>documentation ↗</1>.",
|
191
191
|
"openai": {
|
192
|
-
"importUrl": "Importer depuis
|
192
|
+
"importUrl": "Importer depuis une URL",
|
193
193
|
"schema": "Schéma"
|
194
194
|
},
|
195
195
|
"preview": {
|
196
196
|
"api": {
|
197
197
|
"noParams": "Cet outil n'a pas de paramètres",
|
198
|
-
"noResults": "Aucune API correspondant aux critères de recherche
|
198
|
+
"noResults": "Aucune API correspondant aux critères de recherche",
|
199
199
|
"params": "Paramètres :",
|
200
200
|
"searchPlaceholder": "Rechercher un outil..."
|
201
201
|
},
|
202
|
-
"card": "Aperçu de l'
|
203
|
-
"desc": "
|
202
|
+
"card": "Aperçu de l'affichage du plugin",
|
203
|
+
"desc": "Description de l'aperçu du plugin",
|
204
204
|
"empty": {
|
205
|
-
"desc": "
|
206
|
-
"title": "Commencez la prévisualisation après
|
205
|
+
"desc": "Après configuration, vous pourrez prévisualiser ici les capacités des outils supportés par le plugin",
|
206
|
+
"title": "Commencez la prévisualisation après configuration"
|
207
207
|
},
|
208
208
|
"title": "Aperçu du nom du plugin"
|
209
209
|
},
|
210
210
|
"save": "Installer le plugin",
|
211
211
|
"saveSuccess": "Paramètres du plugin enregistrés avec succès",
|
212
212
|
"tabs": {
|
213
|
-
"manifest": "
|
213
|
+
"manifest": "Liste des fonctionnalités (Manifest)",
|
214
214
|
"meta": "Métadonnées du plugin"
|
215
215
|
},
|
216
216
|
"title": {
|
@@ -218,21 +218,21 @@
|
|
218
218
|
"edit": "Modifier un plugin personnalisé"
|
219
219
|
},
|
220
220
|
"type": {
|
221
|
-
"lobe": "Plugin
|
221
|
+
"lobe": "Plugin {{appName}}",
|
222
222
|
"openai": "Plugin OpenAI"
|
223
223
|
},
|
224
224
|
"update": "Mettre à jour",
|
225
225
|
"updateSuccess": "Paramètres du plugin mis à jour avec succès"
|
226
226
|
},
|
227
227
|
"error": {
|
228
|
-
"fetchError": "Échec de la requête vers
|
228
|
+
"fetchError": "Échec de la requête vers le lien manifest, veuillez vérifier la validité du lien et s'assurer qu'il autorise l'accès cross-origin",
|
229
229
|
"installError": "Échec de l'installation du plugin {{name}}",
|
230
|
-
"manifestInvalid": "Le manifest ne respecte pas les normes
|
231
|
-
"noManifest": "
|
232
|
-
"openAPIInvalid": "Échec
|
230
|
+
"manifestInvalid": "Le manifest ne respecte pas les normes, résultat de la validation : \n\n {{error}}",
|
231
|
+
"noManifest": "Fichier de description introuvable",
|
232
|
+
"openAPIInvalid": "Échec de l'analyse OpenAPI, erreur : \n\n {{error}}",
|
233
233
|
"reinstallError": "Échec de la mise à jour du plugin {{name}}",
|
234
|
-
"testConnectionFailed": "Échec de
|
235
|
-
"urlError": "
|
234
|
+
"testConnectionFailed": "Échec de récupération du Manifest : {{error}}",
|
235
|
+
"urlError": "Le lien ne retourne pas un contenu au format JSON, veuillez vérifier qu'il s'agit d'un lien valide"
|
236
236
|
},
|
237
237
|
"inspector": {
|
238
238
|
"args": "Voir la liste des paramètres",
|
@@ -240,38 +240,38 @@
|
|
240
240
|
},
|
241
241
|
"list": {
|
242
242
|
"item": {
|
243
|
-
"deprecated.title": "
|
243
|
+
"deprecated.title": "Supprimé",
|
244
244
|
"local.config": "Configuration",
|
245
245
|
"local.title": "Personnalisé"
|
246
246
|
}
|
247
247
|
},
|
248
248
|
"loading": {
|
249
249
|
"content": "Appel du plugin en cours...",
|
250
|
-
"plugin": "
|
250
|
+
"plugin": "Plugin en cours d'exécution..."
|
251
251
|
},
|
252
252
|
"localSystem": {
|
253
253
|
"apiName": {
|
254
|
-
"listLocalFiles": "
|
254
|
+
"listLocalFiles": "Voir la liste des fichiers",
|
255
255
|
"moveLocalFiles": "Déplacer les fichiers",
|
256
256
|
"readLocalFile": "Lire le contenu du fichier",
|
257
257
|
"renameLocalFile": "Renommer",
|
258
258
|
"searchLocalFiles": "Rechercher des fichiers",
|
259
|
-
"writeLocalFile": "Écrire dans
|
259
|
+
"writeLocalFile": "Écrire dans un fichier"
|
260
260
|
},
|
261
261
|
"title": "Fichiers locaux"
|
262
262
|
},
|
263
263
|
"mcpInstall": {
|
264
264
|
"CHECKING_INSTALLATION": "Vérification de l'environnement d'installation...",
|
265
265
|
"COMPLETED": "Installation terminée",
|
266
|
-
"CONFIGURATION_REQUIRED": "Veuillez compléter la configuration
|
266
|
+
"CONFIGURATION_REQUIRED": "Veuillez compléter la configuration avant de continuer l'installation",
|
267
267
|
"ERROR": "Erreur d'installation",
|
268
|
-
"FETCHING_MANIFEST": "Récupération du fichier
|
268
|
+
"FETCHING_MANIFEST": "Récupération du fichier de description du plugin...",
|
269
269
|
"GETTING_SERVER_MANIFEST": "Initialisation du serveur MCP...",
|
270
270
|
"INSTALLING_PLUGIN": "Installation du plugin en cours...",
|
271
|
-
"configurationDescription": "Ce plugin MCP nécessite des paramètres de configuration pour fonctionner correctement, veuillez remplir les informations nécessaires
|
271
|
+
"configurationDescription": "Ce plugin MCP nécessite des paramètres de configuration pour fonctionner correctement, veuillez remplir les informations nécessaires",
|
272
272
|
"configurationRequired": "Configurer les paramètres du plugin",
|
273
273
|
"continueInstall": "Continuer l'installation",
|
274
|
-
"dependenciesDescription": "Ce plugin nécessite l'installation des dépendances système suivantes pour fonctionner correctement. Veuillez installer les dépendances manquantes selon les instructions, puis cliquez sur
|
274
|
+
"dependenciesDescription": "Ce plugin nécessite l'installation des dépendances système suivantes pour fonctionner correctement. Veuillez installer les dépendances manquantes selon les instructions, puis cliquez sur vérifier à nouveau pour continuer l'installation.",
|
275
275
|
"dependenciesRequired": "Veuillez installer les dépendances système du plugin",
|
276
276
|
"dependencyStatus": {
|
277
277
|
"installed": "Installé",
|
@@ -279,7 +279,7 @@
|
|
279
279
|
"requiredVersion": "Version requise : {{version}}"
|
280
280
|
},
|
281
281
|
"errorDetails": {
|
282
|
-
"args": "
|
282
|
+
"args": "Paramètres",
|
283
283
|
"command": "Commande",
|
284
284
|
"connectionParams": "Paramètres de connexion",
|
285
285
|
"env": "Variables d'environnement",
|
@@ -302,44 +302,104 @@
|
|
302
302
|
"manual": "Installation manuelle :",
|
303
303
|
"recommended": "Méthode d'installation recommandée :"
|
304
304
|
},
|
305
|
-
"recheckDependencies": "
|
305
|
+
"recheckDependencies": "Vérifier à nouveau",
|
306
306
|
"skipDependencies": "Ignorer la vérification"
|
307
307
|
},
|
308
308
|
"pluginList": "Liste des plugins",
|
309
|
+
"protocolInstall": {
|
310
|
+
"actions": {
|
311
|
+
"install": "Installer",
|
312
|
+
"installAnyway": "Installer quand même",
|
313
|
+
"installed": "Installé"
|
314
|
+
},
|
315
|
+
"config": {
|
316
|
+
"args": "Paramètres",
|
317
|
+
"command": "Commande",
|
318
|
+
"env": "Variables d'environnement",
|
319
|
+
"headers": "En-têtes de requête",
|
320
|
+
"title": "Informations de configuration",
|
321
|
+
"type": {
|
322
|
+
"http": "Type : HTTP",
|
323
|
+
"label": "Type",
|
324
|
+
"stdio": "Type : Stdio"
|
325
|
+
},
|
326
|
+
"url": "Adresse du service"
|
327
|
+
},
|
328
|
+
"custom": {
|
329
|
+
"badge": "Plugin personnalisé",
|
330
|
+
"security": {
|
331
|
+
"description": "Ce plugin n'a pas été vérifié officiellement, son installation peut présenter des risques de sécurité ! Veuillez vous assurer de faire confiance à la source du plugin.",
|
332
|
+
"title": "⚠️ Avertissement de risque de sécurité"
|
333
|
+
},
|
334
|
+
"title": "Installer un plugin personnalisé"
|
335
|
+
},
|
336
|
+
"marketplace": {
|
337
|
+
"title": "Installer un plugin tiers",
|
338
|
+
"trustedBy": "Fournit par {{name}}",
|
339
|
+
"unverified": {
|
340
|
+
"title": "Plugin tiers non vérifié",
|
341
|
+
"warning": "Ce plugin provient d'un marché tiers non vérifié, veuillez confirmer que vous faites confiance à cette source avant l'installation."
|
342
|
+
},
|
343
|
+
"verified": "Vérifié"
|
344
|
+
},
|
345
|
+
"messages": {
|
346
|
+
"connectionTestFailed": "Échec du test de connexion",
|
347
|
+
"installError": "Échec de l'installation du plugin, veuillez réessayer",
|
348
|
+
"installSuccess": "Plugin {{name}} installé avec succès !",
|
349
|
+
"manifestError": "Échec de récupération des détails du plugin, veuillez vérifier la connexion réseau et réessayer",
|
350
|
+
"manifestNotFound": "Fichier de description du plugin introuvable"
|
351
|
+
},
|
352
|
+
"meta": {
|
353
|
+
"author": "Auteur",
|
354
|
+
"homepage": "Page d'accueil",
|
355
|
+
"identifier": "Identifiant",
|
356
|
+
"source": "Source",
|
357
|
+
"version": "Version"
|
358
|
+
},
|
359
|
+
"official": {
|
360
|
+
"badge": "Plugin officiel LobeHub",
|
361
|
+
"description": "Ce plugin est développé et maintenu officiellement par LobeHub, soumis à un audit de sécurité rigoureux, vous pouvez l'utiliser en toute confiance.",
|
362
|
+
"loadingMessage": "Récupération des détails du plugin en cours...",
|
363
|
+
"loadingTitle": "Chargement",
|
364
|
+
"title": "Installer un plugin officiel"
|
365
|
+
},
|
366
|
+
"title": "Installer un plugin MCP",
|
367
|
+
"warning": "⚠️ Veuillez confirmer que vous faites confiance à la source de ce plugin, un plugin malveillant pourrait compromettre la sécurité de votre système."
|
368
|
+
},
|
309
369
|
"search": {
|
310
370
|
"apiName": {
|
311
371
|
"crawlMultiPages": "Lire le contenu de plusieurs pages",
|
312
372
|
"crawlSinglePage": "Lire le contenu de la page",
|
313
|
-
"search": "Rechercher la page"
|
373
|
+
"search": "Rechercher sur la page"
|
314
374
|
},
|
315
375
|
"config": {
|
316
376
|
"addKey": "Ajouter une clé",
|
317
377
|
"close": "Supprimer",
|
318
|
-
"confirm": "Configuration terminée
|
378
|
+
"confirm": "Configuration terminée et réessayer"
|
319
379
|
},
|
320
380
|
"crawPages": {
|
321
381
|
"crawling": "Identification des liens en cours",
|
322
382
|
"detail": {
|
323
383
|
"preview": "Aperçu",
|
324
384
|
"raw": "Texte brut",
|
325
|
-
"tooLong": "Le contenu du texte est trop long, le contexte de la conversation ne conserve que les {{characters}} premiers caractères,
|
385
|
+
"tooLong": "Le contenu du texte est trop long, le contexte de la conversation ne conserve que les {{characters}} premiers caractères, le reste n'est pas pris en compte."
|
326
386
|
},
|
327
387
|
"meta": {
|
328
|
-
"crawler": "Mode de
|
388
|
+
"crawler": "Mode de capture",
|
329
389
|
"words": "Nombre de caractères"
|
330
390
|
}
|
331
391
|
},
|
332
392
|
"searchxng": {
|
333
|
-
"baseURL": "Veuillez
|
334
|
-
"description": "Veuillez
|
335
|
-
"keyPlaceholder": "Veuillez
|
393
|
+
"baseURL": "Veuillez saisir",
|
394
|
+
"description": "Veuillez saisir l'URL de SearchXNG pour commencer la recherche en ligne",
|
395
|
+
"keyPlaceholder": "Veuillez saisir la clé",
|
336
396
|
"title": "Configurer le moteur de recherche SearchXNG",
|
337
|
-
"unconfiguredDesc": "Veuillez contacter l'administrateur pour
|
338
|
-
"unconfiguredTitle": "
|
397
|
+
"unconfiguredDesc": "Veuillez contacter l'administrateur pour configurer SearchXNG afin de commencer la recherche en ligne",
|
398
|
+
"unconfiguredTitle": "SearchXNG non configuré"
|
339
399
|
},
|
340
400
|
"title": "Recherche en ligne"
|
341
401
|
},
|
342
|
-
"setting": "Paramètres
|
402
|
+
"setting": "Paramètres du plugin",
|
343
403
|
"settings": {
|
344
404
|
"capabilities": {
|
345
405
|
"prompts": "Invites",
|
@@ -359,51 +419,51 @@
|
|
359
419
|
},
|
360
420
|
"edit": "Modifier",
|
361
421
|
"envConfigDescription": "Ces configurations seront transmises en tant que variables d'environnement au processus lors du démarrage du serveur MCP",
|
362
|
-
"httpTypeNotice": "Les plugins MCP de type HTTP n'ont
|
422
|
+
"httpTypeNotice": "Les plugins MCP de type HTTP n'ont pas de variables d'environnement à configurer pour le moment",
|
363
423
|
"indexUrl": {
|
364
424
|
"title": "Index du marché",
|
365
|
-
"tooltip": "L'édition en ligne n'est pas encore
|
425
|
+
"tooltip": "L'édition en ligne n'est pas encore supportée, veuillez configurer via les variables d'environnement lors du déploiement"
|
366
426
|
},
|
367
427
|
"messages": {
|
368
428
|
"connectionUpdateFailed": "Échec de la mise à jour des informations de connexion",
|
369
|
-
"connectionUpdateSuccess": "
|
429
|
+
"connectionUpdateSuccess": "Informations de connexion mises à jour avec succès",
|
370
430
|
"envUpdateFailed": "Échec de l'enregistrement des variables d'environnement",
|
371
|
-
"envUpdateSuccess": "
|
431
|
+
"envUpdateSuccess": "Variables d'environnement enregistrées avec succès"
|
372
432
|
},
|
373
|
-
"modalDesc": "
|
433
|
+
"modalDesc": "Après avoir configuré l'adresse du marché des plugins, vous pouvez utiliser un marché de plugins personnalisé",
|
374
434
|
"rules": {
|
375
|
-
"argsRequired": "Veuillez saisir les
|
435
|
+
"argsRequired": "Veuillez saisir les arguments de démarrage",
|
376
436
|
"commandRequired": "Veuillez saisir la commande de démarrage",
|
377
437
|
"urlRequired": "Veuillez saisir l'adresse du service"
|
378
438
|
},
|
379
439
|
"saveSettings": "Enregistrer les paramètres",
|
380
|
-
"title": "
|
440
|
+
"title": "Configurer le marché des plugins"
|
381
441
|
},
|
382
442
|
"showInPortal": "Veuillez consulter les détails dans l'espace de travail",
|
383
443
|
"store": {
|
384
444
|
"actions": {
|
385
445
|
"cancel": "Annuler l'installation",
|
386
|
-
"confirmUninstall": "Vous êtes sur le point de désinstaller ce plugin
|
446
|
+
"confirmUninstall": "Vous êtes sur le point de désinstaller ce plugin, cela supprimera également sa configuration. Veuillez confirmer votre action.",
|
387
447
|
"detail": "Détails",
|
388
448
|
"install": "Installer",
|
389
449
|
"manifest": "Modifier le fichier d'installation",
|
390
450
|
"settings": "Paramètres",
|
391
451
|
"uninstall": "Désinstaller"
|
392
452
|
},
|
393
|
-
"communityPlugin": "
|
394
|
-
"customPlugin": "
|
395
|
-
"empty": "Aucun plugin installé
|
453
|
+
"communityPlugin": "Communauté tierce",
|
454
|
+
"customPlugin": "Personnalisé",
|
455
|
+
"empty": "Aucun plugin installé",
|
396
456
|
"emptySelectHint": "Sélectionnez un plugin pour prévisualiser les détails",
|
397
|
-
"installAllPlugins": "Installer
|
398
|
-
"networkError": "Échec de
|
399
|
-
"placeholder": "Rechercher
|
457
|
+
"installAllPlugins": "Installer tout",
|
458
|
+
"networkError": "Échec de récupération du magasin de plugins, veuillez vérifier la connexion réseau et réessayer",
|
459
|
+
"placeholder": "Rechercher par nom, description ou mot-clé...",
|
400
460
|
"releasedAt": "Publié le {{createdAt}}",
|
401
461
|
"tabs": {
|
402
|
-
"installed": "
|
462
|
+
"installed": "Installé",
|
403
463
|
"mcp": "Plugin MCP",
|
404
464
|
"old": "Plugin LobeChat"
|
405
465
|
},
|
406
|
-
"title": "
|
466
|
+
"title": "Magasin de plugins"
|
407
467
|
},
|
408
468
|
"unknownError": "Erreur inconnue",
|
409
469
|
"unknownPlugin": "Plugin inconnu"
|