@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,15 +1,15 @@
1
1
  {
2
2
  "confirm": "Confirmar",
3
3
  "debug": {
4
- "arguments": "Argumentos de Chamada",
5
- "function_call": "Chamada de Função",
6
- "off": "Desativar Depuração",
7
- "on": "Ver Informações de Chamada de Plugin",
8
- "payload": "carga do plugin",
4
+ "arguments": "Parâmetros de chamada",
5
+ "function_call": "Chamada de função",
6
+ "off": "Desativar depuração",
7
+ "on": "Ver informações de chamadas de plugin",
8
+ "payload": "Carga útil do plugin",
9
9
  "pluginState": "Estado do plugin",
10
- "response": "Resposta",
11
- "title": "Detalhes do Plugin",
12
- "tool_call": "solicitação de chamada de ferramenta"
10
+ "response": "Resultado retornado",
11
+ "title": "Detalhes do plugin",
12
+ "tool_call": "Solicitação de chamada de ferramenta"
13
13
  },
14
14
  "detailModal": {
15
15
  "customPlugin": {
@@ -18,7 +18,7 @@
18
18
  "title": "Este é um plugin personalizado"
19
19
  },
20
20
  "emptyState": {
21
- "description": "Por favor, instale este plugin para visualizar suas funcionalidades e opções de configuração",
21
+ "description": "Por favor, instale este plugin primeiro para ver suas capacidades e opções de configuração",
22
22
  "title": "Veja os detalhes do plugin após a instalação"
23
23
  },
24
24
  "info": {
@@ -26,17 +26,17 @@
26
26
  "name": "Nome da API"
27
27
  },
28
28
  "tabs": {
29
- "info": "Capacidades do Plugin",
30
- "manifest": "Arquivo de Instalação",
29
+ "info": "Capacidades do plugin",
30
+ "manifest": "Arquivo de instalação",
31
31
  "settings": "Configurações"
32
32
  },
33
- "title": "Detalhes do Plugin"
33
+ "title": "Detalhes do plugin"
34
34
  },
35
35
  "dev": {
36
- "confirmDeleteDevPlugin": "Tem certeza de que deseja excluir este plugin local? Esta ação não poderá ser desfeita.",
36
+ "confirmDeleteDevPlugin": "Este plugin local será excluído e não poderá ser recuperado. Deseja realmente excluir este plugin?",
37
37
  "customParams": {
38
38
  "useProxy": {
39
- "label": "Instalar via Proxy (se ocorrer erro de acesso entre domínios, tente ativar esta opção e reinstalar)"
39
+ "label": "Instalar via proxy (se ocorrer erro de acesso cross-origin, tente ativar esta opção e reinstalar)"
40
40
  }
41
41
  },
42
42
  "deleteSuccess": "Plugin excluído com sucesso",
@@ -48,33 +48,33 @@
48
48
  "mode": {
49
49
  "mcp": "Plugin MCP",
50
50
  "mcpExp": "Experimental",
51
- "url": "Link Online"
51
+ "url": "Link online"
52
52
  },
53
53
  "name": {
54
54
  "desc": "Título do plugin",
55
55
  "label": "Título",
56
- "placeholder": "Pesquisar mecanismo de busca"
56
+ "placeholder": "Motor de busca"
57
57
  }
58
58
  },
59
59
  "mcp": {
60
60
  "advanced": {
61
- "title": "Configurações Avançadas"
61
+ "title": "Configurações avançadas"
62
62
  },
63
63
  "args": {
64
- "desc": "Lista de parâmetros a serem passados para o comando de execução, geralmente aqui se insere o nome do servidor MCP ou o caminho do script de inicialização",
64
+ "desc": "Lista de parâmetros passados para o comando de execução, geralmente insira aqui o nome do servidor MCP ou o caminho do script de inicialização",
65
65
  "label": "Parâmetros do comando",
66
- "placeholder": "Por exemplo: --port 8080 --debug",
66
+ "placeholder": "Exemplo: mcp-hello-world",
67
67
  "required": "Por favor, insira os parâmetros de inicialização"
68
68
  },
69
69
  "auth": {
70
- "bear": "Chave API",
71
- "desc": "Selecione o método de autenticação do servidor MCP",
70
+ "bear": "API Key",
71
+ "desc": "Escolha o método de autenticação do servidor MCP",
72
72
  "label": "Tipo de autenticação",
73
73
  "none": "Sem autenticação",
74
74
  "placeholder": "Por favor, selecione o tipo de autenticação",
75
75
  "token": {
76
- "desc": "Insira sua Chave API ou Token Bearer",
77
- "label": "Chave API",
76
+ "desc": "Insira sua API Key ou Bearer Token",
77
+ "label": "API Key",
78
78
  "placeholder": "sk-xxxxx",
79
79
  "required": "Por favor, insira o token de autenticação"
80
80
  }
@@ -83,67 +83,67 @@
83
83
  "label": "Ícone do plugin"
84
84
  },
85
85
  "command": {
86
- "desc": "Arquivo executável ou script usado para iniciar o plugin MCP STDIO",
86
+ "desc": "Arquivo executável ou script usado para iniciar o MCP STDIO Server",
87
87
  "label": "Comando",
88
- "placeholder": "Por exemplo: python main.py ou /caminho/para/executável",
88
+ "placeholder": "Exemplo: npx / uv / docker etc.",
89
89
  "required": "Por favor, insira o comando de inicialização"
90
90
  },
91
91
  "desc": {
92
- "desc": "Descrição do plugin",
92
+ "desc": "Adicione uma descrição para o plugin",
93
93
  "label": "Descrição do plugin",
94
- "placeholder": "Adicione informações sobre o uso e cenários do plugin"
94
+ "placeholder": "Complementar informações sobre uso e cenários do plugin"
95
95
  },
96
96
  "endpoint": {
97
- "desc": "Insira o endereço do seu Servidor HTTP Streamable MCP",
97
+ "desc": "Insira o endereço do seu MCP Streamable HTTP Server",
98
98
  "label": "URL do Endpoint MCP"
99
99
  },
100
100
  "env": {
101
101
  "add": "Adicionar uma linha",
102
- "desc": "Insira as variáveis de ambiente necessárias para o seu servidor MCP",
102
+ "desc": "Insira as variáveis de ambiente necessárias para o servidor MCP",
103
103
  "duplicateKeyError": "A chave do campo deve ser única",
104
- "formValidationFailed": "Validação do formulário falhou, verifique o formato dos parâmetros",
104
+ "formValidationFailed": "Falha na validação do formulário, por favor verifique o formato dos parâmetros",
105
105
  "keyRequired": "A chave do campo não pode estar vazia",
106
106
  "label": "Variáveis de ambiente do servidor MCP",
107
- "stringifyError": "Não foi possível serializar os parâmetros, verifique o formato dos parâmetros"
107
+ "stringifyError": "Não foi possível serializar os parâmetros, por favor verifique o formato"
108
108
  },
109
109
  "headers": {
110
110
  "add": "Adicionar uma linha",
111
- "desc": "Insira os cabeçalhos da requisição",
111
+ "desc": "Insira os cabeçalhos HTTP",
112
112
  "label": "Cabeçalhos HTTP"
113
113
  },
114
114
  "identifier": {
115
- "desc": " um nome ao seu plugin MCP, deve usar caracteres em inglês",
116
- "invalid": "Somente caracteres em inglês, números, - e _ são permitidos",
115
+ "desc": "Defina um nome para seu plugin MCP, deve usar caracteres em inglês",
116
+ "invalid": "O identificador pode conter letras, números, hífens e sublinhados",
117
117
  "label": "Nome do plugin MCP",
118
- "placeholder": "Por exemplo: meu-plugin-mcp",
118
+ "placeholder": "Exemplo: my-mcp-plugin",
119
119
  "required": "Por favor, insira o identificador do serviço MCP"
120
120
  },
121
- "previewManifest": "Pré-visualizar arquivo de descrição do plugin",
122
- "quickImport": "Importar configuração JSON rapidamente",
121
+ "previewManifest": "Visualizar arquivo de descrição do plugin",
122
+ "quickImport": "Importação rápida de configuração JSON",
123
123
  "quickImportError": {
124
- "empty": "O conteúdo de entrada não pode estar vazio",
124
+ "empty": "O conteúdo não pode estar vazio",
125
125
  "invalidJson": "Formato JSON inválido",
126
- "invalidStructure": "Estrutura JSON inválida"
126
+ "invalidStructure": "Formato JSON inválido"
127
127
  },
128
128
  "stdioNotSupported": "O ambiente atual não suporta plugins MCP do tipo stdio",
129
129
  "testConnection": "Testar conexão",
130
- "testConnectionTip": "O plugin MCP só pode ser usado normalmente após a conexão ser testada com sucesso",
130
+ "testConnectionTip": "O plugin MCP só pode ser usado normalmente após o teste de conexão ser bem-sucedido",
131
131
  "type": {
132
- "desc": "Escolha o método de comunicação do plugin MCP, a versão web suporta apenas Streamable HTTP",
133
- "httpFeature1": "Compatível com a versão web e desktop",
134
- "httpFeature2": "Conectar ao servidor MCP remoto, sem necessidade de instalação ou configuração adicional",
132
+ "desc": "Escolha o modo de comunicação do plugin MCP, a versão web suporta apenas Streamable HTTP",
133
+ "httpFeature1": "Compatível com versão web e desktop",
134
+ "httpFeature2": "Conecta ao servidor MCP remoto, sem necessidade de instalação adicional",
135
135
  "httpShortDesc": "Protocolo de comunicação baseado em HTTP streaming",
136
136
  "label": "Tipo de plugin MCP",
137
137
  "stdioFeature1": "Menor latência de comunicação, adequado para execução local",
138
- "stdioFeature2": "É necessário instalar e executar o servidor MCP localmente",
139
- "stdioNotAvailable": "O modo STDIO está disponível apenas na versão desktop",
138
+ "stdioFeature2": "Requer instalação e execução local do servidor MCP",
139
+ "stdioNotAvailable": "Modo STDIO disponível apenas na versão desktop",
140
140
  "stdioShortDesc": "Protocolo de comunicação baseado em entrada e saída padrão",
141
141
  "title": "Tipo de plugin MCP"
142
142
  },
143
143
  "url": {
144
- "desc": "Insira o endereço HTTP transmitível do seu servidor MCP, o modo SSE não é suportado",
144
+ "desc": "Insira o endereço Streamable HTTP do seu servidor MCP, modo SSE não suportado",
145
145
  "invalid": "Por favor, insira um URL válido",
146
- "label": "URL do Endpoint HTTP",
146
+ "label": "URL do Endpoint Streamable HTTP",
147
147
  "required": "Por favor, insira o URL do serviço MCP"
148
148
  }
149
149
  },
@@ -153,41 +153,41 @@
153
153
  "label": "Autor"
154
154
  },
155
155
  "avatar": {
156
- "desc": "Ícone do plugin, pode ser um Emoji ou um URL",
156
+ "desc": "Ícone do plugin, pode usar Emoji ou URL",
157
157
  "label": "Ícone"
158
158
  },
159
159
  "description": {
160
160
  "desc": "Descrição do plugin",
161
161
  "label": "Descrição",
162
- "placeholder": "Obter informações de um mecanismo de busca"
162
+ "placeholder": "Pesquise em motores de busca para obter informações"
163
163
  },
164
164
  "formFieldRequired": "Este campo é obrigatório",
165
165
  "homepage": {
166
166
  "desc": "Página inicial do plugin",
167
- "label": "Página Inicial"
167
+ "label": "Página inicial"
168
168
  },
169
169
  "identifier": {
170
- "desc": "Identificador único do plugin, será automaticamente reconhecido a partir do manifesto",
171
- "errorDuplicate": "Identificador duplicado com um plugin existente, por favor modifique o identificador",
170
+ "desc": "Identificador único do plugin, será reconhecido automaticamente a partir do manifest",
171
+ "errorDuplicate": "Identificador duplicado com outro plugin existente, por favor modifique",
172
172
  "label": "Identificador",
173
- "pattenErrorMessage": "Apenas caracteres alfanuméricos, - e _ são permitidos"
173
+ "pattenErrorMessage": " pode conter caracteres em inglês, números, - e _"
174
174
  },
175
175
  "lobe": "Plugin {{appName}}",
176
176
  "manifest": {
177
- "desc": "{{appName}} será instalado através deste link para adicionar o plugin",
178
- "label": "URL do Arquivo de Descrição do Plugin (Manifest)",
179
- "preview": "Visualizar Manifesto",
177
+ "desc": "{{appName}} instalará o plugin através deste link",
178
+ "label": "Arquivo de descrição do plugin (Manifest) URL",
179
+ "preview": "Visualizar Manifest",
180
180
  "refresh": "Atualizar"
181
181
  },
182
182
  "openai": "Plugin OpenAI",
183
183
  "title": {
184
184
  "desc": "Título do plugin",
185
185
  "label": "Título",
186
- "placeholder": "Pesquisar mecanismo de busca"
186
+ "placeholder": "Motor de busca"
187
187
  }
188
188
  },
189
- "metaConfig": "Configuração de Metadados do Plugin",
190
- "modalDesc": "Após adicionar um plugin personalizado, ele pode ser usado para validação de desenvolvimento de plugin ou diretamente em uma conversa. Consulte o <1>documento de desenvolvimento↗</> para desenvolver plugins.",
189
+ "metaConfig": "Configuração de metadados do plugin",
190
+ "modalDesc": "Após adicionar um plugin personalizado, ele pode ser usado para desenvolvimento e validação, ou diretamente em conversas. Para desenvolvimento de plugins, consulte a <1>documentação de desenvolvimento↗</>.",
191
191
  "openai": {
192
192
  "importUrl": "Importar a partir de URL",
193
193
  "schema": "Esquema"
@@ -195,59 +195,59 @@
195
195
  "preview": {
196
196
  "api": {
197
197
  "noParams": "Esta ferramenta não possui parâmetros",
198
- "noResults": "Nenhuma API correspondente aos critérios de pesquisa foi encontrada",
198
+ "noResults": "Nenhuma API encontrada que corresponda aos critérios de busca",
199
199
  "params": "Parâmetros:",
200
200
  "searchPlaceholder": "Pesquisar ferramenta..."
201
201
  },
202
- "card": "Visualizar Efeito do Plugin",
203
- "desc": "Visualizar Descrição do Plugin",
202
+ "card": "Visualizar efeito de exibição do plugin",
203
+ "desc": "Visualizar descrição do plugin",
204
204
  "empty": {
205
- "desc": "Após concluir a configuração, você poderá visualizar as capacidades da ferramenta suportadas pelo plugin aqui",
205
+ "desc": "Após a configuração, você poderá visualizar aqui as capacidades das ferramentas suportadas pelo plugin",
206
206
  "title": "Comece a visualizar após configurar o plugin"
207
207
  },
208
- "title": "Visualizar Nome do Plugin"
208
+ "title": "Visualização do nome do plugin"
209
209
  },
210
- "save": "Instalar Plugin",
210
+ "save": "Instalar plugin",
211
211
  "saveSuccess": "Configurações do plugin salvas com sucesso",
212
212
  "tabs": {
213
- "manifest": "Lista de Descrição de Funcionalidades (Manifest)",
214
- "meta": "Metadados do Plugin"
213
+ "manifest": "Lista de funcionalidades (Manifest)",
214
+ "meta": "Metadados do plugin"
215
215
  },
216
216
  "title": {
217
- "create": "Adicionar Plugin Personalizado",
218
- "edit": "Editar Plugin Personalizado"
217
+ "create": "Adicionar plugin personalizado",
218
+ "edit": "Editar plugin personalizado"
219
219
  },
220
220
  "type": {
221
- "lobe": "Plugin LobeChat",
221
+ "lobe": "Plugin {{appName}}",
222
222
  "openai": "Plugin OpenAI"
223
223
  },
224
224
  "update": "Atualizar",
225
225
  "updateSuccess": "Configurações do plugin atualizadas com sucesso"
226
226
  },
227
227
  "error": {
228
- "fetchError": "Falha ao buscar o link do manifesto. Certifique-se de que o link é válido e permita o acesso entre domínios.",
229
- "installError": "Falha na instalação do plugin {{name}}.",
230
- "manifestInvalid": "O manifesto não está em conformidade com as especificações. Resultado da validação: \n\n {{error}}",
231
- "noManifest": "Manifesto não encontrado",
232
- "openAPIInvalid": "Falha ao analisar o OpenAPI. Erro: \n\n {{error}}",
228
+ "fetchError": "Falha ao solicitar o link do manifest, por favor verifique a validade do link e se permite acesso cross-origin",
229
+ "installError": "Falha na instalação do plugin {{name}}",
230
+ "manifestInvalid": "Manifest não está conforme o padrão, resultado da validação: \n\n {{error}}",
231
+ "noManifest": "Arquivo de descrição não encontrado",
232
+ "openAPIInvalid": "Falha na análise do OpenAPI, erro: \n\n {{error}}",
233
233
  "reinstallError": "Falha ao atualizar o plugin {{name}}",
234
- "testConnectionFailed": "Falha ao obter o Manifest: {{error}}",
235
- "urlError": "O link não retornou conteúdo no formato JSON. Certifique-se de que o link é válido."
234
+ "testConnectionFailed": "Falha ao obter Manifest: {{error}}",
235
+ "urlError": "O link não retornou conteúdo em formato JSON, por favor verifique se é um link válido"
236
236
  },
237
237
  "inspector": {
238
- "args": "Ver parâmetros",
238
+ "args": "Ver lista de parâmetros",
239
239
  "pluginRender": "Ver interface do plugin"
240
240
  },
241
241
  "list": {
242
242
  "item": {
243
- "deprecated.title": "Obsoleto",
243
+ "deprecated.title": "Removido",
244
244
  "local.config": "Configuração",
245
245
  "local.title": "Personalizado"
246
246
  }
247
247
  },
248
248
  "loading": {
249
- "content": "Carregando o plugin...",
250
- "plugin": "Executando o plugin..."
249
+ "content": "Chamando plugin...",
250
+ "plugin": "Plugin em execução..."
251
251
  },
252
252
  "localSystem": {
253
253
  "apiName": {
@@ -256,23 +256,23 @@
256
256
  "readLocalFile": "Ler conteúdo do arquivo",
257
257
  "renameLocalFile": "Renomear",
258
258
  "searchLocalFiles": "Pesquisar arquivos",
259
- "writeLocalFile": "Escrever no arquivo"
259
+ "writeLocalFile": "Escrever arquivo"
260
260
  },
261
- "title": "Arquivos Locais"
261
+ "title": "Arquivos locais"
262
262
  },
263
263
  "mcpInstall": {
264
264
  "CHECKING_INSTALLATION": "Verificando ambiente de instalação...",
265
265
  "COMPLETED": "Instalação concluída",
266
- "CONFIGURATION_REQUIRED": "Por favor, complete as configurações necessárias antes de continuar a instalação",
266
+ "CONFIGURATION_REQUIRED": "Por favor, complete as configurações necessárias para continuar a instalação",
267
267
  "ERROR": "Erro na instalação",
268
268
  "FETCHING_MANIFEST": "Obtendo arquivo de descrição do plugin...",
269
269
  "GETTING_SERVER_MANIFEST": "Inicializando servidor MCP...",
270
270
  "INSTALLING_PLUGIN": "Instalando plugin...",
271
- "configurationDescription": "Este plugin MCP requer parâmetros de configuração para funcionar corretamente. Por favor, preencha as informações necessárias.",
271
+ "configurationDescription": "Este plugin MCP requer parâmetros de configuração para funcionar corretamente, por favor preencha as informações necessárias",
272
272
  "configurationRequired": "Configurar parâmetros do plugin",
273
273
  "continueInstall": "Continuar instalação",
274
- "dependenciesDescription": "Este plugin requer a instalação das seguintes dependências do sistema para funcionar corretamente. Por favor, instale as dependências ausentes conforme as instruções e clique em verificar novamente para continuar a instalação.",
275
- "dependenciesRequired": "Por favor, instale as dependências do sistema para o plugin",
274
+ "dependenciesDescription": "Este plugin requer as seguintes dependências do sistema para funcionar corretamente. Por favor, instale as dependências ausentes conforme as instruções e clique em verificar novamente para continuar a instalação.",
275
+ "dependenciesRequired": "Por favor, instale as dependências do sistema do plugin",
276
276
  "dependencyStatus": {
277
277
  "installed": "Instalado",
278
278
  "notInstalled": "Não instalado",
@@ -302,44 +302,104 @@
302
302
  "manual": "Instalação manual:",
303
303
  "recommended": "Método recomendado de instalação:"
304
304
  },
305
- "recheckDependencies": "Verificar novamente",
305
+ "recheckDependencies": "Verificar dependências novamente",
306
306
  "skipDependencies": "Pular verificação"
307
307
  },
308
- "pluginList": "Lista de Plugins",
308
+ "pluginList": "Lista de plugins",
309
+ "protocolInstall": {
310
+ "actions": {
311
+ "install": "Instalar",
312
+ "installAnyway": "Instalar mesmo assim",
313
+ "installed": "Instalado"
314
+ },
315
+ "config": {
316
+ "args": "Parâmetros",
317
+ "command": "Comando",
318
+ "env": "Variáveis de ambiente",
319
+ "headers": "Cabeçalhos",
320
+ "title": "Informações de configuração",
321
+ "type": {
322
+ "http": "Tipo: HTTP",
323
+ "label": "Tipo",
324
+ "stdio": "Tipo: Stdio"
325
+ },
326
+ "url": "Endereço do serviço"
327
+ },
328
+ "custom": {
329
+ "badge": "Plugin personalizado",
330
+ "security": {
331
+ "description": "Este plugin não foi verificado oficialmente, a instalação pode apresentar riscos de segurança! Por favor, certifique-se de confiar na fonte do plugin.",
332
+ "title": "⚠️ Aviso de risco de segurança"
333
+ },
334
+ "title": "Instalar plugin personalizado"
335
+ },
336
+ "marketplace": {
337
+ "title": "Instalar plugins de terceiros",
338
+ "trustedBy": "Fornecido por {{name}}",
339
+ "unverified": {
340
+ "title": "Plugin de terceiros não verificado",
341
+ "warning": "Este plugin vem de um mercado de terceiros não verificado, por favor confirme que confia na fonte antes de instalar."
342
+ },
343
+ "verified": "Verificado"
344
+ },
345
+ "messages": {
346
+ "connectionTestFailed": "Falha no teste de conexão",
347
+ "installError": "Falha na instalação do plugin, por favor tente novamente",
348
+ "installSuccess": "Plugin {{name}} instalado com sucesso!",
349
+ "manifestError": "Falha ao obter detalhes do plugin, por favor verifique a conexão de rede e tente novamente",
350
+ "manifestNotFound": "Não foi possível obter o arquivo de descrição do plugin"
351
+ },
352
+ "meta": {
353
+ "author": "Autor",
354
+ "homepage": "Página inicial",
355
+ "identifier": "Identificador",
356
+ "source": "Fonte",
357
+ "version": "Versão"
358
+ },
359
+ "official": {
360
+ "badge": "Plugin oficial LobeHub",
361
+ "description": "Este plugin é desenvolvido e mantido oficialmente pela LobeHub, passou por rigorosa auditoria de segurança e pode ser usado com confiança.",
362
+ "loadingMessage": "Obtendo detalhes do plugin...",
363
+ "loadingTitle": "Carregando",
364
+ "title": "Instalar plugin oficial"
365
+ },
366
+ "title": "Instalar plugin MCP",
367
+ "warning": "⚠️ Por favor, confirme que confia na fonte deste plugin, plugins maliciosos podem comprometer a segurança do seu sistema."
368
+ },
309
369
  "search": {
310
370
  "apiName": {
311
- "crawlMultiPages": "Ler o conteúdo de várias páginas",
371
+ "crawlMultiPages": "Ler conteúdo de várias páginas",
312
372
  "crawlSinglePage": "Ler conteúdo da página",
313
373
  "search": "Pesquisar página"
314
374
  },
315
375
  "config": {
316
376
  "addKey": "Adicionar chave",
317
377
  "close": "Remover",
318
- "confirm": "Configuração concluída, tente novamente"
378
+ "confirm": "Configuração concluída e tentar novamente"
319
379
  },
320
380
  "crawPages": {
321
381
  "crawling": "Reconhecendo links",
322
382
  "detail": {
323
- "preview": "Prévia",
383
+ "preview": "Visualizar",
324
384
  "raw": "Texto original",
325
- "tooLong": "O conteúdo do texto é muito longo, o contexto da conversa manterá apenas os primeiros {{characters}} caracteres, e a parte excedente não será considerada no contexto da conversa"
385
+ "tooLong": "O conteúdo do texto é muito longo, o contexto da conversa manterá apenas os primeiros {{characters}} caracteres, o restante não será incluído."
326
386
  },
327
387
  "meta": {
328
- "crawler": "Modo de Rastreamento",
388
+ "crawler": "Modo de captura",
329
389
  "words": "Número de caracteres"
330
390
  }
331
391
  },
332
392
  "searchxng": {
333
- "baseURL": "Digite",
334
- "description": "Digite o URL do SearchXNG para começar a pesquisa na internet",
335
- "keyPlaceholder": "Digite a chave",
336
- "title": "Configurar o mecanismo de busca SearchXNG",
337
- "unconfiguredDesc": "Por favor, entre em contato com o administrador para concluir a configuração do mecanismo de busca SearchXNG e começar a pesquisa na internet",
338
- "unconfiguredTitle": "Mecanismo de busca SearchXNG ainda não configurado"
339
- },
340
- "title": "Pesquisa na internet"
393
+ "baseURL": "Por favor, insira",
394
+ "description": "Insira o endereço do SearchXNG para começar a pesquisa online",
395
+ "keyPlaceholder": "Por favor, insira a chave",
396
+ "title": "Configurar motor de busca SearchXNG",
397
+ "unconfiguredDesc": "Por favor, contate o administrador para configurar o motor de busca SearchXNG para começar a pesquisa online",
398
+ "unconfiguredTitle": "SearchXNG não configurado"
399
+ },
400
+ "title": "Pesquisa online"
341
401
  },
342
- "setting": "Configuração do Plugin",
402
+ "setting": "Configurações do plugin",
343
403
  "settings": {
344
404
  "capabilities": {
345
405
  "prompts": "Prompts",
@@ -359,51 +419,51 @@
359
419
  },
360
420
  "edit": "Editar",
361
421
  "envConfigDescription": "Estas configurações serão passadas como variáveis de ambiente para o processo ao iniciar o servidor MCP",
362
- "httpTypeNotice": "Plugins MCP do tipo HTTP não possuem variáveis de ambiente para configurar no momento",
422
+ "httpTypeNotice": "Plugins MCP do tipo HTTP não requerem variáveis de ambiente para configuração",
363
423
  "indexUrl": {
364
- "title": "Índice do Mercado",
365
- "tooltip": "Edição online não suportada. Configure através de variáveis de ambiente durante a implantação."
424
+ "title": "Índice do mercado",
425
+ "tooltip": "Edição online não suportada, por favor configure via variável de ambiente durante a implantação"
366
426
  },
367
427
  "messages": {
368
- "connectionUpdateFailed": "Falha ao atualizar as informações de conexão",
428
+ "connectionUpdateFailed": "Falha ao atualizar informações de conexão",
369
429
  "connectionUpdateSuccess": "Informações de conexão atualizadas com sucesso",
370
- "envUpdateFailed": "Falha ao salvar as variáveis de ambiente",
430
+ "envUpdateFailed": "Falha ao salvar variáveis de ambiente",
371
431
  "envUpdateSuccess": "Variáveis de ambiente salvas com sucesso"
372
432
  },
373
- "modalDesc": "Após configurar o endereço do mercado de plugins, você poderá usar um mercado personalizado de plugins.",
433
+ "modalDesc": "Após configurar o endereço do mercado de plugins, você poderá usar mercados personalizados",
374
434
  "rules": {
375
435
  "argsRequired": "Por favor, insira os parâmetros de inicialização",
376
436
  "commandRequired": "Por favor, insira o comando de inicialização",
377
437
  "urlRequired": "Por favor, insira o endereço do serviço"
378
438
  },
379
439
  "saveSettings": "Salvar configurações",
380
- "title": "Configurações do Mercado de Plugins"
440
+ "title": "Configurar mercado de plugins"
381
441
  },
382
- "showInPortal": "Por favor, veja os detalhes na área de trabalho",
442
+ "showInPortal": "Por favor, veja os detalhes no workspace",
383
443
  "store": {
384
444
  "actions": {
385
445
  "cancel": "Cancelar instalação",
386
- "confirmUninstall": "Você está prestes a desinstalar este plugin. A desinstalação irá limpar a configuração do plugin. Confirme a operação.",
446
+ "confirmUninstall": "Este plugin será desinstalado e suas configurações serão removidas, confirme sua ação",
387
447
  "detail": "Detalhes",
388
448
  "install": "Instalar",
389
449
  "manifest": "Editar arquivo de instalação",
390
450
  "settings": "Configurações",
391
451
  "uninstall": "Desinstalar"
392
452
  },
393
- "communityPlugin": "Plugin da Comunidade",
453
+ "communityPlugin": "Comunidade de terceiros",
394
454
  "customPlugin": "Personalizado",
395
455
  "empty": "Nenhum plugin instalado",
396
456
  "emptySelectHint": "Selecione um plugin para visualizar detalhes",
397
- "installAllPlugins": "Instalar todos os plugins",
398
- "networkError": "Falha ao obter a loja de plugins. Verifique a conexão de rede e tente novamente.",
399
- "placeholder": "Pesquisar por nome, descrição ou palavra-chave do plugin...",
400
- "releasedAt": "Lançado em {{createdAt}}",
457
+ "installAllPlugins": "Instalar todos",
458
+ "networkError": "Falha ao obter a loja de plugins, por favor verifique a conexão de rede e tente novamente",
459
+ "placeholder": "Pesquisar nome, descrição ou palavra-chave do plugin...",
460
+ "releasedAt": "Publicado em {{createdAt}}",
401
461
  "tabs": {
402
462
  "installed": "Instalados",
403
- "mcp": "Plugin MCP",
404
- "old": "Plugin LobeChat"
463
+ "mcp": "Plugins MCP",
464
+ "old": "Plugins LobeChat"
405
465
  },
406
- "title": "Loja de Plugins"
466
+ "title": "Loja de plugins"
407
467
  },
408
468
  "unknownError": "Erro desconhecido",
409
469
  "unknownPlugin": "Plugin desconhecido"