@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
@@ -4,12 +4,12 @@
4
4
  "arguments": "Аргументы вызова",
5
5
  "function_call": "Вызов функции",
6
6
  "off": "Отключить отладку",
7
- "on": "Включить отображение информации о вызовах плагинов",
8
- "payload": "полезная нагрузка",
7
+ "on": "Просмотр информации о вызове плагина",
8
+ "payload": "Полезная нагрузка плагина",
9
9
  "pluginState": "Состояние плагина",
10
- "response": "Ответ",
10
+ "response": "Результат",
11
11
  "title": "Детали плагина",
12
- "tool_call": "запрос на вызов инструмента"
12
+ "tool_call": "Запрос вызова инструмента"
13
13
  },
14
14
  "detailModal": {
15
15
  "customPlugin": {
@@ -18,7 +18,7 @@
18
18
  "title": "Это пользовательский плагин"
19
19
  },
20
20
  "emptyState": {
21
- "description": "Пожалуйста, установите этот плагин, чтобы просмотреть его возможности и параметры настройки",
21
+ "description": "Пожалуйста, сначала установите этот плагин, чтобы просмотреть его возможности и параметры настройки",
22
22
  "title": "Просмотр деталей плагина после установки"
23
23
  },
24
24
  "info": {
@@ -26,17 +26,17 @@
26
26
  "name": "Название API"
27
27
  },
28
28
  "tabs": {
29
- "info": "Описание плагина",
30
- "manifest": "Манифест",
29
+ "info": "Возможности плагина",
30
+ "manifest": "Файл установки",
31
31
  "settings": "Настройки"
32
32
  },
33
33
  "title": "Детали плагина"
34
34
  },
35
35
  "dev": {
36
- "confirmDeleteDevPlugin": "Вы собираетесь удалить этот локальный плагин. После удаления его будет невозможно восстановить. Вы уверены, что хотите удалить этот плагин?",
36
+ "confirmDeleteDevPlugin": "Вы собираетесь удалить этот локальный плагин. После удаления его нельзя будет восстановить. Удалить плагин?",
37
37
  "customParams": {
38
38
  "useProxy": {
39
- "label": "Использовать прокси (если есть проблемы с доступом к другому домену, попробуйте включить эту опцию перед повторной установкой)"
39
+ "label": "Установка через прокси (если возникают ошибки доступа из-за CORS, попробуйте включить эту опцию и переустановить)"
40
40
  }
41
41
  },
42
42
  "deleteSuccess": "Плагин успешно удалён",
@@ -48,12 +48,12 @@
48
48
  "mode": {
49
49
  "mcp": "MCP плагин",
50
50
  "mcpExp": "Экспериментальный",
51
- "url": "Ссылка онлайн"
51
+ "url": "Онлайн-ссылка"
52
52
  },
53
53
  "name": {
54
54
  "desc": "Название плагина",
55
- "label": "Название",
56
- "placeholder": "Поиск в поисковике"
55
+ "label": "Заголовок",
56
+ "placeholder": "Поисковая система"
57
57
  }
58
58
  },
59
59
  "mcp": {
@@ -61,19 +61,19 @@
61
61
  "title": "Расширенные настройки"
62
62
  },
63
63
  "args": {
64
- "desc": "Список параметров, передаваемых в команду выполнения, обычно здесь указывается имя сервера MCP или путь к скрипту запуска",
65
- "label": "Параметры команды",
66
- "placeholder": "Например: --port 8080 --debug",
67
- "required": "Пожалуйста, введите параметры запуска"
64
+ "desc": "Список аргументов для команды запуска, обычно здесь указывается имя MCP сервера или путь к скрипту запуска",
65
+ "label": "Аргументы команды",
66
+ "placeholder": "Например: mcp-hello-world",
67
+ "required": "Пожалуйста, введите аргументы запуска"
68
68
  },
69
69
  "auth": {
70
70
  "bear": "API ключ",
71
- "desc": "Выберите способ аутентификации сервера MCP",
71
+ "desc": "Выберите способ аутентификации MCP сервера",
72
72
  "label": "Тип аутентификации",
73
73
  "none": "Аутентификация не требуется",
74
74
  "placeholder": "Пожалуйста, выберите тип аутентификации",
75
75
  "token": {
76
- "desc": "Введите ваш API ключ или токен Bearer",
76
+ "desc": "Введите ваш API ключ или Bearer токен",
77
77
  "label": "API ключ",
78
78
  "placeholder": "sk-xxxxx",
79
79
  "required": "Пожалуйста, введите токен аутентификации"
@@ -83,28 +83,28 @@
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
- "desc": "Введите адрес вашего MCP Streamable HTTP Server",
98
- "label": "URL-адрес MCP Endpoint"
97
+ "desc": "Введите адрес вашего MCP Streamable HTTP сервера",
98
+ "label": "URL MCP Endpoint"
99
99
  },
100
100
  "env": {
101
101
  "add": "Добавить строку",
102
- "desc": "Введите необходимые переменные окружения для вашего сервера MCP",
102
+ "desc": "Введите переменные окружения, необходимые для MCP сервера",
103
103
  "duplicateKeyError": "Ключ поля должен быть уникальным",
104
- "formValidationFailed": "Проверка формы не удалась, проверьте формат параметров",
104
+ "formValidationFailed": "Ошибка проверки формы, пожалуйста, проверьте формат параметров",
105
105
  "keyRequired": "Ключ поля не может быть пустым",
106
- "label": "Переменные окружения сервера MCP",
107
- "stringifyError": "Не удалось сериализовать параметры, проверьте формат параметров"
106
+ "label": "Переменные окружения MCP сервера",
107
+ "stringifyError": "Не удалось сериализовать параметры, проверьте формат"
108
108
  },
109
109
  "headers": {
110
110
  "add": "Добавить строку",
@@ -112,39 +112,39 @@
112
112
  "label": "HTTP заголовки"
113
113
  },
114
114
  "identifier": {
115
- "desc": "Укажите имя для вашего MCP плагина, необходимо использовать английские символы",
116
- "invalid": "Можно вводить только английские буквы, цифры, символы - и _",
115
+ "desc": "Укажите имя для вашего MCP плагина, используйте английские символы",
116
+ "invalid": "Идентификатор может содержать только буквы, цифры, дефисы и подчеркивания",
117
117
  "label": "Имя MCP плагина",
118
118
  "placeholder": "Например: my-mcp-plugin",
119
- "required": "Пожалуйста, введите идентификатор службы MCP"
119
+ "required": "Пожалуйста, введите идентификатор MCP сервиса"
120
120
  },
121
121
  "previewManifest": "Предварительный просмотр файла описания плагина",
122
- "quickImport": "БыстImport JSON конфигурации",
122
+ "quickImport": "Быстрый импорт JSON конфигурации",
123
123
  "quickImportError": {
124
124
  "empty": "Ввод не может быть пустым",
125
- "invalidJson": "Недопустимый формат JSON",
126
- "invalidStructure": "Недопустимая структура JSON"
125
+ "invalidJson": "Неверный формат 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 без дополнительной установки и настройки",
132
+ "desc": "Выберите способ связи MCP плагина, веб-версия поддерживает только Streamable HTTP",
133
+ "httpFeature1": "Совместимость с веб и десктоп версиями",
134
+ "httpFeature2": "Подключение к удалённому MCP серверу без дополнительной установки",
135
135
  "httpShortDesc": "Протокол связи на основе потокового HTTP",
136
136
  "label": "Тип MCP плагина",
137
137
  "stdioFeature1": "Низкая задержка связи, подходит для локального выполнения",
138
- "stdioFeature2": "Необходимо установить и запустить сервер MCP локально",
139
- "stdioNotAvailable": "Режим STDIO доступен только в настольной версии",
138
+ "stdioFeature2": "Требуется локальная установка MCP сервера",
139
+ "stdioNotAvailable": "Режим STDIO доступен только в десктоп версии",
140
140
  "stdioShortDesc": "Протокол связи на основе стандартного ввода-вывода",
141
- "title": "Тип плагина MCP"
141
+ "title": "Тип MCP плагина"
142
142
  },
143
143
  "url": {
144
- "desc": "Введите адрес вашего MCP сервера Streamable HTTP, режим SSE не поддерживается",
145
- "invalid": "Пожалуйста, введите действительный URL-адрес",
146
- "label": "URL-адрес HTTP Endpoint",
147
- "required": "Пожалуйста, введите URL службы MCP"
144
+ "desc": "Введите адрес Streamable HTTP MCP сервера, SSE режим не поддерживается",
145
+ "invalid": "Пожалуйста, введите корректный URL",
146
+ "label": "URL Streamable HTTP Endpoint",
147
+ "required": "Пожалуйста, введите URL MCP сервиса"
148
148
  }
149
149
  },
150
150
  "meta": {
@@ -159,7 +159,7 @@
159
159
  "description": {
160
160
  "desc": "Описание плагина",
161
161
  "label": "Описание",
162
- "placeholder": "Получение информации из поисковика"
162
+ "placeholder": "Поиск информации через поисковую систему"
163
163
  },
164
164
  "formFieldRequired": "Это поле обязательно для заполнения",
165
165
  "homepage": {
@@ -167,111 +167,111 @@
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": "URL манифеста плагина",
179
- "preview": "Предпросмотр манифеста",
177
+ "desc": "{{appName}} установит плагин по этой ссылке",
178
+ "label": "URL файла описания плагина (Manifest)",
179
+ "preview": "Предварительный просмотр Manifest",
180
180
  "refresh": "Обновить"
181
181
  },
182
- "openai": "Плагин OpenAI",
182
+ "openai": "OpenAI плагин",
183
183
  "title": {
184
- "desc": "Название плагина",
185
- "label": "Название",
186
- "placeholder": "Поиск в поисковике"
184
+ "desc": "Заголовок плагина",
185
+ "label": "Заголовок",
186
+ "placeholder": "Поисковая система"
187
187
  }
188
188
  },
189
- "metaConfig": "Настройка метаданных плагина",
190
- "modalDesc": "После добавления пользовательского плагина его можно использовать для тестирования разработки плагина или непосредственно в сессии. См. документацию по разработке <1>здесь↗</>",
189
+ "metaConfig": "Конфигурация метаданных плагина",
190
+ "modalDesc": "После добавления пользовательского плагина его можно использовать для разработки и тестирования, а также напрямую в диалогах. Для разработки плагинов смотрите <1>документацию по разработке↗</>",
191
191
  "openai": {
192
- "importUrl": "Импортировать из URL",
192
+ "importUrl": "Импорт из URL",
193
193
  "schema": "Схема"
194
194
  },
195
195
  "preview": {
196
196
  "api": {
197
197
  "noParams": "У этого инструмента нет параметров",
198
- "noResults": "Не найдены API, соответствующие условиям поиска",
198
+ "noResults": "API, соответствующие условиям поиска, не найдены",
199
199
  "params": "Параметры:",
200
200
  "searchPlaceholder": "Поиск инструмента..."
201
201
  },
202
- "card": "Предпросмотр плагина",
203
- "desc": "Предпросмотр описания плагина",
202
+ "card": "Предварительный просмотр отображения плагина",
203
+ "desc": "Предварительный просмотр описания плагина",
204
204
  "empty": {
205
- "desc": "После завершения конфигурации вы сможете просмотреть возможности поддерживаемых инструментов плагина здесь",
205
+ "desc": "После настройки здесь можно будет просмотреть поддерживаемые возможности плагина",
206
206
  "title": "Начните предварительный просмотр после настройки плагина"
207
207
  },
208
- "title": "Предпросмотр названия плагина"
208
+ "title": "Предварительный просмотр названия плагина"
209
209
  },
210
210
  "save": "Установить плагин",
211
211
  "saveSuccess": "Настройки плагина успешно сохранены",
212
212
  "tabs": {
213
- "manifest": "Описание функций (Манифест)",
214
- "meta": "Метаданные"
213
+ "manifest": "Функциональный манифест (Manifest)",
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
225
  "updateSuccess": "Настройки плагина успешно обновлены"
226
226
  },
227
227
  "error": {
228
- "fetchError": "Не удалось получить доступ к манифесту по указанной ссылке. Проверьте, что ссылка действительна, и доступ к кросс-доменным запросам разрешен",
229
- "installError": "Ошибка при установке плагина {{name}}",
230
- "manifestInvalid": "Манифест не соответствует стандартам, результат проверки: \n\n {{error}}",
231
- "noManifest": "Отсутствует манифест",
232
- "openAPIInvalid": "Ошибка разбора OpenAPI: \n\n {{error}}",
233
- "reinstallError": "Ошибка при обновлении плагина {{name}}",
234
- "testConnectionFailed": "Не удалось получить манифест: {{error}}",
235
- "urlError": "Ссылка не возвращает данные в формате JSON. Проверьте правильность ссылки"
228
+ "fetchError": "Не удалось получить manifest по ссылке, пожалуйста, убедитесь в её корректности и проверьте разрешения CORS",
229
+ "installError": "Ошибка установки плагина {{name}}",
230
+ "manifestInvalid": "Manifest не соответствует стандартам, результат проверки: \n\n {{error}}",
231
+ "noManifest": "Файл описания отсутствует",
232
+ "openAPIInvalid": "Ошибка разбора OpenAPI, ошибка: \n\n {{error}}",
233
+ "reinstallError": "Ошибка обновления плагина {{name}}",
234
+ "testConnectionFailed": "Не удалось получить Manifest: {{error}}",
235
+ "urlError": "По этой ссылке не возвращается содержимое в формате JSON, пожалуйста, убедитесь, что ссылка действительна"
236
236
  },
237
237
  "inspector": {
238
- "args": "Просмотреть список параметров",
239
- "pluginRender": "Просмотреть интерфейс плагина"
238
+ "args": "Просмотр списка параметров",
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": {
254
- "listLocalFiles": "Просмотреть список файлов",
255
- "moveLocalFiles": "Переместить файл",
256
- "readLocalFile": "Читать содержимое файла",
257
- "renameLocalFile": "Переименовать",
254
+ "listLocalFiles": "Просмотр списка файлов",
255
+ "moveLocalFiles": "Перемещение файлов",
256
+ "readLocalFile": "Чтение содержимого файла",
257
+ "renameLocalFile": "Переименование",
258
258
  "searchLocalFiles": "Поиск файлов",
259
- "writeLocalFile": "Записать файл"
259
+ "writeLocalFile": "Запись в файл"
260
260
  },
261
261
  "title": "Локальные файлы"
262
262
  },
263
263
  "mcpInstall": {
264
264
  "CHECKING_INSTALLATION": "Проверка среды установки...",
265
265
  "COMPLETED": "Установка завершена",
266
- "CONFIGURATION_REQUIRED": "Пожалуйста, завершите соответствующую настройку перед продолжением установки",
266
+ "CONFIGURATION_REQUIRED": "Пожалуйста, завершите настройку перед продолжением установки",
267
267
  "ERROR": "Ошибка установки",
268
- "FETCHING_MANIFEST": "Получение описания плагина...",
269
- "GETTING_SERVER_MANIFEST": "Инициализация сервера MCP...",
268
+ "FETCHING_MANIFEST": "Получение файла описания плагина...",
269
+ "GETTING_SERVER_MANIFEST": "Инициализация MCP сервера...",
270
270
  "INSTALLING_PLUGIN": "Установка плагина...",
271
- "configurationDescription": "Для корректной работы этого плагина MCP необходимо настроить параметры. Пожалуйста, заполните необходимые данные конфигурации",
271
+ "configurationDescription": "Для корректной работы MCP плагина необходимо настроить параметры, пожалуйста, заполните обязательные поля",
272
272
  "configurationRequired": "Настройка параметров плагина",
273
273
  "continueInstall": "Продолжить установку",
274
- "dependenciesDescription": "Для корректной работы этого плагина необходимо установить следующие системные зависимости. Пожалуйста, установите отсутствующие зависимости согласно инструкциям, затем нажмите 'Проверить снова' для продолжения установки.",
274
+ "dependenciesDescription": "Для работы этого плагина необходимо установить системные зависимости. Пожалуйста, установите отсутствующие зависимости согласно инструкции, затем нажмите 'Проверить снова' для продолжения установки.",
275
275
  "dependenciesRequired": "Пожалуйста, установите системные зависимости плагина",
276
276
  "dependencyStatus": {
277
277
  "installed": "Установлено",
@@ -283,7 +283,7 @@
283
283
  "command": "Команда",
284
284
  "connectionParams": "Параметры подключения",
285
285
  "env": "Переменные окружения",
286
- "errorOutput": "Журнал ошибок",
286
+ "errorOutput": "Лог ошибок",
287
287
  "exitCode": "Код выхода",
288
288
  "hideDetails": "Скрыть детали",
289
289
  "originalError": "Исходная ошибка",
@@ -297,49 +297,109 @@
297
297
  "UNKNOWN_ERROR": "Неизвестная ошибка",
298
298
  "VALIDATION_ERROR": "Ошибка проверки параметров"
299
299
  },
300
- "installError": "Не удалось установить плагин MCP, причина ошибки: {{detail}}",
300
+ "installError": "Ошибка установки MCP плагина, причина: {{detail}}",
301
301
  "installMethods": {
302
302
  "manual": "Ручная установка:",
303
303
  "recommended": "Рекомендуемый способ установки:"
304
304
  },
305
- "recheckDependencies": "Проверить снова",
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
371
  "crawlMultiPages": "Чтение содержимого нескольких страниц",
312
- "crawlSinglePage": "Читать содержимое страницы",
313
- "search": "Поиск страницы"
372
+ "crawlSinglePage": "Чтение содержимого страницы",
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
384
  "raw": "Исходный текст",
325
- "tooLong": "Содержимое текста слишком длинное, в контексте диалога сохраняются только первые {{characters}} символов, а остальная часть не учитывается в контексте разговора"
385
+ "tooLong": "Текст слишком длинный, в контекст диалога включено только первые {{characters}} символов, остальное не учитывается"
326
386
  },
327
387
  "meta": {
328
- "crawler": "Режим обхода",
388
+ "crawler": "Режим сканирования",
329
389
  "words": "Количество символов"
330
390
  }
331
391
  },
332
392
  "searchxng": {
333
- "baseURL": "Введите",
334
- "description": "Введите URL SearchXNG, чтобы начать поиск в сети",
335
- "keyPlaceholder": "Введите ключ",
393
+ "baseURL": "Пожалуйста, введите",
394
+ "description": "Введите URL SearchXNG для начала сетевого поиска",
395
+ "keyPlaceholder": "Пожалуйста, введите ключ",
336
396
  "title": "Настройка поисковой системы SearchXNG",
337
- "unconfiguredDesc": "Пожалуйста, свяжитесь с администратором для завершения настройки поисковой системы SearchXNG, чтобы начать поиск в сети",
338
- "unconfiguredTitle": "Поисковая система SearchXNG еще не настроена"
397
+ "unconfiguredDesc": "Пожалуйста, обратитесь к администратору для настройки SearchXNG, чтобы начать сетевой поиск",
398
+ "unconfiguredTitle": "SearchXNG не настроен"
339
399
  },
340
- "title": "Поиск в сети"
400
+ "title": "Сетевой поиск"
341
401
  },
342
- "setting": "Настройка плагина",
402
+ "setting": "Настройки плагина",
343
403
  "settings": {
344
404
  "capabilities": {
345
405
  "prompts": "Подсказки",
@@ -348,21 +408,21 @@
348
408
  "tools": "Инструменты"
349
409
  },
350
410
  "configuration": {
351
- "title": "Настройка плагина"
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": "Для HTTP-плагинов MCP в настоящее время нет переменных окружения, требующих настройки",
421
+ "envConfigDescription": "Эти настройки будут переданы как переменные окружения при запуске MCP сервера",
422
+ "httpTypeNotice": "HTTP тип MCP плагина не требует настройки переменных окружения",
363
423
  "indexUrl": {
364
- "title": "Индекс магазина",
365
- "tooltip": "Редактирование в настоящее время недоступно"
424
+ "title": "Индекс рынка",
425
+ "tooltip": "Онлайн-редактирование пока не поддерживается, настройте через переменные окружения при развертывании"
366
426
  },
367
427
  "messages": {
368
428
  "connectionUpdateFailed": "Не удалось обновить информацию о подключении",
@@ -370,38 +430,38 @@
370
430
  "envUpdateFailed": "Не удалось сохранить переменные окружения",
371
431
  "envUpdateSuccess": "Переменные окружения успешно сохранены"
372
432
  },
373
- "modalDesc": "После настройки адреса магазина плагинов можно использовать пользовательский магазин",
433
+ "modalDesc": "После настройки адреса рынка плагинов можно использовать пользовательские рынки плагинов",
374
434
  "rules": {
375
- "argsRequired": "Пожалуйста, введите параметры запуска",
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": "Вы собираетесь удалить этот плагин. После удаления его настройки будут утрачены. Вы уверены, что хотите продолжить?",
387
- "detail": "Подробнее",
446
+ "confirmUninstall": "Вы собираетесь удалить этот плагин, после удаления все его настройки будут удалены. Подтвердите действие.",
447
+ "detail": "Детали",
388
448
  "install": "Установить",
389
- "manifest": "Редактировать манифест",
449
+ "manifest": "Редактировать файл установки",
390
450
  "settings": "Настройки",
391
451
  "uninstall": "Удалить"
392
452
  },
393
- "communityPlugin": "Плагин сообщества",
394
- "customPlugin": "Пользовательский плагин",
395
- "empty": "Плагины не установлены",
453
+ "communityPlugin": "Стороннее сообщество",
454
+ "customPlugin": "Пользовательский",
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
462
  "installed": "Установленные",
403
- "mcp": "Плагин MCP",
404
- "old": "Плагин LobeChat"
463
+ "mcp": "MCP плагины",
464
+ "old": "LobeChat плагины"
405
465
  },
406
466
  "title": "Магазин плагинов"
407
467
  },