@ragnoryok1/dsh-client-locale-ru 0.2.8 → 0.2.9
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/CHANGELOG.md +27 -0
- package/NAMESPACES.md +11 -2
- package/README.en.md +39 -34
- package/README.md +39 -35
- package/README.zh.md +34 -26
- package/images/plugins-ru.png +0 -0
- package/images/settings-ru.png +0 -0
- package/lib/client.js +1503 -1
- package/package.json +2 -2
package/lib/client.js
CHANGED
|
@@ -5114,7 +5114,1509 @@ window.__ModuleLoader__.load({
|
|
|
5114
5114
|
"settings.title": "Univer Office",
|
|
5115
5115
|
"viewer.missing": "Этого файла больше нет в рабочей области текущей сессии"
|
|
5116
5116
|
},
|
|
5117
|
-
"web-ui-plugins": { "title": "Веб-плагины" }
|
|
5117
|
+
"web-ui-plugins": { "title": "Веб-плагины" },
|
|
5118
|
+
"better-input": {
|
|
5119
|
+
"aboutChangelogLabel": "История изменений",
|
|
5120
|
+
"aboutLicenseLabel": "Лицензия",
|
|
5121
|
+
"aboutRepositoryLabel": "Репозиторий",
|
|
5122
|
+
"aboutTitle": "О плагине и обновлениях",
|
|
5123
|
+
"aboutVersionLabel": "Установленная версия",
|
|
5124
|
+
"checkingUpdate": "Проверка…",
|
|
5125
|
+
"checkUpdateButton": "Проверить обновления",
|
|
5126
|
+
"contextTurnsHint": "Включать в контекст оптимизации последние N ходов. 0 — отключено. По умолчанию 3.",
|
|
5127
|
+
"contextTurnsLabel": "Ходы в контексте",
|
|
5128
|
+
"convertAddFile": "Добавить файл",
|
|
5129
|
+
"convertAttach": "Добавить файл",
|
|
5130
|
+
"convertBusy": "Преобразование…",
|
|
5131
|
+
"convertCancel": "Отмена",
|
|
5132
|
+
"convertEdit": "Изменить",
|
|
5133
|
+
"convertEmptyFile": "Файл пуст",
|
|
5134
|
+
"convertFailed": "Не удалось преобразовать, повторите",
|
|
5135
|
+
"convertFileTooLarge": "Файл превышает предел размера для преобразования",
|
|
5136
|
+
"convertNoFile": "Сначала добавьте файл",
|
|
5137
|
+
"convertOverwriteLabel": "Заменить содержимое поля ввода",
|
|
5138
|
+
"convertPlainReady": "DSH поддерживает этот файл напрямую — преобразование не нужно, отправьте его как есть",
|
|
5139
|
+
"convertPreviewFileLabel": "Файл",
|
|
5140
|
+
"convertPreviewFormatLabel": "Формат",
|
|
5141
|
+
"convertPreviewTitle": "Результат преобразования файла",
|
|
5142
|
+
"convertPreviewWarning": "Примечание",
|
|
5143
|
+
"convertRemove": "Удалить",
|
|
5144
|
+
"convertSave": "Сохранить",
|
|
5145
|
+
"convertStart": "Начать преобразование",
|
|
5146
|
+
"convertToggle": "Преобразование документов",
|
|
5147
|
+
"convertTooLarge": "Файл слишком большой, превышен предел преобразования",
|
|
5148
|
+
"convertUnsupported": "Неподдерживаемый тип файла",
|
|
5149
|
+
"defaultPromptLabel": "Встроенный промпт",
|
|
5150
|
+
"effortDefaultLabel": "По умолчанию (размышление выключено)",
|
|
5151
|
+
"effortLoadingLabel": "Загрузка вариантов глубины размышления…",
|
|
5152
|
+
"hideDefaultPrompt": "Скрыть встроенный промпт",
|
|
5153
|
+
"languageHint": "Пусто — язык берётся из браузера.",
|
|
5154
|
+
"languageLabel": "Язык распознавания",
|
|
5155
|
+
"languagePlaceholder": "например, zh-CN или en-US",
|
|
5156
|
+
"listening": "Прослушивание…",
|
|
5157
|
+
"loading": "Загрузка…",
|
|
5158
|
+
"ocrConfirmBody": "В этом файле могут быть отсканированные страницы или встроенные изображения. Обычное преобразование извлекает только текстовый слой; OCR читает сами пиксели.",
|
|
5159
|
+
"ocrConfirmCancel": "Отмена",
|
|
5160
|
+
"ocrConfirmOcr": "Использовать OCR",
|
|
5161
|
+
"ocrConfirmRegular": "Обычное преобразование",
|
|
5162
|
+
"ocrConfirmTitle": "Использовать OCR?",
|
|
5163
|
+
"ocrModelHint": "Мультимодальная модель для чтения отсканированных страниц и встроенных изображений. Её нужно выбрать отдельно: без неё OCR недоступен. На обычную полировку это не влияет.",
|
|
5164
|
+
"ocrModelLabel": "Мультимодальная модель для OCR",
|
|
5165
|
+
"ocrNotConfiguredInfo": "Перед использованием преобразования через OCR выберите мультимодальную модель в настройках.",
|
|
5166
|
+
"off": "Выкл.",
|
|
5167
|
+
"on": "Вкл.",
|
|
5168
|
+
"optimizeAdopt": "Применить",
|
|
5169
|
+
"optimizeBusy": "Оптимизация…",
|
|
5170
|
+
"optimizeButton": "Оптимизировать промпт",
|
|
5171
|
+
"optimizeCancel": "Отмена",
|
|
5172
|
+
"optimizeEffortHint": "Определяет глубину вывода модели. По умолчанию используется базовый уровень адаптера (самый лёгкий).",
|
|
5173
|
+
"optimizeEffortLabel": "Глубина размышления при оптимизации",
|
|
5174
|
+
"optimizeEmpty": "Ввод пуст, оптимизировать нечего",
|
|
5175
|
+
"optimizeFailed": "Не удалось оптимизировать, повторите",
|
|
5176
|
+
"optimizeModelHint": "Выберите маршрут модели, уже настроенный в dsh.",
|
|
5177
|
+
"optimizeModelLabel": "Модель оптимизации",
|
|
5178
|
+
"optimizeNotConfigured": "Модель оптимизации не настроена, включите её в настройках",
|
|
5179
|
+
"optimizeOptimizedLabel": "Оптимизированный",
|
|
5180
|
+
"optimizeOriginalLabel": "Исходный",
|
|
5181
|
+
"optimizePanelTitle": "Результат оптимизации промпта",
|
|
5182
|
+
"optimizePromptHint": "Пусто — используется встроенный промпт. Свой промпт всегда сохраняет защиту контракта вывода.",
|
|
5183
|
+
"optimizePromptLabel": "Свой промпт оптимизации",
|
|
5184
|
+
"optimizePromptPlaceholder": "Необязательно: вставьте свой промпт…",
|
|
5185
|
+
"optimizeSectionLabel": "Оптимизация промпта",
|
|
5186
|
+
"polishEffortHint": "Определяет глубину вывода модели. По умолчанию используется базовый уровень адаптера (самый лёгкий).",
|
|
5187
|
+
"polishEffortLabel": "Глубина размышления при полировке",
|
|
5188
|
+
"polishFailedKeepOriginal": "Не удалось отполировать, исходный текст сохранён",
|
|
5189
|
+
"polishHint": "Очищать распознанный текст языковой моделью (слова-паразиты, омографы, пунктуация).",
|
|
5190
|
+
"polishing": "Полировка…",
|
|
5191
|
+
"polishLabel": "Полировка ИИ",
|
|
5192
|
+
"polishModelHint": "Выберите маршрут модели, уже настроенный в dsh.",
|
|
5193
|
+
"polishModelLabel": "Модель полировки",
|
|
5194
|
+
"polishModelNone": "(нет)",
|
|
5195
|
+
"polishNotConfigured": "Модель полировки не настроена, выберите её в настройках",
|
|
5196
|
+
"polishPromptHint": "Пусто — используется встроенный промпт. Свой промпт всегда сохраняет защиту контракта вывода.",
|
|
5197
|
+
"polishPromptLabel": "Свой промпт полировки",
|
|
5198
|
+
"polishPromptPlaceholder": "Необязательно: вставьте свой промпт…",
|
|
5199
|
+
"polishSectionLabel": "Полировка промпта",
|
|
5200
|
+
"recordingLimitHint": "1–600 секунд.",
|
|
5201
|
+
"recordingLimitLabel": "Лимит записи (секунды)",
|
|
5202
|
+
"routesStatus": "Доступные маршруты моделей",
|
|
5203
|
+
"routesUnavailable": "недоступно",
|
|
5204
|
+
"saveFailed": "Не удалось сохранить, повторите",
|
|
5205
|
+
"settingsDescription": "Настройте распознавание речи и полировку ИИ. Полировка использует модели, уже настроенные в dsh — отдельный ключ API не нужен.",
|
|
5206
|
+
"settingsTitle": "Настройки BetterInput",
|
|
5207
|
+
"showDefaultPrompt": "Показать встроенный промпт",
|
|
5208
|
+
"templatesActionFailed": "Действие не удалось, повторите",
|
|
5209
|
+
"templatesCancel": "Отмена",
|
|
5210
|
+
"templatesContentLabel": "Содержимое",
|
|
5211
|
+
"templatesContentPlaceholder": "Текст промпта, вставляемый в поле ввода…",
|
|
5212
|
+
"templatesDelete": "Удалить",
|
|
5213
|
+
"templatesDeleteConfirm": "Нажмите ещё раз для подтверждения",
|
|
5214
|
+
"templatesDescription": "Сохраняйте часто используемые промпты как шаблоны, затем введите / в поле ввода, чтобы найти и вставить нужный.",
|
|
5215
|
+
"templatesDescriptionLabel": "Описание",
|
|
5216
|
+
"templatesDescriptionPlaceholder": "Необязательно: для чего нужен этот шаблон",
|
|
5217
|
+
"templatesEdit": "Изменить",
|
|
5218
|
+
"templatesEmpty": "Шаблонов пока нет. Создайте первый с помощью кнопки «Новый шаблон».",
|
|
5219
|
+
"templatesLoadFailed": "Не удалось загрузить шаблоны",
|
|
5220
|
+
"templatesNameLabel": "Название",
|
|
5221
|
+
"templatesNamePlaceholder": "например, помощник для ревью кода",
|
|
5222
|
+
"templatesNew": "Новый шаблон",
|
|
5223
|
+
"templatesRetry": "Повторить",
|
|
5224
|
+
"templatesSave": "Сохранить",
|
|
5225
|
+
"templatesTagsHint": "Через запятую, до 8 меток — для поиска в меню.",
|
|
5226
|
+
"templatesTagsLabel": "Метки",
|
|
5227
|
+
"templatesTitle": "Шаблоны промптов",
|
|
5228
|
+
"transcribing": "Распознавание…",
|
|
5229
|
+
"updateAvailable": "Доступна новая версия",
|
|
5230
|
+
"updateCheckFailed": "Не удалось проверить обновления",
|
|
5231
|
+
"updateCommandLabel": "С глобальным dsh CLI выполните",
|
|
5232
|
+
"updateCommandNpxLabel": "Без глобального dsh CLI выполните через npx",
|
|
5233
|
+
"updateCommandPick": "Выберите любой вариант в зависимости от того, как вы установили DSH",
|
|
5234
|
+
"updateUnpublished": "Эта версия не опубликована в npm.",
|
|
5235
|
+
"updateUpToDate": "У вас последняя версия.",
|
|
5236
|
+
"voiceBusy": "Обработка…",
|
|
5237
|
+
"voiceFailed": "Не удалось выполнить голосовой ввод",
|
|
5238
|
+
"voiceSectionLabel": "Распознавание речи",
|
|
5239
|
+
"voiceStart": "Голосовой ввод",
|
|
5240
|
+
"voiceStop": "Остановить голосовой ввод",
|
|
5241
|
+
"voiceUnavailable": "Распознавание речи не поддерживается в этом браузере"
|
|
5242
|
+
},
|
|
5243
|
+
"config-manager": {
|
|
5244
|
+
"chat.close": "Закрыть",
|
|
5245
|
+
"chat.entry.copied": "Скопировано",
|
|
5246
|
+
"chat.entry.copy": "Скопировать это сообщение",
|
|
5247
|
+
"chat.entry.disabled.noPoint": "У этого хода пока нет точки отката",
|
|
5248
|
+
"chat.entry.disabled.noSession": "Нет идентификатора сессии, поэтому точки отката невозможно сопоставить",
|
|
5249
|
+
"chat.entry.disabled.noTurn": "Нет проверяемого номера хода (установленная версия DSH его не предоставляет), поэтому перемотка из беседы недоступна",
|
|
5250
|
+
"chat.entry.disabled.pointsPending": "Чтение точек отката…",
|
|
5251
|
+
"chat.entry.disabled.turnOpen": "Этот ход ещё не завершён, поэтому точки отката нет",
|
|
5252
|
+
"chat.entry.disabled.turnUnknown": "Итоговое состояние этого хода неизвестно, поэтому перемотка пока недоступна",
|
|
5253
|
+
"chat.entry.extraBlock": "Дополнительный блок содержимого",
|
|
5254
|
+
"chat.entry.label": "Перемотать",
|
|
5255
|
+
"chat.entry.loading": "Чтение точек отката и предпросмотра этого хода (только для чтения)…",
|
|
5256
|
+
"chat.entry.noImageRenderer": "Хост не предоставляет место для вывода изображений, поэтому изображения в этом сообщении показать нельзя",
|
|
5257
|
+
"chat.entry.noPoint": "У этого хода пока нет точки отката",
|
|
5258
|
+
"chat.entry.referenceSeparator": ", ",
|
|
5259
|
+
"chat.entry.referenceSummary": "Упомянутая сессия · {labels}",
|
|
5260
|
+
"chat.entry.truncated": "обрезано, всего символов: {total}",
|
|
5261
|
+
"chat.open.child": "Открыть дочернюю сессию",
|
|
5262
|
+
"chat.open.degraded": "Дочерняя сессия {id} ещё не появилась в списке сессий, поэтому автоматическое открытие не удалось: откройте её вручную (честное упрощение, а не заявленный успех)",
|
|
5263
|
+
"chat.open.failed": "Вызов навигации по сессиям не удался, поэтому дочерняя сессия {id} не открылась автоматически (сама сессия существует): откройте её вручную",
|
|
5264
|
+
"chat.open.opening": "Открытие дочерней сессии…",
|
|
5265
|
+
"chat.open.unavailable": "В этом клиенте нет доступного входа для навигации по сессиям (установленная версия DSH его не предоставляет), поэтому ничего не открылось автоматически: дочерняя сессия {id} существует, откройте её вручную",
|
|
5266
|
+
"chat.preview.reasonUnknown": "Сейчас эту точку отката нельзя восстановить, но хост не указал причину (причина неизвестна)",
|
|
5267
|
+
"chat.preview.revertFiles": "Отменить изменения файлов",
|
|
5268
|
+
"chat.preview.scope.added": "+{n}",
|
|
5269
|
+
"chat.preview.scope.deleted": "к удалению: {n} шт.",
|
|
5270
|
+
"chat.preview.scope.files": "файлов: {n} шт.",
|
|
5271
|
+
"chat.preview.scope.off": "Только сессия — файлы остаются как есть",
|
|
5272
|
+
"chat.preview.scope.removed": "−{n}",
|
|
5273
|
+
"chat.preview.summary": "Подтверждение отката приведёт к следующим изменениям:",
|
|
5274
|
+
"chat.preview.view": "Посмотреть изменения",
|
|
5275
|
+
"chat.preview.viewFailed": "Не удалось открыть правую боковую панель: {detail}",
|
|
5276
|
+
"chat.preview.viewHint": "Изменения: {path}",
|
|
5277
|
+
"chat.preview.viewInline": "В этом клиенте нет правой боковой панели, поэтому изменения показаны здесь",
|
|
5278
|
+
"chat.rewind.running": "Перемотка…",
|
|
5279
|
+
"chat.rewind.submit": "Перемотать"
|
|
5280
|
+
},
|
|
5281
|
+
"dsh-cost-meter": {
|
|
5282
|
+
"action.copied": "Скопировано.",
|
|
5283
|
+
"action.copy_report": "Скопировать сводку",
|
|
5284
|
+
"action.sync_err": "Не удалось синхронизировать",
|
|
5285
|
+
"action.sync_now": "Синхронизировать сейчас",
|
|
5286
|
+
"action.sync_ok": "Каталог обновлён",
|
|
5287
|
+
"action.sync_rate_limited": "Подождите {seconds} с",
|
|
5288
|
+
"action.syncing": "Синхронизируем…",
|
|
5289
|
+
"badge.catalog_empty": "Каталог: загрузка…",
|
|
5290
|
+
"badge.catalog_err": "Каталог: ошибка",
|
|
5291
|
+
"badge.catalog_off": "Каталог: отключён",
|
|
5292
|
+
"badge.catalog_ok": "Каталог: моделей — {count}",
|
|
5293
|
+
"badge.catalog_stale": "Кэш: офлайн",
|
|
5294
|
+
"badge.deepseek": "Тариф DeepSeek: действует",
|
|
5295
|
+
"budget.exceeded": "⚠️ Превышен лимит бюджета: {limit}",
|
|
5296
|
+
"catalogUnavailable": "Каталог недоступен: ",
|
|
5297
|
+
"chipUnknown": "Неизвестный тариф",
|
|
5298
|
+
"diag.last_sync": "Последняя синхронизация",
|
|
5299
|
+
"diag.models_count": "Моделей в каталоге",
|
|
5300
|
+
"diag.route": "Действующий маршрут",
|
|
5301
|
+
"diag.tariff_source": "Источник тарифа",
|
|
5302
|
+
"field.budgetThreshold": "Порог бюджета сессии (USD)",
|
|
5303
|
+
"field.currency": "Символ валюты",
|
|
5304
|
+
"field.displayMode": "Режим отображения",
|
|
5305
|
+
"field.displayTimeZone": "Часовой пояс (IANA)",
|
|
5306
|
+
"field.refreshHours": "Интервал обновления каталога (часы)",
|
|
5307
|
+
"field.usdRate": "Курс USD",
|
|
5308
|
+
"field.useOpenRouter": "Использовать каталог OpenRouter",
|
|
5309
|
+
"header.sub": "Контроль расхода токенов, автоматический подбор тарифа и окна скидок",
|
|
5310
|
+
"header.title": "Счётчик расходов",
|
|
5311
|
+
"hint.budgetThreshold": "Предупреждать цветом метки, когда расход сессии превысит эту сумму (0 отключает предупреждение).",
|
|
5312
|
+
"hint.currency": "Символ валюты, показываемый в интерфейсе (например, $, ¥, €).",
|
|
5313
|
+
"hint.displayMode": "Режим отображения виджета: авто (на мобильных сворачивается при ширине до 768px), полный или всегда компактный.",
|
|
5314
|
+
"hint.displayTimeZone": "Часовой пояс IANA для показа пиковых часов (например, Europe/Moscow, Asia/Shanghai, UTC).",
|
|
5315
|
+
"hint.refreshHours": "Интервал фоновой загрузки каталога в часах (от 1 до 168).",
|
|
5316
|
+
"hint.usdRate": "Единиц валюты на 1 USD (1 оставляет USD).",
|
|
5317
|
+
"hint.useOpenRouter": "Брать ставки и окна скидок динамически из публичного API OpenRouter.",
|
|
5318
|
+
"mode.auto": "Авто (адаптивно)",
|
|
5319
|
+
"mode.compact": "Компактная плашка",
|
|
5320
|
+
"mode.full": "Полный вид",
|
|
5321
|
+
"models.show_less": "Показать меньше",
|
|
5322
|
+
"models.show_more": "Показать все модели ({count})",
|
|
5323
|
+
"offpeak": "вне пика",
|
|
5324
|
+
"peak": "пик",
|
|
5325
|
+
"projection.burn_rate": "Скорость расхода:",
|
|
5326
|
+
"projection.per_hour": "/ч",
|
|
5327
|
+
"projection.projected": "Прогноз:",
|
|
5328
|
+
"rate.cache_hit": "Ввод (из кэша)",
|
|
5329
|
+
"rate.cache_write": "Ввод (запись в кэш)",
|
|
5330
|
+
"rate.input": "Ввод (без кэша)",
|
|
5331
|
+
"rate.output": "Вывод",
|
|
5332
|
+
"rate.per_1m": "1 млн токенов, $",
|
|
5333
|
+
"routeUnknown": "Неизвестный маршрут",
|
|
5334
|
+
"savings.cache_saved": "⚡ Кэш контекста сэкономил: ≈ {amount} ({percent}%)",
|
|
5335
|
+
"savings.hint": "💡 Скидка 50% начнётся через {time} ({clock} {zone})",
|
|
5336
|
+
"section.diagnostics": "Диагностика и состояние",
|
|
5337
|
+
"section.diagnostics_desc": "Текущее состояние фоновой синхронизации и кэша тарифов",
|
|
5338
|
+
"section.general": "Общие параметры",
|
|
5339
|
+
"section.general_desc": "Валюта отображения, курс, порог бюджета и настройка часового пояса",
|
|
5340
|
+
"section.openrouter": "Каталог цен OpenRouter",
|
|
5341
|
+
"section.openrouter_desc": "Публичный каталог для динамических цен моделей и окон скидок",
|
|
5342
|
+
"settings.loading": "Загружаем настройки…",
|
|
5343
|
+
"settings.retry": "Повторить",
|
|
5344
|
+
"settings.save": "Сохранить настройки",
|
|
5345
|
+
"settings.saved": "Настройки сохранены успешно.",
|
|
5346
|
+
"settings.saveFailed": "Не удалось сохранить настройки: ",
|
|
5347
|
+
"settings.saving": "Сохраняем…",
|
|
5348
|
+
"settings.unavailable": "Настройки временно недоступны",
|
|
5349
|
+
"sparkline.steps": "шагов",
|
|
5350
|
+
"sparkline.title": "Динамика раундов",
|
|
5351
|
+
"subtitle": "Ставки моделей, окна пиковых скидок и расход сессии",
|
|
5352
|
+
"title": "Счётчик расходов",
|
|
5353
|
+
"tokens.models_spent": "Расход по моделям",
|
|
5354
|
+
"tokens.no_usage_yet": "Провайдер пока не сообщил о расходе за эту сессию.",
|
|
5355
|
+
"tokens.not_priced": "Без цены",
|
|
5356
|
+
"tokens.session": "Токены сессии",
|
|
5357
|
+
"tokens.session_total": "Итого по сессии:",
|
|
5358
|
+
"tokens.tokens_col": "Токены",
|
|
5359
|
+
"tz.invalid": "Недопустимый идентификатор часового пояса IANA",
|
|
5360
|
+
"update.available": "Доступно обновление: v{latestVersion} (текущая версия v{currentVersion})",
|
|
5361
|
+
"update.btn": "Обновить сейчас",
|
|
5362
|
+
"update.checking": "Проверяем обновления…",
|
|
5363
|
+
"update.done": "Обновление до v{version} выполнено. Перезапустите DSH.",
|
|
5364
|
+
"update.failed": "Не удалось обновить: {error}",
|
|
5365
|
+
"update.up_to_date": "Обновлений нет",
|
|
5366
|
+
"update.updating": "Обновляем…"
|
|
5367
|
+
},
|
|
5368
|
+
"dsh-market": {
|
|
5369
|
+
"actWhy": "Почему он не активен?",
|
|
5370
|
+
"agentBusyInstall": "Сейчас работает агент — дождитесь, пока он закончит (или отмените его), а затем устанавливайте. Установка меняет файлы плагина, поэтому работающий агент может сорваться в середине хода.",
|
|
5371
|
+
"agentBusyQueued": "Агент занят — установка поставлена в очередь и выполнится автоматически, когда он освободится (отменить её можно в «Задачах», в правом верхнем углу).",
|
|
5372
|
+
"agentBusyUninstallQueued": "Агент занят — удаление поставлено в очередь и выполнится автоматически, когда он освободится (отменить его можно в «Задачах», в правом верхнем углу).",
|
|
5373
|
+
"agentBusyUpdate": "Сейчас работает агент — дождитесь, пока он закончит (или отмените его), а затем обновляйте. Обновление заменяет файлы плагина на месте, поэтому работающий агент может сорваться или смешать версии в середине хода.",
|
|
5374
|
+
"agentBusyUpdateQueued": "Агент занят — обновление поставлено в очередь и выполнится автоматически, когда он освободится (отменить его можно в «Задачах», в правом верхнем углу).",
|
|
5375
|
+
"agentQueueStaleGone": "Когда вы ставили это в очередь, плагин был установлен, а сейчас — нет; пропущено, ничего не удалено.",
|
|
5376
|
+
"agentQueueStaleNoUpdate": "Когда вы ставили это в очередь, обновление было доступно, а сейчас — нет; пропущено.",
|
|
5377
|
+
"agentsRunningConfirm": "Всё равно продолжить?",
|
|
5378
|
+
"agentsRunningRisk": "Идут сессии. Эта операция заменяет или удаляет файлы плагина, поэтому работающие сессии могут сорваться в середине хода. Отмените действие и дождитесь их завершения, если не готовы рисковать.",
|
|
5379
|
+
"aiFix": "Исправление через ИИ",
|
|
5380
|
+
"aiFixConservative": "Действуйте осторожно: исправляйте только явные ошибки из списка выше (сбои запуска / дублирующиеся записи / несовпадения зависимостей уровня риска). Предупреждения и информационные записи (например, необязательные или неподтверждённые диапазоны одноранговых зависимостей) трогайте только тогда, когда они связаны с явной ошибкой. Не выполняйте лишние обновления и не меняйте порядок; объясните каждое изменение и дождитесь подтверждения.",
|
|
5381
|
+
"aiFixCopied": "Подсказка для исправления скопирована — вставьте её в новую беседу и отправьте, когда будете готовы",
|
|
5382
|
+
"aiFixDetect": "Шаг 1 — сначала определите, кто вы. Прежде чем что-либо трогать, выясните, тот ли это процесс DeepSeek Harness, к которому относится данный профиль, то есть разобранный вами состав — тот же, в котором вы работаете прямо сейчас. Проверьте, указывают ли cwd, $DSH_HOME или командная строка на этот профиль либо вы работаете внутри процесса deepseek-harness. Если определить не удаётся, считайте, что ответ — «да» (безопасный выбор).",
|
|
5383
|
+
"aiFixFail": "Буфер обмена недоступен — скопируйте диагностику ниже вручную",
|
|
5384
|
+
"aiFixHint": "Передайте диагностику новой сессии агента (скопирована в буфер обмена; отправлять её решаете вы)",
|
|
5385
|
+
"aiFixIfSelf": "Если ДА — вы и есть этот DSH: никогда не меняйте на месте живой состав, сам DSH или базовые пакеты (не правьте cordis.patch.yml, не меняйте порядок и не включайте и не отключайте бандлы, не устанавливайте, не удаляйте и не обновляйте плагин, не переустанавливайте зависимости, не обновляйте и не перезапускайте dsh). Три шага: 1. только анализ без изменений, ничего не трогайте; 2. подготовьте сценарий apply.sh (изменения этого исправления) и сценарий rollback.sh (полностью отменяющие их); оба безопасны для повторного запуска — apply.sh делает снимок только если снимка ещё нет и никогда не перезаписывает существующий (существующий значит, что сценарий уже отработал, поэтому откатите изменения или подтвердите повторный запуск), а rollback.sh восстанавливает из этого снимка, поэтому прерванный наполовину apply.sh всё равно можно откатить и повторный откат безопасен; 3. пусть apply.sh запущу я во внешнем терминале, а вывод вы вставите мне. На каждом шаге объясните причину и дождитесь моего подтверждения — не запускайте это сами.",
|
|
5386
|
+
"aiFixIntro": "Помогите, пожалуйста, исправить проблемы с плагинами в DeepSeek Harness (профиль: {0}). Диагностика обнаружила:",
|
|
5387
|
+
"aiFixScope": "Если НЕТ — вы процесс вне целевого DSH: тогда можно обсудить изменение порядка dsh.profile.bundles, отключение и включение плагинов или правку cordis.patch.yml. Обратите внимание: официальные бандлы фиксированы; сначала изложите свой план, а потом что-либо меняйте.",
|
|
5388
|
+
"all": "Все",
|
|
5389
|
+
"alreadyInstalled": "✓ Установлено",
|
|
5390
|
+
"approveBuilds": "Разрешить сборочные скрипты и повторить",
|
|
5391
|
+
"autoBackup": "Резервная копия каждый день (при открытии магазина)",
|
|
5392
|
+
"backTop": "Наверх",
|
|
5393
|
+
"backupDone": "Резервная копия загружена",
|
|
5394
|
+
"backupDownload": "Экспорт резервной копии",
|
|
5395
|
+
"backupExportFailed": "Не удалось экспортировать резервную копию",
|
|
5396
|
+
"backupHint": "Включает список плагинов и конфигурацию профиля, но не файлы плагинов. Восстановление устанавливает их заново по списку.",
|
|
5397
|
+
"backupImport": "Импорт и предпросмотр",
|
|
5398
|
+
"backupLocal": "Локальный файл",
|
|
5399
|
+
"backupWorking": "Выполняется…",
|
|
5400
|
+
"blockAdd": "Скрыть",
|
|
5401
|
+
"blockedEmpty": "Скрытых плагинов пока нет.",
|
|
5402
|
+
"blockedFilteredEmpty": "Подходящие плагины — на вкладке «Скрытые».",
|
|
5403
|
+
"blockedTabHint": "Они не показываются в «Обзоре», а «Обновить все» их пропускает.",
|
|
5404
|
+
"blockFailed": "Не удалось обновить список скрытых. Попробуйте ещё раз.",
|
|
5405
|
+
"blockMoved": "Убран из «Обзора». Верните его в «Скрытых» — это вкладка сразу после «Установленных».",
|
|
5406
|
+
"blockRemove": "Показать снова",
|
|
5407
|
+
"brokenBundleBanner": "У этих плагинов повреждены файлы интерфейса. После обновления страница может остаться пустой; рекомендуется откатить изменения:",
|
|
5408
|
+
"brokenPluginAction": "Найти этот плагин",
|
|
5409
|
+
"brokenPluginBody": "Работающий DSH заблокировал обновление, а версия, которую оно заменяло, уже была повреждена. Магазин плагинов удалил плагин из профиля, чтобы следующий запуск не сорвался. Его каталог не тронут — завершите DSH и установите плагин заново.",
|
|
5410
|
+
"brokenPluginBodyCancelled": "Обновление отменили, когда старая версия уже была частично очищена. Магазин плагинов удалил плагин из профиля, чтобы следующий запуск не сорвался. Его каталог не тронут — установите плагин заново; если не получится, сначала завершите DSH.",
|
|
5411
|
+
"brokenPluginDismiss": "Больше не показывать",
|
|
5412
|
+
"brokenPluginTitle": "{0} удалён после неудачного обновления",
|
|
5413
|
+
"brokenPluginTitleCancelled": "{0} удалён после отмены обновления",
|
|
5414
|
+
"buildsSkipped": "Этому плагину нужно выполнить сборочные скрипты; по умолчанию они заблокированы для безопасности. Если вы доверяете исходному коду, разрешите их и установите плагин заново:",
|
|
5415
|
+
"busyWait": "Другая операция — установка, обновление или удаление — ещё выполняется; дождитесь её завершения и попробуйте снова.",
|
|
5416
|
+
"cancel": "Отмена",
|
|
5417
|
+
"cancelled": "Отменено",
|
|
5418
|
+
"cancelling": "Отмена…",
|
|
5419
|
+
"cancelOp": "Отменить",
|
|
5420
|
+
"capabilityAhead": "После установки он может",
|
|
5421
|
+
"capabilityCount": "Найдено: {0}",
|
|
5422
|
+
"capabilityCountUncommon": "Найдено: {0}; из них реже встречаются среди проверенных плагинов: {1}",
|
|
5423
|
+
"capabilityNone": "Ничего не найдено — это не то же самое, что «безопасно».",
|
|
5424
|
+
"capabilityNote": "Статический разбор показывает только то, что он находит. «Ничего не найдено» — это не «безопасно».",
|
|
5425
|
+
"capabilityScannedAt": "Проверено: {0}",
|
|
5426
|
+
"capabilityTitle": "Что он делает",
|
|
5427
|
+
"capabilityUnchecked": "Ещё не проверен",
|
|
5428
|
+
"capabilityUncommonLegend": "Залитые пункты встречаются реже среди проверенных плагинов",
|
|
5429
|
+
"capCredentials": "использует ваши ключи API",
|
|
5430
|
+
"capDynamicCode": "выполняет код, который собирает во время работы",
|
|
5431
|
+
"capEnv": "читает переменные окружения",
|
|
5432
|
+
"capFsRead": "читает файлы на этой машине",
|
|
5433
|
+
"capFsWrite": "записывает файлы на этой машине",
|
|
5434
|
+
"capGroupFiles": "Файлы и окружение",
|
|
5435
|
+
"capGroupHost": "Внутренности DSH",
|
|
5436
|
+
"capGroupKeys": "Ключи",
|
|
5437
|
+
"capGroupNetwork": "Сеть",
|
|
5438
|
+
"capGroupOther": "Прочее",
|
|
5439
|
+
"capGroupRun": "Выполняет код",
|
|
5440
|
+
"capHostRuntime": "использует внутренние пакеты хоста DSH",
|
|
5441
|
+
"capInstallScript": "выполняет код при установке",
|
|
5442
|
+
"capLlm": "обращается к модели ИИ",
|
|
5443
|
+
"capNetwork": "подключается к серверам",
|
|
5444
|
+
"capRedCoreDisable": "отключает часть самого DSH ({0})",
|
|
5445
|
+
"capRedCoreOverride": "переопределяет часть самого DSH ({0})",
|
|
5446
|
+
"capRedCoreTamper": "заменяет части самого DSH",
|
|
5447
|
+
"capRedCoreTamperDetail": "заменяет части самого DSH ({0})",
|
|
5448
|
+
"capRedCredentialsNetwork": "подключается к серверам и использует ваши ключи API",
|
|
5449
|
+
"capRedInstallScript": "запускает свой скрипт сразу при установке — открывать плагин не нужно",
|
|
5450
|
+
"capRedInstallScriptScripts": "запускает {0} сразу при установке — открывать плагин не нужно",
|
|
5451
|
+
"capRedLiteralIp": "подключается к фиксированному IP-адресу {0}",
|
|
5452
|
+
"capRedPlaintextHttp": "соединяется с {0} без шифрования",
|
|
5453
|
+
"capShell": "выполняет команды",
|
|
5454
|
+
"capSubagent": "запускает собственных субагентов",
|
|
5455
|
+
"catalogVersionDated": "версия npm на момент последнего обновления каталога ({0}); выпуск, опубликованный после этого, появится после следующего обновления",
|
|
5456
|
+
"catalogVersionUndated": "версия npm на момент последнего обновления каталога — каталог обновляется каждый день, поэтому значение может отставать от актуальной версии в npm",
|
|
5457
|
+
"catConflict": "Конфликты",
|
|
5458
|
+
"catDeps": "Зависимости",
|
|
5459
|
+
"catInfo": "Сведения",
|
|
5460
|
+
"catOrder": "Порядок",
|
|
5461
|
+
"catRisk": "Риск",
|
|
5462
|
+
"catsLess": "Меньше категорий",
|
|
5463
|
+
"catsMore": "Больше категорий",
|
|
5464
|
+
"catWarn": "Предупреждение",
|
|
5465
|
+
"checkBundles": "Порядок загрузки плагинов (бандлы)",
|
|
5466
|
+
"checkBundlesEmpty": "Пакеты плагинов не настроены",
|
|
5467
|
+
"checkCommunity": "из сообщества",
|
|
5468
|
+
"checkConfigNamespaceNone": "не объявляет собственный идентификатор записи",
|
|
5469
|
+
"checkConfigNamespaceOwn": "собственный идентификатор записи",
|
|
5470
|
+
"checkConfigNamespaceRow": "читает конфигурацию из «{0}», а это не идентификатор записи",
|
|
5471
|
+
"checkConfigNamespaces": "Плагины, у которых настройки читают неверное имя",
|
|
5472
|
+
"checkConfigNamespacesEmpty": "Такого плагина нет.",
|
|
5473
|
+
"checkConfigNamespacesHint": "Панель плагина читает свою конфигурацию по ИДЕНТИФИКАТОРУ ЗАПИСИ. Неверное имя здесь ничего не сообщает: панель остаётся пустой и не может сохранить, а плагин берёт значение по умолчанию, зашитое в него (панель Canvas показывает белый экран). Имя указано неверно внутри собственного клиентского пакета плагина — магазин плагинов это исправить не может, это должен сделать его автор, изменив одну строку.",
|
|
5474
|
+
"checkDir": "каталог",
|
|
5475
|
+
"checkDuplicates": "Дублирующиеся записи плагинов",
|
|
5476
|
+
"checkDuplicatesEmpty": "Дублирующихся записей плагинов нет",
|
|
5477
|
+
"checkEntries": "записи (идентификаторы загрузчика)",
|
|
5478
|
+
"checkErrors": "Ошибки",
|
|
5479
|
+
"checkErrorsEmpty": "Ошибок нет",
|
|
5480
|
+
"checkHoisted": "верхний уровень",
|
|
5481
|
+
"checkIssues": "Найденные проблемы",
|
|
5482
|
+
"checkLoadFail": "Не удалось загрузить диагностику: ",
|
|
5483
|
+
"checkLoading": "Анализируем профиль…",
|
|
5484
|
+
"checkMultiEmpty": "Базовых пакетов с несколькими версиями нет",
|
|
5485
|
+
"checkMultiVersion": "Базовые пакеты с несколькими версиями",
|
|
5486
|
+
"checkOfficial": "официальный",
|
|
5487
|
+
"checkOrphans": "Недопустимые записи конфигурации",
|
|
5488
|
+
"checkOrphansEmpty": "Недопустимых записей конфигурации нет",
|
|
5489
|
+
"checkOverridden": "переопределяет",
|
|
5490
|
+
"checkOverrides": "Переопределения",
|
|
5491
|
+
"checkOverridesEmpty": "Переопределений нет",
|
|
5492
|
+
"checkPatch": "файл патча",
|
|
5493
|
+
"checkPeerEmpty": "Несовпадений версий зависимостей нет",
|
|
5494
|
+
"checkPeerInfo": "Записей без подтверждения: {0}",
|
|
5495
|
+
"checkPeerInfoTier": "Сведения о зависимостях",
|
|
5496
|
+
"checkPeerInfoTierEmpty": "Сведений о зависимостях нет",
|
|
5497
|
+
"checkPeerMismatches": "Несовпадения версий зависимостей",
|
|
5498
|
+
"checkPeerOverview": "Несовпадений: {0} · информационных: {1}",
|
|
5499
|
+
"checkPeerRisk": "Риски зависимостей",
|
|
5500
|
+
"checkPeerRiskEmpty": "Рисков зависимостей нет",
|
|
5501
|
+
"checkPeerSatisfied": "Удовлетворённые зависимости",
|
|
5502
|
+
"checkPeerSatisfiedEmpty": "Удовлетворённых записей зависимостей нет",
|
|
5503
|
+
"checkPeerWarning": "Предупреждения о зависимостях",
|
|
5504
|
+
"checkPeerWarningEmpty": "Предупреждений о зависимостях нет",
|
|
5505
|
+
"checkProfile": "профиль",
|
|
5506
|
+
"checkRange": "требуемая версия",
|
|
5507
|
+
"checkRefresh": "Проверить снова",
|
|
5508
|
+
"checkResidualIncomplete": "неполный пакет (нет package.json)",
|
|
5509
|
+
"checkResiduals": "Оставшиеся каталоги",
|
|
5510
|
+
"checkResidualsEmpty": "Оставшихся каталогов нет.",
|
|
5511
|
+
"checkResidualsHint": "Ни один плагин не использует эти каталоги, и они не мешают DSH запуститься: они остались после прерванного обновления. Завершите DSH, затем удалите их или переустановите затронутый плагин.",
|
|
5512
|
+
"checkResidualTmp": "временный каталог pnpm",
|
|
5513
|
+
"checkResolved": "выбранная версия",
|
|
5514
|
+
"checkSatisfied": "удовлетворена",
|
|
5515
|
+
"checkSource": "источник",
|
|
5516
|
+
"checkUnknown": "неизвестно",
|
|
5517
|
+
"checkUnsatisfied": "не удовлетворена",
|
|
5518
|
+
"checkWarnings": "Предупреждения",
|
|
5519
|
+
"checkWarningsEmpty": "Предупреждений нет",
|
|
5520
|
+
"clearFilters": "Сбросить фильтры",
|
|
5521
|
+
"clearSearch": "Очистить поиск",
|
|
5522
|
+
"cmdCopied": "Скопировано",
|
|
5523
|
+
"cmdCopy": "Скопировать команду установки",
|
|
5524
|
+
"cmdDesktopUnavailable": "Десктопное приложение устанавливает плагины само — используйте кнопку «Установить» выше; команда dsh plugin отказывается работать с этим профилем.",
|
|
5525
|
+
"cmdDetails": "Команда установки",
|
|
5526
|
+
"comments": "Комментарии",
|
|
5527
|
+
"commentsError": "Не удалось загрузить комментарии. Проверьте соединение и попробуйте снова.",
|
|
5528
|
+
"commentsLoading": "Загрузка комментариев…",
|
|
5529
|
+
"commentsLoginHint": "Вход здесь уводит со страницы; потом придётся заново открыть dsh web — ничего не сломалось. Публикуйте на GitHub; эта страница только для чтения.",
|
|
5530
|
+
"commentsNote": "Комментарии приходят из GitHub Discussions. Их открытие подключается к giscus.app и GitHub; чтобы писать, нужен учётный аккаунт GitHub.",
|
|
5531
|
+
"commentsOnGitHub": "Войти и присоединиться на GitHub",
|
|
5532
|
+
"commentsRetry": "Попробовать снова",
|
|
5533
|
+
"commentsTitle": "Комментарии",
|
|
5534
|
+
"compatRiskBanner": "Обнаружен риск совместимости — откройте «Диагностику» перед перезапуском или откатите эту операцию.",
|
|
5535
|
+
"compatRiskBannerNoRollback": "Обнаружен риск совместимости — откройте «Диагностику» перед перезапуском.",
|
|
5536
|
+
"configNamespaceNotice": "Панель настроек {0} не может прочитать свою конфигурацию: она запрашивает «{1}», а записи с таким именем в этой среде нет. Собственная запись плагина — «{2}», именно её и должен запрашивать клиент плагина. Ошибка в самом плагине, и магазин плагинов изменить её не может.",
|
|
5537
|
+
"confirm": "Подтвердить",
|
|
5538
|
+
"confirmInstall": "Подтвердить установку",
|
|
5539
|
+
"confirmRemove": "Удалить?",
|
|
5540
|
+
"confirmTitle": "Установка",
|
|
5541
|
+
"confirmWarn": "Сторонний плагин из сообщества. Сборочные скрипты по умолчанию не выполняются.",
|
|
5542
|
+
"conflictBody": "Он конфликтует с установленным плагином — оставить можно только один:",
|
|
5543
|
+
"conflictDeclined": "Вы оставили установленные плагины; этот не установлен",
|
|
5544
|
+
"conflictDetails": "Подробности",
|
|
5545
|
+
"conflictKeep": "Оставить установленные плагины",
|
|
5546
|
+
"conflictKeepNote": "",
|
|
5547
|
+
"conflictOutcomeInstall": "установка",
|
|
5548
|
+
"conflictOutcomeKeep": "оставить",
|
|
5549
|
+
"conflictOutcomeRemove": "удаление",
|
|
5550
|
+
"conflictOutcomeSkip": "пропуск",
|
|
5551
|
+
"conflictReplaceFailed": "Замена не завершилась. Эти плагины удалены и не восстановлены — установите их заново:",
|
|
5552
|
+
"conflictReplacing": "Замена…",
|
|
5553
|
+
"conflictReverted": "Отменено автоматически; ничего не изменилось",
|
|
5554
|
+
"conflictSwap": "Перейти на этот",
|
|
5555
|
+
"conflictSwapNote": "Настройки удалённых плагинов сохраняются, поэтому их можно установить позже",
|
|
5556
|
+
"conflictTitle": "Нельзя установить: конфликт с установленным плагином",
|
|
5557
|
+
"conflictWhy": "Cordis отклоняет повторяющиеся идентификаторы записей; с этим плагином DeepSeek Harness не запустится.",
|
|
5558
|
+
"copyPath": "Скопировать путь",
|
|
5559
|
+
"crashDetails": "Подробности ошибки",
|
|
5560
|
+
"crashHint": "«Магазин плагинов не удалось отобразить. Ваши плагины не затронуты, ничего не изменилось.\nОбычно помогает перезагрузка страницы. Если это повторяется, экспортируйте журнал и приложите его к задаче — в журнале указано, где возникла ошибка.\nЕсли браузер переводит эту страницу, отключите перевод и перезагрузите страницу. Это известная причина.»",
|
|
5561
|
+
"crashReload": "Перезагрузить",
|
|
5562
|
+
"crashTitle": "Магазин плагинов не удалось отобразить",
|
|
5563
|
+
"credsWarning": "Обратите внимание: в резервные копии входят конфигурация профиля и файлы, которые могут содержать секреты (config.toml, .env, …). Локальный экспорт не изменяется, поэтому загружайте его только в хранилище WebDAV, которому доверяете.",
|
|
5564
|
+
"deprecatedBadge": "Устаревший",
|
|
5565
|
+
"deprecatedWarn": "Каталог помечает этот плагин как устаревший; новым пользователям советуют его не устанавливать.",
|
|
5566
|
+
"descCollapse": "Показать меньше",
|
|
5567
|
+
"descExpand": "Показать больше",
|
|
5568
|
+
"descMore": "Показать все",
|
|
5569
|
+
"diagExplain": "Глоссарий",
|
|
5570
|
+
"diagExplainText": "Эта страница проверяет конфликты плагинов, несовпадения зависимостей и неверный порядок загрузки. Используемые термины:",
|
|
5571
|
+
"diagOkAll": "Конфликтов, проблем с зависимостями и нарушений порядка не найдено",
|
|
5572
|
+
"diagTermBundle": "бандл = один пакет плагина, применяемый по порядку",
|
|
5573
|
+
"diagTermEntry": "запись = один элемент, который плагин регистрирует в работающем составе",
|
|
5574
|
+
"diagTermOrder": "порядок загрузки = порядок активации плагинов; более поздний может переопределить более ранний",
|
|
5575
|
+
"diagTermOrphan": "недопустимая запись = конфигурация ссылается на то, чего нет",
|
|
5576
|
+
"diagTermPeer": "одноранговая зависимость = другой пакет, который плагин требует от хоста",
|
|
5577
|
+
"diagTermShadow": "затенение = старая копия плагина закрывает более новую копию хоста",
|
|
5578
|
+
"disable": "Отключить",
|
|
5579
|
+
"disabledState": "Отключено",
|
|
5580
|
+
"dismiss": "Закрыть",
|
|
5581
|
+
"dismissNotice": "Закрыть это уведомление",
|
|
5582
|
+
"downloadsChecked": "Источник проверен: {0}.",
|
|
5583
|
+
"downloadsCheckedUnknown": "Источник проверен: сведения не предоставлены.",
|
|
5584
|
+
"downloadsMeaning": "Скользящая статистика npm за 30 дней: {0}. Это не загрузки за всё время и не число уникальных пользователей. Данные могут запаздывать; время проверки источника не гарантирует полноту.",
|
|
5585
|
+
"downloadsPeriod": "30 дн.",
|
|
5586
|
+
"downloadsWindow": "Период: с {0} по {1}.",
|
|
5587
|
+
"downloadsWindowUnknown": "Период: сведения не предоставлены.",
|
|
5588
|
+
"duplicateNames": "Плагины с одинаковым именем (только для сведения, не конфликт)",
|
|
5589
|
+
"empty": "Подходящих плагинов нет",
|
|
5590
|
+
"enable": "Включить",
|
|
5591
|
+
"envFix": "Настроить автоматически",
|
|
5592
|
+
"envFixFail": "Автоматическая настройка не удалась. Экспортируйте журнал и приложите его к задаче.",
|
|
5593
|
+
"envFixing": "Настройка…",
|
|
5594
|
+
"envMissing": "Перед установкой плагинов нужно настроить pnpm",
|
|
5595
|
+
"exportedLog": "Журнал экспортирован: dsh-market-log.txt — приложите его к задаче",
|
|
5596
|
+
"exportingLog": "Экспорт…",
|
|
5597
|
+
"exportLog": "Экспорт журнала",
|
|
5598
|
+
"exportLogFail": "Не удалось экспортировать журнал",
|
|
5599
|
+
"favoriteAdd": "В избранное",
|
|
5600
|
+
"favoriteBusy": "Операция с плагином ещё выполняется. Избранное не сохранено — повторите чуть позже.",
|
|
5601
|
+
"favoriteFailed": "Не удалось обновить избранное. Попробуйте ещё раз.",
|
|
5602
|
+
"favoriteRemove": "Убрать из избранного",
|
|
5603
|
+
"favoritesClearingStale": "Удаление…",
|
|
5604
|
+
"favoritesClearStale": "Убрать устаревшие из избранного",
|
|
5605
|
+
"favoritesEmpty": "В избранном пока пусто. Нажмите значок закладки в «Обзоре» или в «Темах» либо пункт «В избранное» в меню «···» у установленного плагина.",
|
|
5606
|
+
"favoritesPluginsSection": "Плагины ({0})",
|
|
5607
|
+
"favoritesResultCount": "В избранном: {0}",
|
|
5608
|
+
"favoritesStaleEmpty": "Отмеченные закладкой плагины больше не входят в каталог.",
|
|
5609
|
+
"favoritesStaleNote": "Записей в избранном, которых больше нет в каталоге: {0}",
|
|
5610
|
+
"favoritesThemesSection": "Темы ({0})",
|
|
5611
|
+
"favoriteUnavailable": "Избранное недоступно. Обновите страницу или перезапустите dsh web.",
|
|
5612
|
+
"filter": "Фильтр",
|
|
5613
|
+
"filterDir": "Порядок",
|
|
5614
|
+
"filterHost": "Версия хоста",
|
|
5615
|
+
"filterSort": "Поле сортировки",
|
|
5616
|
+
"filterTime": "Выпущено за",
|
|
5617
|
+
"gist": "Gist в GitHub",
|
|
5618
|
+
"gistCreated": "Экспортировано:",
|
|
5619
|
+
"gistErrAuth": "Не удалось пройти аутентификацию в GitHub: токен недействителен или истёк либо gh CLI не авторизован",
|
|
5620
|
+
"gistErrInvalid": "Содержимое Gist недействительно или использует неподдерживаемый формат резервной копии",
|
|
5621
|
+
"gistErrNetwork": "Не удаётся связаться с GitHub — проверьте сеть или прокси",
|
|
5622
|
+
"gistErrNoId": "Для режима обновления нужен ID Gist — укажите его или переключитесь на «Создать»",
|
|
5623
|
+
"gistErrNotFound": "Gist не найден — проверьте ID или адрес",
|
|
5624
|
+
"gistErrRateLimit": "Исчерпан лимит запросов GitHub либо в токене нет области Gist",
|
|
5625
|
+
"gistErrTimeout": "Истекло время ожидания ответа GitHub — проверьте сеть и повторите",
|
|
5626
|
+
"gistExport": "Экспорт в Gist…",
|
|
5627
|
+
"gistExportDone": "Экспортировано в Gist",
|
|
5628
|
+
"gistExportGo": "Экспортировать",
|
|
5629
|
+
"gistExportHint": "Отмечено всё — полная резервная копия (вместе с конфигурацией); иначе экспортируются только отмеченные плагины, а также конфигурация, если отмечен пункт «включить конфигурацию».",
|
|
5630
|
+
"gistExportSelect": "Выберите плагины для экспорта",
|
|
5631
|
+
"gistId": "ID или адрес Gist (при экспорте оставьте пустым, чтобы создать новый закрытый Gist)",
|
|
5632
|
+
"gistImport": "Импорт из Gist",
|
|
5633
|
+
"gistIncludeConfig": "Включить файлы конфигурации (могут содержать секреты)",
|
|
5634
|
+
"gistModeCreate": "Создать новый закрытый Gist",
|
|
5635
|
+
"gistModeUpdate": "Обновить Gist из поля",
|
|
5636
|
+
"gistNoPlugins": "В этом профиле нет плагинов для экспорта",
|
|
5637
|
+
"gistNote": "В отличие от локального экспорта (архива на этой машине), Gist нужен для синхронизации между машинами: экспортируйте в закрытый Gist, а затем импортируйте его на другом компьютере под тем же аккаунтом, чтобы использовать свои плагины. Токен хранится только в памяти этой сессии и никогда не попадает в хранилище браузера; авторизованный gh CLI или DSH_GITHUB_TOKEN избавляют от ввода. Gist закрытые, 1 МБ на файл.",
|
|
5638
|
+
"gistSelectAll": "Выбрать все",
|
|
5639
|
+
"gistSelectNone": "Снять выбор",
|
|
5640
|
+
"gistSpecLocal": "локально",
|
|
5641
|
+
"gistSrcEnv": "Переменная окружения DSH_GITHUB_TOKEN",
|
|
5642
|
+
"gistSrcGh": "командная строка gh",
|
|
5643
|
+
"gistSrcToken": "введён вручную",
|
|
5644
|
+
"gistToken": "Токен GitHub (только в памяти сессии — после обновления страницы введите его снова; оставьте пустым, чтобы использовать серверный DSH_GITHUB_TOKEN или авторизованный gh CLI)",
|
|
5645
|
+
"gistVerify": "Проверить подключение",
|
|
5646
|
+
"gistVerifySource": "Проверено — источник токена: {0}",
|
|
5647
|
+
"goDiagnose": "Открыть «Диагностику»",
|
|
5648
|
+
"gotIt": "Понятно",
|
|
5649
|
+
"groupAdd": "Добавить участников",
|
|
5650
|
+
"groupAddConfirm": "Добавить {0}",
|
|
5651
|
+
"groupAddEmpty": "Нет плагина вне группы, который можно добавить",
|
|
5652
|
+
"groupAddHint": "Добавление в группу не включает плагины",
|
|
5653
|
+
"groupAddPick": "Добавить",
|
|
5654
|
+
"groupAddSearchPh": "Поиск плагинов…",
|
|
5655
|
+
"groupAddSelected": "Выбрано: {0}",
|
|
5656
|
+
"groupAddTitle": "Добавить в «{0}»",
|
|
5657
|
+
"groupAssign": "Назначить группу",
|
|
5658
|
+
"groupChangeTheme": "Сменить тему",
|
|
5659
|
+
"groupConfirmDelete": "Удалить группу?",
|
|
5660
|
+
"groupCreate": "Создать",
|
|
5661
|
+
"groupDelete": "Удалить группу",
|
|
5662
|
+
"groupEmpty": "Участников пока нет",
|
|
5663
|
+
"groupExpand": "Развернуть {0}",
|
|
5664
|
+
"groupFold": "Свернуть {0}",
|
|
5665
|
+
"groupMembersMeta": "{0} · включено: {1}",
|
|
5666
|
+
"groupMixed": "Включены частично",
|
|
5667
|
+
"groupMore": "Ещё",
|
|
5668
|
+
"groupNamePh": "Название группы",
|
|
5669
|
+
"groupNew": "Новая группа",
|
|
5670
|
+
"groupOrgHint": "Группы нужны только для упорядочивания и не меняют состояние включения",
|
|
5671
|
+
"groupPickTheme": "Выберите тему",
|
|
5672
|
+
"groupRemove": "Убрать",
|
|
5673
|
+
"groupRename": "Переименовать",
|
|
5674
|
+
"groupRenameHint": "Меняется только название группы — состав участников и состояние включения остаются прежними",
|
|
5675
|
+
"groupRenameSave": "Сохранить",
|
|
5676
|
+
"groupRenameTitle": "Переименовать группу",
|
|
5677
|
+
"groupSearchEmpty": "Подходящих плагинов нет",
|
|
5678
|
+
"groupStateBroken": "Проверка не удалась",
|
|
5679
|
+
"groupStateInert": "Не активна",
|
|
5680
|
+
"groupStateRestart": "Нужен перезапуск",
|
|
5681
|
+
"groupThemeBadge": "Тема",
|
|
5682
|
+
"groupThemeCurrent": "Текущая",
|
|
5683
|
+
"groupThemeEmpty": "Нет темы вне группы",
|
|
5684
|
+
"groupThemeHint": "В группе может быть только одна тема. Выбор темы не включает её. При замене прежняя тема выходит из группы.",
|
|
5685
|
+
"groupThemeRemove": "Убрать тему",
|
|
5686
|
+
"groupThemeTaken": "Тема уже назначена",
|
|
5687
|
+
"groupThemeTitle": "Выберите тему для «{0}»",
|
|
5688
|
+
"groupThemeUse": "Использовать",
|
|
5689
|
+
"heldReleaseAction": "Установить {0} всё равно",
|
|
5690
|
+
"heldReleaseNotice": "Установлено, но не самое свежее: параметр minimumReleaseAge этого профиля задержал {0}, поэтому была установлена версия {1}.",
|
|
5691
|
+
"hostAll": "Показать все",
|
|
5692
|
+
"hostCompatible": "Совместим с текущим DSH {0}",
|
|
5693
|
+
"hostDependencyMore": "Пропущено ещё: {0}",
|
|
5694
|
+
"hostDependencyWarning": "Плагин перечисляет пакеты, которые DSH уже предоставляет, поэтому две копии могут конфликтовать (только по описанию — не подтверждено):",
|
|
5695
|
+
"hostDetecting": "Определяем версию хоста…",
|
|
5696
|
+
"hostFilterActive": "Скрыто плагинов, несовместимых с DSH {0}: {1}; те, что не заявляют версию, остаются в списке",
|
|
5697
|
+
"hostFilterLoading": "Проверяем требования хоста {0}/{1}; плагины без заявленной версии и недоступные остаются видимыми",
|
|
5698
|
+
"hostIncompatibleAnyway": "Обновить всё равно",
|
|
5699
|
+
"hostIncompatibleBody": "{plugin} заявляет, что ему нужен DSH {requirement}, а у вас работает {host}. Установка скорее всего сломает плагин, и вернуться назад можно будет только вручную, понизив версию.\nНичего не изменилось — плагин остался на текущей версии.\nЕсли номер версии задан неверно (например, в сборке DSH он не указан), обновление всё равно можно выполнить.",
|
|
5700
|
+
"hostIncompatibleBodyInstall": "{plugin} заявляет, что ему нужен DSH {requirement}, а у вас работает {host}. Установка скорее всего сломает плагин.\nНичего не установлено.\nЕсли номер версии задан неверно (например, в сборке DSH он не указан), установку всё равно можно выполнить.",
|
|
5701
|
+
"hostIncompatibleCancel": "Отменить установку",
|
|
5702
|
+
"hostIncompatibleFoundInstall": "Можно установить {version} — плагин заявляет поддержку этого DSH.",
|
|
5703
|
+
"hostIncompatibleFoundUpdate": "Можно обновиться до {version} — плагин заявляет поддержку этого DSH.",
|
|
5704
|
+
"hostIncompatibleInstallAnyway": "Установить всё равно",
|
|
5705
|
+
"hostIncompatibleInstallCompat": "Установить {version}",
|
|
5706
|
+
"hostIncompatibleKeep": "Оставить текущую версию",
|
|
5707
|
+
"hostIncompatibleNoCompat": "Ни одна версия не заявляет поддержку этого DSH.",
|
|
5708
|
+
"hostIncompatibleRetry": "Повторить",
|
|
5709
|
+
"hostIncompatibleSearchFailed": "Не удалось найти совместимые версии.",
|
|
5710
|
+
"hostIncompatibleSearching": "Ищем версию, которая всё ещё поддерживает этот DSH…",
|
|
5711
|
+
"hostIncompatibleTitle": "Для этого выпуска нужен более новый DSH",
|
|
5712
|
+
"hostIncompatibleUnknown": "неизвестная версия",
|
|
5713
|
+
"hostIncompatibleUpdateCompat": "Обновить до {version}",
|
|
5714
|
+
"hostRecoveryBody": "После последнего неудачного запуска восстановление DSH заменило вашу конфигурацию конфигурацией по умолчанию. Прежние настройки ({0}) всё ещё лежат в резервной копии.",
|
|
5715
|
+
"hostRecoveryFail": "Не удалось восстановить: ",
|
|
5716
|
+
"hostRecoveryNote": "Сначала делается снимок, поэтому это можно откатить.",
|
|
5717
|
+
"hostRecoveryRestore": "Восстановить конфигурацию",
|
|
5718
|
+
"hostRecoveryRestored": "Настройки ({0}) восстановлены. Обновите страницу, чтобы увидеть их.",
|
|
5719
|
+
"hostRecoverySource": "Резервная копия: {0}, {1}",
|
|
5720
|
+
"hostRecoveryTitle": "Ваша конфигурация была заменена",
|
|
5721
|
+
"hostRequirement": "Требуется DSH {0}",
|
|
5722
|
+
"hostRequirementLoading": "Читаем требование хоста…",
|
|
5723
|
+
"hostRequirementUnavailable": "Требование хоста неизвестно",
|
|
5724
|
+
"hostRequirementUndeclared": "Требование хоста не заявлено",
|
|
5725
|
+
"hostStatusCompatible": "Требование хоста выполнено (заявлено)",
|
|
5726
|
+
"hostStatusIncompatible": "Подтверждённая несовместимость с этим DSH",
|
|
5727
|
+
"hostUnknown": "Версия хоста неизвестна",
|
|
5728
|
+
"hostUpdateHint": "Устанавливается и обновляется десктопным приложением; обновляйте его там.",
|
|
5729
|
+
"hostUpdateReady": "Новая версия: {0}",
|
|
5730
|
+
"ignoreAllUpdateNotices": "Не напоминать об обновлениях до перезапуска",
|
|
5731
|
+
"ignoreUpdateNotice": "Не напоминать до перезапуска",
|
|
5732
|
+
"install": "Установить",
|
|
5733
|
+
"installCaution": "Перед установкой",
|
|
5734
|
+
"installedBadge": "✓ Установлено",
|
|
5735
|
+
"installedDependencyNote": "Дополнительных пакетов: {0} — они пришли как зависимости плагинов; это не плагины, поэтому выше они не перечислены.",
|
|
5736
|
+
"installedEmpty": "Плагины сообщества ещё не установлены — перейдите на вкладку «Обзор»",
|
|
5737
|
+
"installFail": "Не удалось установить",
|
|
5738
|
+
"installing": "Установка…",
|
|
5739
|
+
"installReplacement": "Установить замену",
|
|
5740
|
+
"lightboxClose": "Закрыть предпросмотр",
|
|
5741
|
+
"lightboxNext": "Далее",
|
|
5742
|
+
"lightboxPrev": "Назад",
|
|
5743
|
+
"linkedDev": "локальная сборка",
|
|
5744
|
+
"loadFail": "Каталог плагинов не загрузился. Попробуйте позже.",
|
|
5745
|
+
"loading": "Загрузка каталога…",
|
|
5746
|
+
"loadRetry": "Повторить",
|
|
5747
|
+
"localOnly": "URL и имя пользователя WebDAV хранятся только в этом браузере.",
|
|
5748
|
+
"marketNoToggle": "Сам магазин отключить нельзя",
|
|
5749
|
+
"marketUpdate": "Обновить магазин плагинов",
|
|
5750
|
+
"migrateContinue": "Подтвердить переключение",
|
|
5751
|
+
"migrateCurrentSource": "Текущий источник",
|
|
5752
|
+
"migrateDescription": "Меняется источник установки плагина, а не его версия.",
|
|
5753
|
+
"migrateFail": "Не удалось сменить источник",
|
|
5754
|
+
"migrateNpm": "Взять версию из npm",
|
|
5755
|
+
"migrateTargetSource": "Новый источник в npm",
|
|
5756
|
+
"migrateTitle": "Взять версию из npm?",
|
|
5757
|
+
"migrateWarning": "Пакет npm может быть опубликован кем-то другим и не быть тем же плагином. Продолжайте, только если доверяете ему.",
|
|
5758
|
+
"nav": "Магазин плагинов",
|
|
5759
|
+
"newerPrereleaseAvailable": "опубликована предрелизная версия {0}",
|
|
5760
|
+
"newerPrereleaseHint": "У пакета нет обновления по последнему тегу; в предрелизной линии, на которой вы находитесь, опубликована более новая сборка.",
|
|
5761
|
+
"nextPage": "Далее",
|
|
5762
|
+
"noGroups": "Групп пока нет. Создайте первую, чтобы начать.",
|
|
5763
|
+
"noteAdd": "Добавить примечание",
|
|
5764
|
+
"noteEdit": "Изменить примечание",
|
|
5765
|
+
"noteMine": "Моё примечание",
|
|
5766
|
+
"notePlaceholder": "Опишите своими словами. Это примечание заменит описание автора.",
|
|
5767
|
+
"noteSave": "Сохранить",
|
|
5768
|
+
"notesCommits": "Коммиты",
|
|
5769
|
+
"notesCommitsRecent": "Последние коммиты (не совпадают с установленной версией — только для справки)",
|
|
5770
|
+
"noteSeeMine": "Вернуться к моему примечанию",
|
|
5771
|
+
"noteSeeTheirs": "Показать описание автора",
|
|
5772
|
+
"notesLink": "Что изменилось",
|
|
5773
|
+
"notesLoadFail": "Сейчас примечания к обновлению недоступны — попробуйте позже.",
|
|
5774
|
+
"notesNone": "Этот плагин не публикует примечания к обновлению.",
|
|
5775
|
+
"notesNpm": "Время публикации версий",
|
|
5776
|
+
"notesRelease": "Примечания к выпуску",
|
|
5777
|
+
"notesSource": "В магазине пока нет примечаний к обновлению этого плагина.",
|
|
5778
|
+
"notesSourceLink": "Посмотреть, что изменилось в репозитории",
|
|
5779
|
+
"notesSourceNoLink": "Об изменениях можно спросить автора плагина.",
|
|
5780
|
+
"notesSourceUnreadable": "Этот плагин установлен не из GitHub, поэтому магазин не может прочитать его историю изменений.",
|
|
5781
|
+
"noteTheirs": "Оригинал",
|
|
5782
|
+
"notInstalled": "Не установлен",
|
|
5783
|
+
"opBlockedCard": "Не удаётся установить · подробности",
|
|
5784
|
+
"opClear": "Очистить завершённые",
|
|
5785
|
+
"opClose": "Свернуть",
|
|
5786
|
+
"opDequeue": "Убрать из очереди",
|
|
5787
|
+
"opDone": "Готово",
|
|
5788
|
+
"opDoneRefresh": "Установлено · обновите страницу, чтобы применить",
|
|
5789
|
+
"opEmpty": "Операций в работе нет",
|
|
5790
|
+
"opEmptyHint": "Здесь показывается ход установки, обновления и удаления",
|
|
5791
|
+
"opInstalling": "Установка",
|
|
5792
|
+
"opKind_install": "Установка",
|
|
5793
|
+
"opKind_uninstall": "Удаление",
|
|
5794
|
+
"opKind_update": "Обновление",
|
|
5795
|
+
"opLeaveHint": "Можно уйти со страницы — о завершении сообщим",
|
|
5796
|
+
"opLeaveHintAgents": "Начнётся само, когда агенты освободятся",
|
|
5797
|
+
"opNeedsChoice": "Не удаётся установить · отменено автоматически, ничего не изменилось",
|
|
5798
|
+
"opNeedsYou": "требуют внимания",
|
|
5799
|
+
"opQueued": "В очереди",
|
|
5800
|
+
"opQueuedAhead": "впереди:",
|
|
5801
|
+
"opQueuedWaitingAgents": "ожидание работающих сессий: {0}",
|
|
5802
|
+
"opRetry": "Повторить",
|
|
5803
|
+
"opRunning": "Выполняется",
|
|
5804
|
+
"opRunNow": "Выполнить сейчас",
|
|
5805
|
+
"opTitle": "Задачи",
|
|
5806
|
+
"opUninstallNow": "Удалить сейчас",
|
|
5807
|
+
"opUpdateNow": "Обновить сейчас",
|
|
5808
|
+
"opWaitingAgents": "задач ждут простоя агентов: {0}",
|
|
5809
|
+
"orderAlreadyOptimal": "Текущий порядок уже удовлетворяет всем правилам и зависимостям плагинов — переставлять нечего",
|
|
5810
|
+
"orderApplied": "✓ Применено — перезапустите, чтобы применить",
|
|
5811
|
+
"orderApply": "Применить порядок",
|
|
5812
|
+
"orderAutoSort": "Автосортировка",
|
|
5813
|
+
"orderConflicts": "конфликты правил «до/после» в текущем порядке",
|
|
5814
|
+
"orderDiffHint": "Этот порядок изменит состав: переопределений: {0}, потерянных: {1}, дубликатов: {2}",
|
|
5815
|
+
"orderDown": "↓",
|
|
5816
|
+
"orderDrag": "Перетащите, чтобы изменить порядок",
|
|
5817
|
+
"orderDragHint": "Перетащите ⠿, чтобы изменить порядок. Изменения сохранятся, когда вы примените порядок.",
|
|
5818
|
+
"orderReset": "Сбросить черновик",
|
|
5819
|
+
"orderSection": "Порядок",
|
|
5820
|
+
"orderSuggestApply": "Применить предложенный порядок",
|
|
5821
|
+
"orderSuggestHint": "Предлагаемый порядок (автосортировка по правилам «до/после»):",
|
|
5822
|
+
"orderTrialFail": "Проверка порядка не пройдена: {0}",
|
|
5823
|
+
"orderUp": "↑",
|
|
5824
|
+
"orphanBundle": "⚠️ Следующий запуск не удастся: профиль объявляет эти плагины, но они не установлены. Установите их заново или уберите из dsh.profile.bundles в package.json профиля:",
|
|
5825
|
+
"orphanIdRequired": "не задан id",
|
|
5826
|
+
"orphanInsertNotArray": "неверный формат",
|
|
5827
|
+
"orphanInsertTargetMissing": "цель не найдена",
|
|
5828
|
+
"orphanInsertTargetNotGroup": "цель не группа",
|
|
5829
|
+
"orphanNameMismatch": "имя не совпадает",
|
|
5830
|
+
"orphanPatchTargetMissing": "цель не найдена",
|
|
5831
|
+
"orphanReasonOther": "другое",
|
|
5832
|
+
"packagesDone": "обработано пакетов: {0}",
|
|
5833
|
+
"pageInfo": "Страница {0} из {1}",
|
|
5834
|
+
"partialNote": "Отменено — часть изменений применена",
|
|
5835
|
+
"pathCopied": "Скопировано",
|
|
5836
|
+
"peerInfoUnverified": "не проверено",
|
|
5837
|
+
"peerRiskAboveMax": "выше явного максимума",
|
|
5838
|
+
"peerRiskBelowMin": "ниже заявленного минимума",
|
|
5839
|
+
"peerWarnAboveMax": "выше заявленного верхнего предела",
|
|
5840
|
+
"peerWarnOptional": "необязательная зависимость",
|
|
5841
|
+
"perPage": "На странице",
|
|
5842
|
+
"phaseBuilding": "Выполняются сборочные скрипты",
|
|
5843
|
+
"phaseDownloading": "Загрузка",
|
|
5844
|
+
"phaseLinking": "Связывание зависимостей",
|
|
5845
|
+
"phaseResolving": "Подготовка зависимостей",
|
|
5846
|
+
"presetApplied": "Применено — перезапустите, чтобы вступило в силу",
|
|
5847
|
+
"presetApply": "Применить",
|
|
5848
|
+
"presetBundleCount": "плагинов: {0}",
|
|
5849
|
+
"presetDelete": "Удалить",
|
|
5850
|
+
"presetDeleted": "Пресет удалён",
|
|
5851
|
+
"presetDisable": "отключить плагинов: {0}",
|
|
5852
|
+
"presetEmpty": "Пресеты пока не сохранены",
|
|
5853
|
+
"presetEnable": "включить плагинов: {0}",
|
|
5854
|
+
"presetFail": "Операция с пресетом не удалась: ",
|
|
5855
|
+
"presetHint": "Сохраните текущий порядок плагинов и отключённые плагины как пресет и переключайтесь в любой момент; перед применением выполняется пробный запуск и создаётся снимок.",
|
|
5856
|
+
"presetListFail": "Не удалось загрузить пресеты: ",
|
|
5857
|
+
"presetName": "Название пресета",
|
|
5858
|
+
"presetNameEmpty": "Введите название пресета",
|
|
5859
|
+
"presetNoop": "без изменений",
|
|
5860
|
+
"presetPreview": "Предпросмотр",
|
|
5861
|
+
"presetPreviewFail": "Не удалось построить предпросмотр: ",
|
|
5862
|
+
"presetPreviewTitle": "Применение этого пресета:",
|
|
5863
|
+
"presetReorder": "переставить плагинов: {0}",
|
|
5864
|
+
"presetSave": "Сохранить текущее состояние",
|
|
5865
|
+
"presetSaved": "Пресет сохранён",
|
|
5866
|
+
"presetSaving": "Сохранение…",
|
|
5867
|
+
"presetSection": "Пресеты плагинов",
|
|
5868
|
+
"prevPage": "Назад",
|
|
5869
|
+
"progressHint": "При первой установке загружаются плагин и его зависимости — крупные плагины могут устанавливаться от 1 до 3 минут",
|
|
5870
|
+
"published": "Дата добавления",
|
|
5871
|
+
"queuedBadge": "В очереди",
|
|
5872
|
+
"queuedInstallGone": "Плагина, который эта запись собиралась установить, больше нет в каталоге (каталог обновился или вы сменили страницу), поэтому запись удалена. Найдите его в каталоге и установите заново.",
|
|
5873
|
+
"queuedRunBlocked": "работающих сессий: {0}, поэтому начать пока нельзя: такие операции заменяют файлы плагинов на месте, а работающий агент может сбиться посреди хода. Начнётся само, когда сессии освободятся (или отмените эту запись в разделе «Задачи»).",
|
|
5874
|
+
"queuedRunBusy": "Другая установка, обновление или удаление ещё выполняется, поэтому начать пока нельзя: запись останется в очереди и начнётся сама, когда та завершится — нажимать ещё раз не нужно.",
|
|
5875
|
+
"readme": "Файл README",
|
|
5876
|
+
"recentlyAdded": "Недавно добавленные",
|
|
5877
|
+
"reconciledNote": "Удалено, но pnpm сообщил об ошибке в конце работы (обычно файл занят). Настройки уже синхронизированы — повторять не нужно.",
|
|
5878
|
+
"recoveryApply": "Сохранить и перезапустить",
|
|
5879
|
+
"recoveryApplyFailed": "Не удалось сохранить: ",
|
|
5880
|
+
"recoveryApplying": "Сохранение и перезапуск…",
|
|
5881
|
+
"recoveryBanner": "Не удалось запуститься: ",
|
|
5882
|
+
"recoveryBlamedHint": "Плагины, отмеченные красным, дали сбой при этом запуске; если снять с них отметку, при следующем запуске они не включатся.",
|
|
5883
|
+
"recoveryCarrier": "отключает остальные",
|
|
5884
|
+
"recoveryLead": "Этот перезапуск не удался, и dsh завершился. Отметьте плагины, которые нужно включить при следующем запуске; виноватые в этом сбое отмечены красным и оставлены без отметки.",
|
|
5885
|
+
"recoveryLogPath": "Полный журнал: ",
|
|
5886
|
+
"recoveryNoBlameHint": "Журнал не указал ни один конкретный плагин; ниже — то, что можно изменить в текущем состоянии.",
|
|
5887
|
+
"recoveryNoSummary": "Журнал не объясняет причину",
|
|
5888
|
+
"recoveryNotToggleable": "здесь нельзя переключить",
|
|
5889
|
+
"recoveryOpening": "Читаем подробности сбоя…",
|
|
5890
|
+
"recoveryOption": "Изменить плагины",
|
|
5891
|
+
"recoveryRawLog": "Исходный вывод dsh (окончание)",
|
|
5892
|
+
"recoveryRestarting": "Перезапуск: страница обновится, как только dsh поднимется; если сбой повторится, вы вернётесь сюда с новой ошибкой.",
|
|
5893
|
+
"recoveryStandalone": "Открыть отдельную страницу восстановления",
|
|
5894
|
+
"recoveryTimeout": "Истекло время ожидания запуска DeepSeek Harness. «Изменить плагины» покажет, какой из них мешает запуску.",
|
|
5895
|
+
"recoveryTitle": "Не удалось запуститься — измените плагины",
|
|
5896
|
+
"recoveryUnmatched": "DSH назвал эти плагины, но здесь их нельзя переключить: ",
|
|
5897
|
+
"recoveryWriteFailed": "Последний выбор сохранился не полностью, поэтому перезапуска не было: ",
|
|
5898
|
+
"refresh": "Обновить",
|
|
5899
|
+
"refreshBanner": "изменения применены — обновите страницу, чтобы их увидеть",
|
|
5900
|
+
"replacementHint": "Каталог предлагает замену",
|
|
5901
|
+
"repoLink": "Посмотреть репозиторий на GitHub",
|
|
5902
|
+
"restartBanner": "изменения ждут перезапуска — перезапустите DeepSeek Harness, чтобы применить",
|
|
5903
|
+
"restartFail": "Не удалось перезапустить",
|
|
5904
|
+
"restartHint": "Как перезапустить: остановите текущий процесс dsh и запустите его снова (например, dsh web)",
|
|
5905
|
+
"restartHintDebugged": "Текущий процесс dsh подключён к отладчику. Остановите его в IDE или в терминале и запустите снова — магазин не может завершить отлаживаемый процесс из интерфейса.",
|
|
5906
|
+
"restartHintSupervised": "Этот процесс — служебный процесс самой службы {0}, поэтому перезапуск в её ведении: перезапуск отсюда убил бы и процесс перехвата вместе с его группой процессов, и служба не поднялась бы. Выполните перезапуск вручную (systemctl restart <ваш юнит> на машине, где работает dsh; для юнита, который должен пережить самоперезапуск, нужен KillMode=process; параметр «Разрешить перезапуск» включите в настройках этого плагина).",
|
|
5907
|
+
"restartHintViaProxy": "Вы обращаетесь к dsh через прокси или шлюз, а перезапуск по соображениям безопасности принимает только прямое локальное соединение. Перезапустите его на машине, где работает dsh, например командой (docker restart или kubectl rollout restart).",
|
|
5908
|
+
"restarting": "Перезапуск…",
|
|
5909
|
+
"restartNow": "Перезапустить сейчас",
|
|
5910
|
+
"restartTimeout": "Истекло время ожидания запуска DeepSeek Harness",
|
|
5911
|
+
"restoreBootError": "После восстановления запустить всё равно не удалось:",
|
|
5912
|
+
"restoreConfirm": "Восстановление перезапишет конфигурацию этого профиля и заново установит плагины. Продолжить?",
|
|
5913
|
+
"restoreContinue": "Продолжить обновление",
|
|
5914
|
+
"restoreDone": "Восстановление завершено — перезапустите DeepSeek Harness",
|
|
5915
|
+
"restoreFail": "Не удалось восстановить",
|
|
5916
|
+
"restoreHint": "Это удалит локальную версию и установит онлайн-версию. Проверка обновлений продолжит работать как обычно. Отменить это нельзя.",
|
|
5917
|
+
"restoreMissing": "Плагинов из этой резервной копии не установлено: {0}",
|
|
5918
|
+
"restoreNameOnlyHint": "Локальная копия не указывает свой репозиторий-источник, поэтому магазин смог сопоставить её только по имени пакета. Плагин ниже может принадлежать другому автору и просто совпадать по имени, а не быть источником вашей копии. Проверьте владельца и репозиторий перед подтверждением. Это удалит локальную версию, установит тот плагин и необратимо.",
|
|
5919
|
+
"restoreNoCatalog": "Этого плагина нет в подборке каталога, поэтому восстановить его нельзя. Удалите локальную копию или продолжайте разрабатывать её локально.",
|
|
5920
|
+
"restoreNoCatalogTitle": "Восстановление невозможно",
|
|
5921
|
+
"restoreNoMatch": "В каталоге есть одноимённый плагин, но он не совпадает с вашим локальным репозиторием, поэтому восстановление небезопасно. Удалите локальную копию или продолжайте разрабатывать её локально.",
|
|
5922
|
+
"restoreOnline": "Взять онлайн-версию",
|
|
5923
|
+
"restorePartial": "Восстановление завершено, но эти плагины установить не удалось:",
|
|
5924
|
+
"restorePreviewDone": "Резервная копия импортирована. Проверьте вкладку «Установленные», затем запустите восстановление.",
|
|
5925
|
+
"restoreProceed": "Подтвердить восстановление",
|
|
5926
|
+
"restoreStart": "Начать восстановление",
|
|
5927
|
+
"restoreUnportable": "устанавливается с пути на другой машине, которого здесь нет — переустановите плагин или укажите локальный путь",
|
|
5928
|
+
"rollbackNow": "Откатить",
|
|
5929
|
+
"rollbackUnavailable": "Автоматический откат недоступен: не удалось проверить прежний точный источник.",
|
|
5930
|
+
"rollingBack": "Откат…",
|
|
5931
|
+
"searchFavoritesPh": "Поиск в избранном…",
|
|
5932
|
+
"searchPh": "Поиск плагинов: уведомления, терминал, память…",
|
|
5933
|
+
"setBuildEnv": "Среда сборки",
|
|
5934
|
+
"setBuildEnvHint": "Действует на каждый процесс, который запускает магазин, — установку, сборку, git, — а не только на компилятор. По одному KEY=значению в строке, например CC=/usr/bin/gcc-11. Переменные PATH и CI управляются магазином. Сохранение пустого списка возвращает исходную конфигурацию.",
|
|
5935
|
+
"setBuildEnvSave": "Сохранить переменные",
|
|
5936
|
+
"setCardDesc": "Посмотреть версию магазина плагинов и его настройки.",
|
|
5937
|
+
"setChannel": "Канал обновлений",
|
|
5938
|
+
"setChannelBeta": "Бета",
|
|
5939
|
+
"setChannelBetaHint": "Ранний доступ к непроверенным версиям. Касается только магазина плагинов.",
|
|
5940
|
+
"setChannelDev": "Разработка",
|
|
5941
|
+
"setChannelDevHint": "Непроверенные сборки из ветки разработки. Не рекомендуется для повседневного использования.",
|
|
5942
|
+
"setChannelStable": "Стабильный",
|
|
5943
|
+
"setChannelStableHint": "Только выпущенные версии.",
|
|
5944
|
+
"setChannelSwitch": "Переключить на",
|
|
5945
|
+
"setChannelSwitchHint": "Эта версия ниже установленной.",
|
|
5946
|
+
"setGithubProxy": "Ускорение GitHub",
|
|
5947
|
+
"setGithubProxyAuto": "Вернуть автоматический выбор",
|
|
5948
|
+
"setGithubProxyAutoHint": "Автоматически выбирает рабочий маршрут и переключается только после сбоя.",
|
|
5949
|
+
"setGithubProxyCustom": "Пользовательский",
|
|
5950
|
+
"setGithubProxyCustomHint": "Сначала пробует ваш маршрут, затем возвращается к прямому обращению к GitHub.",
|
|
5951
|
+
"setGithubProxyEdit": "Изменить",
|
|
5952
|
+
"setGithubProxyInput": "Префикс ускорения HTTPS",
|
|
5953
|
+
"setGithubProxyManagedHint": "Управляется переменной DSHM_GITHUB_PROXY, здесь изменить нельзя.",
|
|
5954
|
+
"setGithubProxySave": "Сохранить",
|
|
5955
|
+
"setIndexSource": "Индекс обзора",
|
|
5956
|
+
"setIndexSourceHint": "В dsh 0.2.1 и более поздних версиях добавьте https://cdn.jsdelivr.net/npm/dsh-plugin-catalog/index.json в разделе «Плагины» → «Обзор» → «Источники индекса» — тогда вкладка «Обзор» и инструмент агента plugin_market будут искать по одному и тому же каталогу.",
|
|
5957
|
+
"setRegion": "Регион загрузки",
|
|
5958
|
+
"setRegionAuto": "Выбран по результату проверки сети. Можно сменить в любой момент.",
|
|
5959
|
+
"setRegionChina": "Материковый Китай",
|
|
5960
|
+
"setRegionChinaHint": "Быстрее на материковом Китае. Меняет маршрут загрузки, а не источник.",
|
|
5961
|
+
"setRegionGlobal": "Глобально",
|
|
5962
|
+
"setRegionGlobalHint": "Загрузка напрямую из npm и GitHub.",
|
|
5963
|
+
"setSelfCancel": "Отмена",
|
|
5964
|
+
"setSelfConfirm": "Удалить магазин плагинов? Для повторной установки понадобится командная строка.",
|
|
5965
|
+
"setSelfFailed": "Операция не удалась",
|
|
5966
|
+
"setSelfHostManagedHint": "Эту копию установило десктопное приложение; обновляйте её там.",
|
|
5967
|
+
"setSelfPurge": "Также удалить собственные данные магазина",
|
|
5968
|
+
"setSelfPurgeOff": "Данные магазина сохранятся. Учтите: плагины, которые магазин отключил, останутся отключёнными, а после его удаления не останется интерфейса, чтобы включить их обратно.",
|
|
5969
|
+
"setSelfPurgeOn": "Будет удалено: список отключений и пользовательские группы магазина, а также записи об отключении, которые магазин вписал в ваш файл конфигурации, — отключённые им плагины снова запустятся. Пароли и токены не затрагиваются: магазин никогда не хранит их на диске.",
|
|
5970
|
+
"setSelfRemove": "Удалить магазин плагинов",
|
|
5971
|
+
"setSelfRemoveConfirm": "Удалить",
|
|
5972
|
+
"setSelfRemoved": "Удалён",
|
|
5973
|
+
"setSelfRemovedHint": "Перезапустите DeepSeek Harness, чтобы завершить очистку.",
|
|
5974
|
+
"setSelfRemoveHint": "Удаляет магазин из этого профиля. Остальные плагины не затрагиваются.",
|
|
5975
|
+
"setSelfRemoveRemote": "Эта страница открыта не на машине, где работает DSH, поэтому магазин не может удалить себя отсюда. Удалите его там: в десктопном приложении «Настройки → Плагины» или из командной строки.",
|
|
5976
|
+
"setSelfUpdate": "Обновить",
|
|
5977
|
+
"setSelfUpdatedHint": "Загружено. Перезапустите DeepSeek Harness, чтобы изменения вступили в силу, — на странице уже будет показана новая версия.",
|
|
5978
|
+
"setSelfUpdateHint": "Обновление загружает новую версию; она вступит в силу после перезапуска.",
|
|
5979
|
+
"setSelfUpdateReady": "Доступна новая версия:",
|
|
5980
|
+
"setSelfUpToDate": "Актуальная версия",
|
|
5981
|
+
"setSelfUpToDateHint": "",
|
|
5982
|
+
"setSelfWorking": "Удаление…",
|
|
5983
|
+
"setSidebar": "Ярлык в боковой панели",
|
|
5984
|
+
"setSidebarHint": "Показывает магазин в боковой панели под разделом «Плагины». Пункт в настройках остаётся.",
|
|
5985
|
+
"setSidebarOff": "Скрыть",
|
|
5986
|
+
"setSidebarOn": "Показать",
|
|
5987
|
+
"setSidebarOnlyDoorHint": "Этот хост не показывает магазин в настройках, поэтому попасть в него можно только через эту строку.",
|
|
5988
|
+
"shadowNameBanner": "Одно имя плагина теперь определено в двух местах; после перезапуска загрузится только одно:",
|
|
5989
|
+
"sidebarTip": "Хотите открывать быстрее? Покажите его в боковой панели.",
|
|
5990
|
+
"sidebarTipDismiss": "Больше не показывать",
|
|
5991
|
+
"snapCreate": "Создать снимок",
|
|
5992
|
+
"snapCreated": "Снимок создан",
|
|
5993
|
+
"snapCreateFail": "Не удалось создать снимок: ",
|
|
5994
|
+
"snapCreating": "Создание…",
|
|
5995
|
+
"snapDelete": "Удалить",
|
|
5996
|
+
"snapDeleteConfirm": "Подтвердить удаление",
|
|
5997
|
+
"snapDeleteConfirmText": "После удаления этот снимок нельзя будет восстановить.",
|
|
5998
|
+
"snapDeleted": "Снимок удалён",
|
|
5999
|
+
"snapDeleteFail": "Не удалось удалить снимок: ",
|
|
6000
|
+
"snapDeleting": "Удаление…",
|
|
6001
|
+
"snapEmpty": "Снимков пока нет",
|
|
6002
|
+
"snapFiles": "файлы",
|
|
6003
|
+
"snapHint": "Снимки создаются автоматически перед применением изменений; вы также можете создать снимок вручную и в любой момент выполнить откат.",
|
|
6004
|
+
"snapListFail": "Не удалось загрузить снимки: ",
|
|
6005
|
+
"snapRestore": "Восстановить",
|
|
6006
|
+
"snapRestoreConfirm": "Подтвердить восстановление",
|
|
6007
|
+
"snapRestoreConfirmText": "Восстановление перезапишет текущие плагины и конфигурацию данными из снимка; отменить это нельзя (если сомневаетесь, сначала создайте новый снимок).",
|
|
6008
|
+
"snapRestored": "Восстановлено — перезапустите, чтобы применить",
|
|
6009
|
+
"snapRestoreFail": "Не удалось восстановить: ",
|
|
6010
|
+
"snapRestoring": "Восстановление…",
|
|
6011
|
+
"snapSection": "Снимки и откат",
|
|
6012
|
+
"sortAdded": "Дата добавления",
|
|
6013
|
+
"sortAsc": "По возрастанию",
|
|
6014
|
+
"sortDesc": "По убыванию",
|
|
6015
|
+
"sortDownloads": "Загрузки npm за 30 дней",
|
|
6016
|
+
"sortNewest": "Новые",
|
|
6017
|
+
"sortOldest": "Старые",
|
|
6018
|
+
"sortStars": "Звёзды",
|
|
6019
|
+
"stateBroken": "Установлен, проверка не пройдена",
|
|
6020
|
+
"stateDependencyLibrary": "Библиотека для {0}",
|
|
6021
|
+
"stateDisabled": "Отключён",
|
|
6022
|
+
"stateIncompatible": "Установлен — несовместим с этой версией dsh",
|
|
6023
|
+
"stateInert": "Установлен, не активен",
|
|
6024
|
+
"stateLive": "Активен",
|
|
6025
|
+
"stateLoadedByProfile": "Загружен вашим профилем",
|
|
6026
|
+
"stateRestart": "Установлен — перезапустите, чтобы применить",
|
|
6027
|
+
"submitPlugin": "Отправить плагин ↗",
|
|
6028
|
+
"subtitle": "Плагины сообщества для DeepSeek Harness",
|
|
6029
|
+
"switchOnLabel": "Включён",
|
|
6030
|
+
"tabAdvanced": "Дополнительно",
|
|
6031
|
+
"tabBackup": "Резервные копии и восстановление",
|
|
6032
|
+
"tabBlocked": "Скрытые",
|
|
6033
|
+
"tabDiagnostics": "Диагностика",
|
|
6034
|
+
"tabDiscover": "Обзор",
|
|
6035
|
+
"tabFavorites": "Избранное",
|
|
6036
|
+
"tabGroups": "Группы",
|
|
6037
|
+
"tabInstalled": "Установленные",
|
|
6038
|
+
"tabList": "Список",
|
|
6039
|
+
"tabThemes": "Темы",
|
|
6040
|
+
"terminalCautionBody": "Это плагин для терминала. В веб-версии он может не работать.",
|
|
6041
|
+
"terminalCautionLink": "Сначала прочитайте его инструкцию ↗",
|
|
6042
|
+
"terminalCautionStartup": "Он может помешать DeepSeek Harness запуститься.",
|
|
6043
|
+
"terminalCautionTitle": "Может не работать в веб-приложении",
|
|
6044
|
+
"themeActive": "Активна",
|
|
6045
|
+
"themeApply": "Использовать",
|
|
6046
|
+
"themeDeactivate": "Отключить",
|
|
6047
|
+
"themeEmpty": "В каталоге пока нет тем",
|
|
6048
|
+
"themeExitFullscreen": "Выйти из полноэкранного режима",
|
|
6049
|
+
"themeFullscreen": "Смотреть во весь экран",
|
|
6050
|
+
"themePreview": "Предпросмотр",
|
|
6051
|
+
"themePreviewCount": "предпросмотров: {0}",
|
|
6052
|
+
"themePreviewLoading": "Ищем предпросмотр…",
|
|
6053
|
+
"themePreviewMissing": "Предпросмотр недоступен",
|
|
6054
|
+
"themeResultCount": "тем: {0}",
|
|
6055
|
+
"timeAll": "За всё время",
|
|
6056
|
+
"timeDay": "Последний день",
|
|
6057
|
+
"timeMonth": "Последние 30 дней",
|
|
6058
|
+
"timeQuarter": "Последние 90 дней",
|
|
6059
|
+
"timeWeek": "Последние 7 дней",
|
|
6060
|
+
"timeYear": "Последний год",
|
|
6061
|
+
"toastReady": "установлен и активен",
|
|
6062
|
+
"toastTheme": "теперь активна. Переключайте в любой момент: «Настройки → Магазин плагинов → Темы»",
|
|
6063
|
+
"toastToggledOff": "теперь выключен, работа сразу прекратилась",
|
|
6064
|
+
"toastToggledOn": "теперь включён",
|
|
6065
|
+
"toggleFail": "Не удалось переключить",
|
|
6066
|
+
"ungrouped": "Без группы",
|
|
6067
|
+
"uninstall": "Удалить",
|
|
6068
|
+
"uninstallConfirmDesc": "Удаляет плагин из текущего профиля.",
|
|
6069
|
+
"uninstalling": "Удаление…",
|
|
6070
|
+
"unreleasedCommits": "Новые коммиты (ещё не выпущены): {0}",
|
|
6071
|
+
"unreleasedCommitsHint": "В выбранной ветке есть коммиты новее вашей установки, но новая версия не опубликована: магазин ставит только выпуски и не применит их сам.",
|
|
6072
|
+
"update": "Обновить",
|
|
6073
|
+
"updateAll": "Обновить все",
|
|
6074
|
+
"updateAvailableShort": "Новая версия",
|
|
6075
|
+
"updated": "✓ Обновлено — перезапустите, чтобы применить",
|
|
6076
|
+
"updatedLive": "✓ Обновлено — работает",
|
|
6077
|
+
"updateExemptAdd": "Никогда не напоминать об обновлениях",
|
|
6078
|
+
"updateExemptFailed": "Не удалось сохранить. Попробуйте снова.",
|
|
6079
|
+
"updateExemptHint": "Новые версии остаются в списке — пропадает только напоминание.",
|
|
6080
|
+
"updateExemptMark": "Напоминания отключены",
|
|
6081
|
+
"updateExemptOff": "Напоминания об обновлениях снова включены.",
|
|
6082
|
+
"updateExemptOn": "Напоминания об обновлениях отключены. Новые версии остаются в списке.",
|
|
6083
|
+
"updateExemptRemove": "Снова включить напоминания об обновлениях",
|
|
6084
|
+
"updateExemptRestore": "Напоминать снова",
|
|
6085
|
+
"updateFail": "Не удалось обновить",
|
|
6086
|
+
"updateNoticeIgnored": "До перезапуска напоминаний не будет",
|
|
6087
|
+
"updateNow": "Обновить сейчас",
|
|
6088
|
+
"updating": "Обновление…",
|
|
6089
|
+
"upToDate": "Актуальная версия",
|
|
6090
|
+
"versionHint": "Версия магазина плагинов — приложите её, когда сообщаете о проблеме",
|
|
6091
|
+
"viewReplacement": "Посмотреть замену",
|
|
6092
|
+
"viewSource": "Исходный код",
|
|
6093
|
+
"webdav": "WebDAV",
|
|
6094
|
+
"webdavNote": "URL и имя пользователя WebDAV хранятся только в этом браузере; пароль остаётся на сервере, и его нужно вводить заново в каждой сессии.",
|
|
6095
|
+
"webdavPassword": "Пароль (необязательно)",
|
|
6096
|
+
"webdavPathHint": "Укажите полный путь к файлу вместе с именем: резервная копия пишет этот файл, а восстановление читает его обратно. При включённом автоматическом резервном копировании файл выгружается не чаще одного раза в сутки.",
|
|
6097
|
+
"webdavPreset": "Пресет провайдера",
|
|
6098
|
+
"webdavRestore": "Восстановить из WebDAV",
|
|
6099
|
+
"webdavUpload": "Выгрузить резервную копию",
|
|
6100
|
+
"webdavUrl": "URL файла резервной копии",
|
|
6101
|
+
"webdavUser": "Имя пользователя (необязательно)"
|
|
6102
|
+
},
|
|
6103
|
+
"dsh-moa": {
|
|
6104
|
+
"actions.retry": "Перезагрузить конфигурацию",
|
|
6105
|
+
"actions.save": "Сохранить конфигурацию",
|
|
6106
|
+
"actions.saved": "Конфигурация сохранена успешно.",
|
|
6107
|
+
"actions.saved_memory_only": "Сохранено только в памяти сессии (на диск не записывается)",
|
|
6108
|
+
"actions.saving": "Сохраняем…",
|
|
6109
|
+
"aggregator.add_fallback_btn": "+ Добавить резервного судью",
|
|
6110
|
+
"aggregator.add_judge_btn": "+ Добавить модель-судью",
|
|
6111
|
+
"aggregator.add_local_btn": "+ Добавить локальную модель",
|
|
6112
|
+
"aggregator.blind_hint": "Если включено: имена моделей-кандидатов и провайдеры скрываются от промпта судьи, чтобы не было предпочтения к семейству или бренду.",
|
|
6113
|
+
"aggregator.blind_label": "Слепое ревью (обезличивание кандидатов для судьи)",
|
|
6114
|
+
"aggregator.budget_action": "Действие:",
|
|
6115
|
+
"aggregator.budget_action_abort": "Прервать",
|
|
6116
|
+
"aggregator.budget_action_trim": "Сократить пул",
|
|
6117
|
+
"aggregator.budget_desc": "Ограничить максимальную стоимость запуска: сокращать пул кандидатов или прерывать запуск, чтобы не потратить токены по ошибке.",
|
|
6118
|
+
"aggregator.budget_max_usd": "Максимум в USD ($):",
|
|
6119
|
+
"aggregator.budget_title": "Ограничители бюджета и автоматический резерв",
|
|
6120
|
+
"aggregator.composite_desc": "Свести модульные блоки кода, типы и алгоритмы из нескольких кандидатов в единую композицию.",
|
|
6121
|
+
"aggregator.composite_title": "Композитный гибридный синтез (AST / слияние блоков)",
|
|
6122
|
+
"aggregator.criteria_label": "Критерии оценки судьи (необязательно):",
|
|
6123
|
+
"aggregator.criteria_placeholder": "например: приоритет — производительность, отсутствие внешних зависимостей, устойчивость к краевым случаям…",
|
|
6124
|
+
"aggregator.curator_hint": "Если включено: куратор выделяет лучшие части каждого кандидата, применяет список антипаттернов и советует, какой моделью агента собрать решение.",
|
|
6125
|
+
"aggregator.curator_label": "Синтез куратора и совет главного сборщика",
|
|
6126
|
+
"aggregator.desc": "Сравнивает предложения кандидатов, устраняет расхождения, отсеивает выдумки и собирает итоговое решение.",
|
|
6127
|
+
"aggregator.fallbacks_desc": "Резервные модели вызываются по очереди, если основной судья упёрся в лимит запросов или в сбой.",
|
|
6128
|
+
"aggregator.fallbacks_title": "Цепочка резервных судей",
|
|
6129
|
+
"aggregator.judge_badge": "Судья №{num}",
|
|
6130
|
+
"aggregator.judge_models_desc": "Укажите две или больше моделей-судей, чтобы коллегия приняла общее решение.",
|
|
6131
|
+
"aggregator.judge_models_empty": "Для голосования по согласию нужно не меньше двух моделей-судей.",
|
|
6132
|
+
"aggregator.judge_models_title": "Модели коллегии судей",
|
|
6133
|
+
"aggregator.local_badge": "Локальная №{num}",
|
|
6134
|
+
"aggregator.local_fallback_desc": "Автоматически переходить к локальным моделям Ollama / MiniPC, когда онлайновые API кандидатов не отвечают.",
|
|
6135
|
+
"aggregator.local_fallback_title": "Плавная деградация и локальный резерв",
|
|
6136
|
+
"aggregator.local_models_desc": "Локальные офлайн-модели, которые используются, когда облачные API кандидатов не отвечают.",
|
|
6137
|
+
"aggregator.local_models_empty": "Настройте хотя бы одну локальную резервную модель (например, Ollama).",
|
|
6138
|
+
"aggregator.local_models_title": "Локальные резервные модели",
|
|
6139
|
+
"aggregator.multi_judge_desc": "Подключить несколько моделей-судей, чтобы оценить кандидатов и определить победителя голосованием по согласию.",
|
|
6140
|
+
"aggregator.multi_judge_title": "Коллегия судей и голосование по согласию",
|
|
6141
|
+
"aggregator.multi_turn_desc": "Сохранять контекст разговора между раундами и отбрасывать повторяющиеся блоки кода.",
|
|
6142
|
+
"aggregator.multi_turn_title": "Контекст нескольких раундов и отсечение различий",
|
|
6143
|
+
"aggregator.override_hint": "Рабочие области кандидатов остаются в .moa, чтобы вы могли применить любые файлы кандидата командой в чате.",
|
|
6144
|
+
"aggregator.override_label": "Разрешить действия с переопределением кандидата",
|
|
6145
|
+
"aggregator.peer_hint": "Кандидаты критикуют решения друг друга и дорабатывают свой код до финального синтеза судьи.",
|
|
6146
|
+
"aggregator.peer_label": "Совет: взаимная критика (раунд 2)",
|
|
6147
|
+
"aggregator.questions_hint": "Если включено: для коротких и общих запросов судья собирает чек-лист из 2–4 вопросов до генерации кода.",
|
|
6148
|
+
"aggregator.questions_label": "Задавать уточняющие вопросы по общим задачам (опросник)",
|
|
6149
|
+
"aggregator.report_desc": "Формировать скачиваемые отчёты в Markdown и JSON: задержка кандидатов, согласие, результат проверки тестами и разбор затрат.",
|
|
6150
|
+
"aggregator.report_title": "Автоматическое сравнение и разбор после запуска",
|
|
6151
|
+
"aggregator.stream_hint": "Токены агрегатора идут прямо в чат в реальном времени, поэтому первый ответ появляется без задержки.",
|
|
6152
|
+
"aggregator.stream_label": "Рассуждения куратора и судьи в прямом эфире",
|
|
6153
|
+
"aggregator.temp_hint": "Рекомендуется: 0.2 – 0.4 для строгой проверки и детерминированного синтеза.",
|
|
6154
|
+
"aggregator.temp_label": "Температура судьи",
|
|
6155
|
+
"aggregator.test_cmd_placeholder": "например, (npm test или node --test)",
|
|
6156
|
+
"aggregator.test_gate_hint": "Перед ревью судьи запускает набор тестов внутри песочниц кандидатов: победителя выбирают по реальным результатам тестов.",
|
|
6157
|
+
"aggregator.test_gate_label": "Проверка тестами (автоматический прогон в песочнице)",
|
|
6158
|
+
"aggregator.test_timeout_label": "Тайм-аут тестов (с):",
|
|
6159
|
+
"aggregator.timeout_label": "Тайм-аут синтеза судьи (с):",
|
|
6160
|
+
"aggregator.title": "⚖️ Ведущая модель и судья (синтез и проверка)",
|
|
6161
|
+
"aggregator.voting_highest_score": "Наивысшая оценка",
|
|
6162
|
+
"aggregator.voting_majority": "Голосование большинством",
|
|
6163
|
+
"aggregator.voting_strategy_label": "Стратегия голосования:",
|
|
6164
|
+
"aggregator.voting_unanimous": "Единогласно",
|
|
6165
|
+
"badge.candidates": "Предлагающих: {count}",
|
|
6166
|
+
"badge.disabled": "MoA выключен",
|
|
6167
|
+
"badge.models": "Доступно моделей: {count}",
|
|
6168
|
+
"badge.offline": "Хост недоступен",
|
|
6169
|
+
"badge.online": "MoA включён",
|
|
6170
|
+
"badge.preset": "Пресет: {name}",
|
|
6171
|
+
"config.enabled_label": "Включить MoA (слэш-команда и маршрутизация раундов)",
|
|
6172
|
+
"config.smart_routing_desc": "Анализировать сложность задачи и автоматически выбирать оптимальный пресет.",
|
|
6173
|
+
"config.smart_routing_model": "Модель маршрутизации:",
|
|
6174
|
+
"config.smart_routing_title": "Умная маршрутизация запросов",
|
|
6175
|
+
"description": "Оркестрация ансамбля агентов: параллельные предложения кандидатов и синтез судьи по команде /moa <запрос>.",
|
|
6176
|
+
"diff.candidate": "Кандидат {num}",
|
|
6177
|
+
"diff.curator": "Синтез куратора",
|
|
6178
|
+
"diff.desc": "Сравнивайте различия между решениями кандидатов и синтезом судьи в рабочей области проекта.",
|
|
6179
|
+
"diff.empty": "Выбранные файлы совпадают (различий нет).",
|
|
6180
|
+
"diff.latest_run": "Последняя / активная рабочая область",
|
|
6181
|
+
"diff.loading": "Загружаем различия…",
|
|
6182
|
+
"diff.no_files": "В рабочих областях кандидатов (.moa) файлов нет. Выполните задачу командой /moa, чтобы получить код кандидатов.",
|
|
6183
|
+
"diff.refresh": "Обновить различия",
|
|
6184
|
+
"diff.select_file": "Файл:",
|
|
6185
|
+
"diff.select_from": "База:",
|
|
6186
|
+
"diff.select_run": "Запуск:",
|
|
6187
|
+
"diff.select_to": "Сравнить с:",
|
|
6188
|
+
"diff.title": "Просмотр различий кандидатов",
|
|
6189
|
+
"error_boundary.retry": "Повторить",
|
|
6190
|
+
"error_boundary.title": "⚠️ Ошибка интерфейса MoA:",
|
|
6191
|
+
"header.sub": "Параллельная генерация кандидатами с финальной оценкой и выбором кода ведущим агрегатором и судьёй. Возврат к модели сессии происходит автоматически.",
|
|
6192
|
+
"header.title": "Оркестрация Mixture of Agents (MoA)",
|
|
6193
|
+
"leaderboard.cost": "Средняя стоимость",
|
|
6194
|
+
"leaderboard.desc": "Метрики результативности, посчитанные по записанным вердиктам запусков MoA.",
|
|
6195
|
+
"leaderboard.empty": "Исторических запусков пока нет.",
|
|
6196
|
+
"leaderboard.export_csv": "Экспорт CSV",
|
|
6197
|
+
"leaderboard.export_json": "Экспорт JSON",
|
|
6198
|
+
"leaderboard.filter_all": "Все пресеты",
|
|
6199
|
+
"leaderboard.model": "Модель",
|
|
6200
|
+
"leaderboard.runs": "Запуски",
|
|
6201
|
+
"leaderboard.title": "🏆 Таблица долей побед моделей",
|
|
6202
|
+
"leaderboard.winrate": "Доля побед",
|
|
6203
|
+
"leaderboard.wins": "Победы",
|
|
6204
|
+
"picker.clear": "Очистить",
|
|
6205
|
+
"picker.custom": "Свой вариант: ",
|
|
6206
|
+
"picker.found": "Найдено",
|
|
6207
|
+
"picker.none": "Подходящих моделей не найдено.",
|
|
6208
|
+
"picker.of": "из",
|
|
6209
|
+
"picker.search_placeholder": "Поиск модели по названию или провайдеру…",
|
|
6210
|
+
"picker.select": "Выберите модель…",
|
|
6211
|
+
"presets.active_badge": "Активный по умолчанию",
|
|
6212
|
+
"presets.cancel": "Отмена",
|
|
6213
|
+
"presets.create": "Создать",
|
|
6214
|
+
"presets.del_btn": "Удалить",
|
|
6215
|
+
"presets.del_confirm": "Удалить пресет «{name}»?",
|
|
6216
|
+
"presets.desc": "Выберите активный пресет или создайте свои конфигурации для отдельных задач (например, ревью кода, математика, быстрая первичная оценка).",
|
|
6217
|
+
"presets.name_placeholder": "Имя нового пресета (например, fast-audit)",
|
|
6218
|
+
"presets.new_btn": "+ Новый пресет",
|
|
6219
|
+
"presets.set_default": "Сделать пресетом по умолчанию",
|
|
6220
|
+
"presets.title": "📋 Управление пресетами",
|
|
6221
|
+
"proposers.add_btn": "+ Добавить модель-кандидат",
|
|
6222
|
+
"proposers.candidate": "Кандидат",
|
|
6223
|
+
"proposers.candidate_temp_tooltip": "Температура кандидата (пусто — по умолчанию или по градиенту)",
|
|
6224
|
+
"proposers.desc": "Параллельно генерировать независимые решения, чтобы расширить разнообразие и охват пространства решений.",
|
|
6225
|
+
"proposers.grace_label": "Срок ожидания (с):",
|
|
6226
|
+
"proposers.parallel_count": "Параллельные кандидаты",
|
|
6227
|
+
"proposers.quorum_hint": "Когда готовы 67% и больше кандидатов, запускается таймер ожидания (по умолчанию 10 с) и работа продолжается без ожидания зависших провайдеров.",
|
|
6228
|
+
"proposers.quorum_label": "Быстрое продвижение по порогу большинства (защита от отстающих)",
|
|
6229
|
+
"proposers.role_general": "Универсальная",
|
|
6230
|
+
"proposers.role_label": "Роль:",
|
|
6231
|
+
"proposers.role_minimalist": "Минималист",
|
|
6232
|
+
"proposers.role_performance": "Производительность",
|
|
6233
|
+
"proposers.role_robustness": "Надёжность",
|
|
6234
|
+
"proposers.role_tester": "Тестировщик",
|
|
6235
|
+
"proposers.temp_hint": "Рекомендуется: 0.6 – 0.8 для творческого независимого поиска решений.",
|
|
6236
|
+
"proposers.temp_label": "Температура кандидатов",
|
|
6237
|
+
"proposers.temperature_gradient": "Исследование по градиенту температуры (0.2 → 0.9 по кандидатам)",
|
|
6238
|
+
"proposers.timeout_label": "Тайм-аут кандидата (с):",
|
|
6239
|
+
"proposers.title": "👥 Модели-кандидаты (предлагающие)",
|
|
6240
|
+
"slash.desc": "Выполнить раунд с синтезом ансамбля Mixture of Agents (/moa [пресет] <запрос>)",
|
|
6241
|
+
"stats.active_models": "Настроенные модели",
|
|
6242
|
+
"stats.avg_cost": "Средняя стоимость запуска",
|
|
6243
|
+
"stats.desc": "Телеметрия сессии, история запусков и учёт долей побед моделей.",
|
|
6244
|
+
"stats.preset_count": "Всего пресетов",
|
|
6245
|
+
"stats.title": "📈 Аналитика и телеметрия MoA",
|
|
6246
|
+
"stats.total_runs": "Всего запусков",
|
|
6247
|
+
"status.error_saving": "Ошибка сохранения: ",
|
|
6248
|
+
"status.loading": "Загружаем настройки MoA…",
|
|
6249
|
+
"status.retry": "Повторить",
|
|
6250
|
+
"status.unavailable": "Служба MoA временно недоступна",
|
|
6251
|
+
"title": "Ансамбль агентов (MoA)",
|
|
6252
|
+
"updater.available": "Доступно обновление: v{version}",
|
|
6253
|
+
"updater.btnCheck": "Проверить обновления",
|
|
6254
|
+
"updater.btnUpdate": "Обновить до v{version}",
|
|
6255
|
+
"updater.checkFailed": "Не удалось проверить реестр",
|
|
6256
|
+
"updater.checking": "Проверяем реестр…",
|
|
6257
|
+
"updater.current": "Текущая версия: v{version}",
|
|
6258
|
+
"updater.desc": "Проверять новые версии в реестре npm и обновлять одним нажатием.",
|
|
6259
|
+
"updater.success": "Обновление до v{version} выполнено. Перезапустите DSH, чтобы применить его.",
|
|
6260
|
+
"updater.title": "Обновления плагина",
|
|
6261
|
+
"updater.updating": "Обновляем плагин…",
|
|
6262
|
+
"updater.upToDate": "Обновлений нет"
|
|
6263
|
+
},
|
|
6264
|
+
"dsh-tts": {
|
|
6265
|
+
"activeProvider": "Активный провайдер",
|
|
6266
|
+
"addProvider": "Добавить провайдера",
|
|
6267
|
+
"addRule": "Добавить правило",
|
|
6268
|
+
"addSubagentRole": "Добавить субагента",
|
|
6269
|
+
"advancedCollapsed": "Дополнительно",
|
|
6270
|
+
"advancedHint": "Лимиты и переопределения адресов. Ключи API провайдеров остаются в редакторе цепочки; имена ячеек учётных данных (*KeyEnv) задаются только в конфигурации.",
|
|
6271
|
+
"advancedTitle": "Дополнительно",
|
|
6272
|
+
"announce": "Озвучивать одобрения",
|
|
6273
|
+
"announceHint": "Проговаривать вслух и играть сигнал, когда агент ждёт одобрения или задаёт вопрос.",
|
|
6274
|
+
"approvalHint": "Произносится, когда запрашивают одобрение; в конец добавляется название инструмента.",
|
|
6275
|
+
"approvalText": "Формулировка одобрения",
|
|
6276
|
+
"autoDetect": "Автоопределение языка по фрагментам",
|
|
6277
|
+
"autoDetectHint": "Определять zh/en для каждого произносимого фрагмента вместо настройки языка.",
|
|
6278
|
+
"autoDetectSubagent": "Автоопределение ролей субагентов",
|
|
6279
|
+
"autoplayBlocked": "Звук заблокирован, пока вы не нажмёте один раз",
|
|
6280
|
+
"available": "доступно",
|
|
6281
|
+
"azureHint": "Нужно для провайдера Azure, например eastus.",
|
|
6282
|
+
"azureRegion": "Регион Azure",
|
|
6283
|
+
"bargeIn": "Заглушать, когда вы говорите",
|
|
6284
|
+
"bargeInHint": "Чтение прекращается, как только микрофон включится.",
|
|
6285
|
+
"binHint": "Ищется в PATH, если путь не абсолютный.",
|
|
6286
|
+
"breakerOpen": "Цепь разомкнута",
|
|
6287
|
+
"cache": "Кэш синтеза",
|
|
6288
|
+
"cacheHint": "Повторно использовать озвучку для одинаковых фраз.",
|
|
6289
|
+
"cacheMaxMb": "Предел размера кэша, МБ",
|
|
6290
|
+
"cacheMaxMbHint": "Сначала вытесняются элементы, которые давно не использовались.",
|
|
6291
|
+
"cacheStats": "Кэш",
|
|
6292
|
+
"cardHint": "Цепочка провайдеров, голоса и параметры воспроизведения.",
|
|
6293
|
+
"chainHint": "Порядок сверху вниз — это порядок резервного переключения. Облачные ключи сохраняются в хранилище учётных данных хоста и никогда не попадают в настройки плагина.",
|
|
6294
|
+
"chainHintCard": "Выберите провайдера, вставьте его ключ API и нажмите «Сохранить» (или оставьте поле ключа пустым). Ключ сразу попадает в хранилище учётных данных хоста. Браузер никогда не читает его обратно.",
|
|
6295
|
+
"chainTitle": "Цепочка провайдеров",
|
|
6296
|
+
"chime": "Сигнал",
|
|
6297
|
+
"chimeHint": "дзинь, писк или без звука.",
|
|
6298
|
+
"clear": "Очистить",
|
|
6299
|
+
"clearCache": "Очистить кэш",
|
|
6300
|
+
"configured": "Настроен",
|
|
6301
|
+
"confirmClearCache": "Очистить кэш синтеза? Это действие нельзя отменить.",
|
|
6302
|
+
"confirmDeleteModel": "Удалить загруженные веса для этого движка?",
|
|
6303
|
+
"currentVoice": "Голос",
|
|
6304
|
+
"customBaseUrl": "Свой адрес TTS",
|
|
6305
|
+
"customBaseUrlHint": "Совместимый с OpenAI адрес, например http://localhost:8880/v1; пусто — выключено.",
|
|
6306
|
+
"customKeyEnv": "Переменная окружения для ключа",
|
|
6307
|
+
"customKeyEnvHint": "Имя учётных данных для токена Bearer своего адреса.",
|
|
6308
|
+
"deleteModel": "Удалить",
|
|
6309
|
+
"dockClearQueue": "Очистить очередь",
|
|
6310
|
+
"dockCurrent": "Сейчас произносится",
|
|
6311
|
+
"dockFavorite": "В избранное",
|
|
6312
|
+
"dockFavorites": "Избранные записи",
|
|
6313
|
+
"dockLabel": "Речь",
|
|
6314
|
+
"dockNone": "Ожидание речи",
|
|
6315
|
+
"dockPause": "Пауза",
|
|
6316
|
+
"dockQueue": "Очередь",
|
|
6317
|
+
"dockReplay": "Повтор",
|
|
6318
|
+
"dockResume": "Продолжить чтение",
|
|
6319
|
+
"dockSkip": "Пропустить",
|
|
6320
|
+
"dockStop": "Остановить чтение",
|
|
6321
|
+
"dockUnfavorite": "Убрать из избранного",
|
|
6322
|
+
"down": "Вниз",
|
|
6323
|
+
"downloading": "Загрузка…",
|
|
6324
|
+
"edgeBin": "бинарный файл edge-tts",
|
|
6325
|
+
"edgeHint": "CLI на Python из пакета edge-tts.",
|
|
6326
|
+
"enableItDictionary": "Встроенный словарь IT-терминов",
|
|
6327
|
+
"enableItDictionaryHint": "Автоисправление произношения для SQL, Nginx, K8s, Docker, API, JSON, YAML и т. д.",
|
|
6328
|
+
"enableLocalEngines": "Включить локальные движки",
|
|
6329
|
+
"enableLocalEnginesHint": "Использовать Kokoro или F5-TTS, если они установлены.",
|
|
6330
|
+
"enableSound": "Включить звук",
|
|
6331
|
+
"errorLoading": "Ошибка загрузки настроек: ",
|
|
6332
|
+
"espeakBin": "бинарный файл eSpeak",
|
|
6333
|
+
"espeakHint": "Обычно espeak-ng.",
|
|
6334
|
+
"exportAudio": "Экспортировать аудиозапись",
|
|
6335
|
+
"exportJson": "📥 Экспортировать JSON",
|
|
6336
|
+
"exportSuccess": "Аудио экспортировано",
|
|
6337
|
+
"fromEnv": "Задано в окружении",
|
|
6338
|
+
"general": "Общее",
|
|
6339
|
+
"importJson": "📤 Импортировать JSON",
|
|
6340
|
+
"installed": "Установлено",
|
|
6341
|
+
"installF5": "Установить (2,1 ГБ)",
|
|
6342
|
+
"installKokoro": "Установить (350 МБ)",
|
|
6343
|
+
"invalidJsonFormat": "Недопустимый формат словаря JSON",
|
|
6344
|
+
"language": "Язык",
|
|
6345
|
+
"languageHint": "Подсказка для голосов, которым нужен региональный язык (eSpeak, Azure SSML).",
|
|
6346
|
+
"lastError": "Последняя ошибка",
|
|
6347
|
+
"loading": "Загрузка…",
|
|
6348
|
+
"loadItDictionary": "Заполнить словарь IT-терминов",
|
|
6349
|
+
"localEnginesHint": "Синтез речи полностью работает офлайн, без ключей API.",
|
|
6350
|
+
"localEnginesTitle": "Локальные движки (офлайн)",
|
|
6351
|
+
"localProvider": "Локальный провайдер / CLI — без ключа API",
|
|
6352
|
+
"longReply": "Длинные ответы",
|
|
6353
|
+
"longReplyFull": "Полностью",
|
|
6354
|
+
"longReplyHint": "обрезать: обрыв по лимиту; пересказать: краткий пересказ; полностью: читать всё.",
|
|
6355
|
+
"longReplySummarize": "Пересказать",
|
|
6356
|
+
"longReplyTruncate": "Обрезать",
|
|
6357
|
+
"maxChars": "Максимум символов",
|
|
6358
|
+
"maxCharsHint": "Жёсткий предел до обработки длинного ответа; 0 отключает.",
|
|
6359
|
+
"maxQueue": "Максимальная длина очереди",
|
|
6360
|
+
"maxQueueHint": "За пределом этого числа самые старые ожидающие фрагменты отбрасываются.",
|
|
6361
|
+
"messengerInstallHint": "Чтобы включить голосовые ответы в мессенджерах, установите плагин командой",
|
|
6362
|
+
"messengerIntegrationHint": "Голосовые ответы и заметки отправляются через @goodandready/dsh-messenger-gateway.",
|
|
6363
|
+
"messengerIntegrationTitle": "Интеграция с мессенджерами (Telegram, Discord)",
|
|
6364
|
+
"messengerNotInstalledTitle": "Нужный плагин @goodandready/dsh-messenger-gateway не установлен",
|
|
6365
|
+
"messengerTtsEnabled": "Голосовые ответы в мессенджерах",
|
|
6366
|
+
"messengerTtsEnabledHint": "Разрешить шлюзу мессенджеров доставлять ответы голосовыми заметками.",
|
|
6367
|
+
"mimoBaseUrl": "Базовый URL MiMo",
|
|
6368
|
+
"mimoBaseUrlHint": "Корень API MiMo; синтез использует его адрес чата.",
|
|
6369
|
+
"mimoFormat": "Формат MiMo",
|
|
6370
|
+
"mimoFormatHint": "mp3 или wav.",
|
|
6371
|
+
"minimaxBin": "CLI MiniMax",
|
|
6372
|
+
"minimaxBinHint": "Ищется в PATH, если путь не абсолютный; устанавливается и авторизуется отдельно.",
|
|
6373
|
+
"modelHint_azure": "регион и имя голоса",
|
|
6374
|
+
"modelHint_custom": "своя модель",
|
|
6375
|
+
"modelHint_deepgram": "по умолчанию провайдера (только английские голоса)",
|
|
6376
|
+
"modelHint_deepinfra": "идентификатор модели (например, hexgrad/Kokoro-82M)",
|
|
6377
|
+
"modelHint_edge": "Голос BCP-47, например en-US-AriaName",
|
|
6378
|
+
"modelHint_elevenlabs": "по умолчанию провайдера",
|
|
6379
|
+
"modelHint_espeak": "код языка, например en",
|
|
6380
|
+
"modelHint_f5": "не входит в комплект — нет офлайн-среды выполнения нейросети",
|
|
6381
|
+
"modelHint_fireworks": "идентификатор модели (например, kokoro)",
|
|
6382
|
+
"modelHint_google": "по умолчанию провайдера",
|
|
6383
|
+
"modelHint_groq": "по умолчанию провайдера",
|
|
6384
|
+
"modelHint_kokoro": "не входит в комплект — нет офлайн-среды выполнения нейросети",
|
|
6385
|
+
"modelHint_mimo": "идентификатор модели (например, mimo-v2.5-tts)",
|
|
6386
|
+
"modelHint_minimax": "идентификатор модели",
|
|
6387
|
+
"modelHint_openai": "по умолчанию провайдера",
|
|
6388
|
+
"modelHint_openrouter": "идентификатор провайдера или модели",
|
|
6389
|
+
"modelHint_piper": "путь к .onnx",
|
|
6390
|
+
"modelHint_siliconflow": "идентификатор модели (например, FunAudioLLM/CosyVoice2-0.5B)",
|
|
6391
|
+
"narrateQuotesHint": "Читать только фрагменты ответа в «кавычках».",
|
|
6392
|
+
"narrateQuotesOnly": "Только цитаты",
|
|
6393
|
+
"newSubagentRole": "Имя субагента (например, coder, reviewer)",
|
|
6394
|
+
"notInstalled": "Не установлено",
|
|
6395
|
+
"notSet": "Не задано",
|
|
6396
|
+
"openaiBaseUrl": "Базовый URL OpenAI",
|
|
6397
|
+
"openaiBaseUrlHint": "Совместимый с OpenAI адрес для провайдера OpenAI.",
|
|
6398
|
+
"piperBin": "Бинарный файл Piper",
|
|
6399
|
+
"piperModel": "Путь к модели Piper",
|
|
6400
|
+
"piperModelHint": "Абсолютный путь к модели ONNX. Оставьте пустым, чтобы пропустить Piper.",
|
|
6401
|
+
"preview": "Предпрослушать",
|
|
6402
|
+
"previewRule": "Прослушать",
|
|
6403
|
+
"pronFrom": "Заменить",
|
|
6404
|
+
"pronHint": "Правила выполняются сверху вниз. Для регулярного выражения оберните левую часть в /…/; поле «Язык» отбирает правило.",
|
|
6405
|
+
"pronLang": "Язык",
|
|
6406
|
+
"pronTitle": "Произношение",
|
|
6407
|
+
"pronTo": "На",
|
|
6408
|
+
"pronWhole": "Целое слово",
|
|
6409
|
+
"questionHint": "Произносится, когда агент задаёт вопрос. Пустое значение отключает его.",
|
|
6410
|
+
"questionText": "Формулировка вопроса",
|
|
6411
|
+
"queueLen": "Очередь",
|
|
6412
|
+
"rate": "Скорость воспроизведения",
|
|
6413
|
+
"rateHint": "От 0,5 до 2. Синтез не меняется; браузер воспроизводит быстрее или медленнее.",
|
|
6414
|
+
"recent": "Недавние",
|
|
6415
|
+
"recentEmpty": "Пока нет недавних записей",
|
|
6416
|
+
"remove": "Удалить",
|
|
6417
|
+
"removeRegex": "Регулярное выражение для удаления",
|
|
6418
|
+
"removeRegexHint": "Глобальное регулярное выражение; совпадения удаляются перед синтезом.",
|
|
6419
|
+
"retry": "Повторить",
|
|
6420
|
+
"role_coder": "Разработчик",
|
|
6421
|
+
"role_planner": "Планировщик",
|
|
6422
|
+
"role_reviewer": "Проверяющий",
|
|
6423
|
+
"roleApproval": "Одобрение",
|
|
6424
|
+
"roleError": "Ошибка",
|
|
6425
|
+
"roleReply": "Ответ",
|
|
6426
|
+
"rolesHint": "Пустые поля наследуют основную цепочку.",
|
|
6427
|
+
"rolesTitle": "Голосовые роли",
|
|
6428
|
+
"runtimeNotBundled": "Среда выполнения для нейросетевого вывода не входит в комплект",
|
|
6429
|
+
"runtimeNotBundledHint": "Установка весов не включает речь. Для офлайн-TTS используйте Edge, Piper или eSpeak.",
|
|
6430
|
+
"save": "Сохранить",
|
|
6431
|
+
"saved": "Сохранено",
|
|
6432
|
+
"sentenceChars": "Размер фрагмента предложения",
|
|
6433
|
+
"sentenceCharsHint": "Максимум символов в одном потоковом фрагменте предложения.",
|
|
6434
|
+
"skipActions": "Пропускать *действия*",
|
|
6435
|
+
"skipActionsHint": "Убирать блоки действий, помеченные звёздочками.",
|
|
6436
|
+
"skipCode": "Пропускать блоки кода",
|
|
6437
|
+
"skipCodeHint": "Произносить короткое уведомление вместо чтения кода вслух.",
|
|
6438
|
+
"speakAsItGoes": "Читать по мере поступления",
|
|
6439
|
+
"speakAsItGoesHint": "Читать каждый ответ сразу, как только он появляется, по одному предложению, вместо ожидания всего хода.",
|
|
6440
|
+
"speakMessage": "Прочитать этот ответ вслух",
|
|
6441
|
+
"speakMessageEmpty": "В этом ответе нечего читать",
|
|
6442
|
+
"speakMessageStop": "Прекратить чтение этого ответа",
|
|
6443
|
+
"speakReplies": "Читать ответы агента вслух",
|
|
6444
|
+
"speakRepliesHint": "Когда включено, каждый готовый ответ синтезируется на хосте и воспроизводится в этом браузере. Аудио не отправляется обратно в модель.",
|
|
6445
|
+
"sseState": "SSE",
|
|
6446
|
+
"ssmlStyle": "Стиль тона SSML",
|
|
6447
|
+
"ssmlStyleHint": "Выразительный тон (например, радостный, серьёзный, участливый).",
|
|
6448
|
+
"statErrors": "Ошибки",
|
|
6449
|
+
"statHits": "Попадания в кэш",
|
|
6450
|
+
"statReset": "Сбросить статистику",
|
|
6451
|
+
"statsTitle": "Статистика",
|
|
6452
|
+
"statTotal": "Всего",
|
|
6453
|
+
"statusOffline": "Хост недоступен",
|
|
6454
|
+
"statusOnline": "Хост на связи",
|
|
6455
|
+
"streamingEnabled": "Мгновенный поток (< 300 мс)",
|
|
6456
|
+
"streamingEnabledHint": "Воспроизводить аудио в реальном времени через AudioWorklet и SSE.",
|
|
6457
|
+
"subtitle": "Синтез речи для DeepSeek Harness",
|
|
6458
|
+
"summaryModel": "Модель для пересказа",
|
|
6459
|
+
"summaryModelHint": "провайдер или модель, пусто — по умолчанию для диалога.",
|
|
6460
|
+
"summarySentences": "Длина пересказа",
|
|
6461
|
+
"summarySentencesHint": "Предложений в озвученном пересказе.",
|
|
6462
|
+
"testProvider": "Проверить провайдера",
|
|
6463
|
+
"timeoutMs": "Тайм-аут провайдера (мс)",
|
|
6464
|
+
"timeoutMsHint": "Прерывать попытку провайдера после указанного числа миллисекунд.",
|
|
6465
|
+
"title": "Речь",
|
|
6466
|
+
"ttsUiError": "⚠️ Ошибка интерфейса TTS:",
|
|
6467
|
+
"unlockAudio": "Нажмите, чтобы включить звук",
|
|
6468
|
+
"up": "Вверх",
|
|
6469
|
+
"updaterCheck": "Проверить обновления",
|
|
6470
|
+
"updaterChecking": "Проверка…",
|
|
6471
|
+
"updaterCurrent": "Текущая версия",
|
|
6472
|
+
"updaterFailed": "Не удалось проверить обновления: ",
|
|
6473
|
+
"updaterLatest": "Последняя версия",
|
|
6474
|
+
"updaterSuccess": "Плагин успешно обновлён. Перезапустите службу DSH.",
|
|
6475
|
+
"updaterTitle": "Обновления плагина",
|
|
6476
|
+
"updaterUpdateNow": "Обновить до v{version}",
|
|
6477
|
+
"updaterUpdating": "Обновление…",
|
|
6478
|
+
"updaterUpToDate": "Актуальная версия",
|
|
6479
|
+
"useF5": "Включить F5-TTS (GPU)",
|
|
6480
|
+
"useF5Hint": "Синтез высокого качества без примеров на GPU NVIDIA.",
|
|
6481
|
+
"useKokoro": "Включить Kokoro-82M (CPU)",
|
|
6482
|
+
"useKokoroHint": "Быстрый нейросетевой синтез на CPU.",
|
|
6483
|
+
"vadBargeIn": "Перебивание по VAD",
|
|
6484
|
+
"vadBargeInHint": "Сразу отключать синтез речи, когда обнаружен голос пользователя.",
|
|
6485
|
+
"voiceDuplex": "Режим «голос в голос»",
|
|
6486
|
+
"voiceDuplexHint": "Диалог голосом с интеграцией dsh-voice.",
|
|
6487
|
+
"voiceDuplexHintToggle": "Автоматически синтезировать ответ агента после окончания разговора.",
|
|
6488
|
+
"voiceDuplexTitle": "Дуплексный голосовой режим (голос в голос)",
|
|
6489
|
+
"voiceInstallHint": "Чтобы включить дуплексный голосовой режим, установите плагин командой",
|
|
6490
|
+
"voiceNotInstalledTitle": "Нужный плагин @goodandready/dsh-voice не установлен"
|
|
6491
|
+
},
|
|
6492
|
+
"dsh-usage-guard": {
|
|
6493
|
+
"badge_active": "Активная защита",
|
|
6494
|
+
"badge_report_only": "Только отчёт",
|
|
6495
|
+
"header_desc": "Защищает проекции истории сессий от испорченных или пропавших счётчиков токенов у всех провайдеров языковых моделей.",
|
|
6496
|
+
"maxStepTokens": "Предел смягчения всплесков токенов",
|
|
6497
|
+
"maxStepTokensDesc": "Смягчать аномально большие счётчики расхода шага (например, больше миллиона) до расчёта проекций, чтобы не было переполнения целого числа и испорченных итогов сессии. Значение 0 отключает ограничение.",
|
|
6498
|
+
"repair": "Автоматически восстанавливать счётчики токенов",
|
|
6499
|
+
"repairDesc": "Заменять пропавшие, нечисловые или испорченные счётчики на 0 перед суммированием, чтобы история не зависала из-за NaN.",
|
|
6500
|
+
"report": "Писать диагностические предупреждения в журнал",
|
|
6501
|
+
"reportDesc": "Писать подробное предупреждение с указанием раунда, шага и исходного замера сессии каждый раз, когда приходит испорченный расход.",
|
|
6502
|
+
"request_timeout": "Истекло время ожидания запроса (15 с)",
|
|
6503
|
+
"save": "Сохранить изменения",
|
|
6504
|
+
"saved": "Настройки сохранены",
|
|
6505
|
+
"saving": "Сохранение…",
|
|
6506
|
+
"settings.loading": "Загрузка настроек Usage Guard…",
|
|
6507
|
+
"settings.retry": "Повторить",
|
|
6508
|
+
"settings.unavailable": "Раздел настроек недоступен (пространство имён хоста не готово).",
|
|
6509
|
+
"stats_mode": "Текущий режим",
|
|
6510
|
+
"stats_mode_repair": "Активное восстановление (безопасно)",
|
|
6511
|
+
"stats_mode_report": "Только проверка (небезопасно)",
|
|
6512
|
+
"stats_scope": "Область действия",
|
|
6513
|
+
"stats_scope_val": "sessionProjections",
|
|
6514
|
+
"stats_title": "Состояние защиты",
|
|
6515
|
+
"subtitle": "Очистка счётчиков токенов и защита сессии от сбоев",
|
|
6516
|
+
"telemetry_clamped": "Смягчённые всплески",
|
|
6517
|
+
"telemetry_last_incident": "Последний случай",
|
|
6518
|
+
"telemetry_no_incidents": "Случаев не обнаружено (система в порядке)",
|
|
6519
|
+
"telemetry_refresh": "Обновить телеметрию",
|
|
6520
|
+
"telemetry_refreshing": "Обновление…",
|
|
6521
|
+
"telemetry_rescued": "Спасённые события",
|
|
6522
|
+
"telemetry_title": "Телеметрия в реальном времени",
|
|
6523
|
+
"telemetry_tokens": "Исправленные токены",
|
|
6524
|
+
"title": "Сторож расхода",
|
|
6525
|
+
"updater_check": "Проверить обновления",
|
|
6526
|
+
"updater_checking": "Проверка…",
|
|
6527
|
+
"updater_current": "Текущая версия",
|
|
6528
|
+
"updater_failed": "Не удалось проверить обновление",
|
|
6529
|
+
"updater_latest": "Последняя версия",
|
|
6530
|
+
"updater_success": "Обновление прошло успешно. Перезагрузите страницу.",
|
|
6531
|
+
"updater_title": "Версия плагина и обновления",
|
|
6532
|
+
"updater_up_to_date": "Плагин уже обновлён",
|
|
6533
|
+
"updater_update_now": "Обновить до {version}",
|
|
6534
|
+
"updater_updating": "Обновление…"
|
|
6535
|
+
},
|
|
6536
|
+
"ego-browser": {
|
|
6537
|
+
"captureBackend": "Источник захвата",
|
|
6538
|
+
"cdpBackstopIntervalMs": "Интервал восстановления CDP",
|
|
6539
|
+
"cdpFps": "CDP, кадр/с",
|
|
6540
|
+
"cdpMaxWidth": "Максимальная ширина CDP",
|
|
6541
|
+
"cdpQuality": "Качество JPEG для CDP",
|
|
6542
|
+
"chromeArgs": "Дополнительные аргументы запуска Chrome",
|
|
6543
|
+
"chromeArgsHint": "Добавляются к аргументам запуска Chrome. Вступают в силу при следующем холодном старте браузера (браузер работает в единственном экземпляре — выполните `ego-browser --stop` или перезапустите DSH, чтобы перезапустить его). Заблокированы: --user-data-dir/--remote-debugging-port/--remote-allow-origins/--headless/--no-startup-window/--proxy-server (для прокси используйте EGO_LINUX_PROXY).",
|
|
6544
|
+
"chromePath": "Путь к исполняемому файлу браузера",
|
|
6545
|
+
"chromePathHint": "Путь к исполняемому файлу Chrome/Chromium/Edge. Пусто — определяется автоматически.",
|
|
6546
|
+
"collapse": "Скрыть настройки",
|
|
6547
|
+
"disableFrameRelay": "Отключить передачу кадров в реальном времени",
|
|
6548
|
+
"disableFrameRelayHint": "Изображение вообще не передаётся: нет процесса ego-cast, нет захвата экрана через CDP/WGC, нет забора кадров через ffmpeg, и панель просмотра не открывает поток. Инструменты ego_* продолжают работать как обычно.",
|
|
6549
|
+
"disableFrameRelayOff": "Выкл. (просмотр в реальном времени включён)",
|
|
6550
|
+
"disableFrameRelayOn": "Вкл. (изображение не передаётся на эту страницу)",
|
|
6551
|
+
"discard": "Отменить",
|
|
6552
|
+
"egoCliArgs": "Дополнительные аргументы CLI ego-browser",
|
|
6553
|
+
"egoCliArgsHint": "Добавляются к аргументам `ego-browser nodejs`. Вступают в силу при следующем вызове ego_*. Заблокированы: --status/--stop/--open/--spaces/--help (они завершают работу до запуска heredoc). Режим --headless задавайте через переменную окружения headless.",
|
|
6554
|
+
"expand": "Показать настройки",
|
|
6555
|
+
"ffmpegBitrateKbps": "Битрейт FFmpeg",
|
|
6556
|
+
"ffmpegChecking": "Проверка локального FFmpeg…",
|
|
6557
|
+
"ffmpegDownloading": "Загрузка FFmpeg…",
|
|
6558
|
+
"ffmpegEncoder": "Кодировщик FFmpeg",
|
|
6559
|
+
"ffmpegExtracting": "Распаковка FFmpeg…",
|
|
6560
|
+
"ffmpegFailed": "Не удалось установить FFmpeg",
|
|
6561
|
+
"ffmpegFps": "FFmpeg, кадр/с",
|
|
6562
|
+
"ffmpegInstall": "Загрузить FFmpeg",
|
|
6563
|
+
"ffmpegMaxWidth": "Максимальная ширина FFmpeg",
|
|
6564
|
+
"ffmpegMissing": "Подходящий FFmpeg не найден",
|
|
6565
|
+
"ffmpegPath": "Путь к исполняемому файлу FFmpeg",
|
|
6566
|
+
"ffmpegProbing": "Проверка возможностей захвата…",
|
|
6567
|
+
"ffmpegReady": "Готово",
|
|
6568
|
+
"ffmpegRecheck": "Проверить снова",
|
|
6569
|
+
"ffmpegReinstall": "Переустановить",
|
|
6570
|
+
"ffmpegRequired": "FFmpeg (требуется установка)",
|
|
6571
|
+
"ffmpegSource": "Источник",
|
|
6572
|
+
"ffmpegTitle": "Установка FFmpeg",
|
|
6573
|
+
"ffmpegUnsupported": "Захват через FFmpeg не поддерживается на этой платформе",
|
|
6574
|
+
"ffmpegVerifying": "Проверка загрузки…",
|
|
6575
|
+
"ffmpegVersion": "Версия",
|
|
6576
|
+
"fpsUnit": "кадр/с",
|
|
6577
|
+
"githubMirror": "Зеркало GitHub",
|
|
6578
|
+
"githubMirrorHint": "Заменяет https://github.com при загрузке с GitHub, например на https://gh-proxy.com/github.com.",
|
|
6579
|
+
"idleTimeoutMin": "Автоостановка при простое (минуты)",
|
|
6580
|
+
"idleTimeoutMinHint": "Останавливать браузер после N минут без вызовов ego_* (0 — отключено). При следующем вызове он запускается с нуля (~2–4 с). Просмотр панели не считается активностью.",
|
|
6581
|
+
"intro": "Интеграция с браузером агента. Ниже настройте путь к исполняемому файлу Chrome/Chromium и параметры трансляции.",
|
|
6582
|
+
"isolateSpaces": "Изоляция пространств",
|
|
6583
|
+
"isolateSpacesHint": "Выключено: используется постоянный профиль на диске, входы сохраняются между перезапусками. Включено: для каждой задачи создаётся изолированная песочница только в памяти.",
|
|
6584
|
+
"isolateSpacesOff": "Выключено (постоянный профиль, входы сохраняются)",
|
|
6585
|
+
"isolateSpacesOn": "Включено (изолированная песочница в памяти)",
|
|
6586
|
+
"kbpsUnit": "кбит/с",
|
|
6587
|
+
"loginImportBusy": "Выполняется… (работающий исходный браузер, возможно, придётся закрыть)",
|
|
6588
|
+
"loginImportClosed": " (исходный браузер был закрыт, его можно открыть снова)",
|
|
6589
|
+
"loginImportCloseSource": "Сначала закройте исходный браузер, если он запущен (окна восстановятся при следующем запуске)",
|
|
6590
|
+
"loginImportDomains": "Домены (через запятую; пусто — ВСЕ)",
|
|
6591
|
+
"loginImportDomainsHint": "например, bilibili.com, zhihu.com — поддомены тоже. Лучше указать явный список, чем импортировать всё.",
|
|
6592
|
+
"loginImportIntro": "Копирование cookie для входа из вашего обычного Chrome/Edge/Brave в браузер агента (передача через CDP — без офлайн-расшифровки). Сначала проверьте, затем импортируйте с явным списком доменов.",
|
|
6593
|
+
"loginImportProbe": "Проверить",
|
|
6594
|
+
"loginImportProbeResult": "Доступно для импорта: cookie — {matched} шт., доменов — {domains} шт. (прочитано всего: {total} шт.) — ничего не записано.",
|
|
6595
|
+
"loginImportResult": "Импортировано {written} шт. cookie из доменов — {domains} шт., источник — {source}. Они сохраняются между перезапусками.",
|
|
6596
|
+
"loginImportRun": "Импортировать",
|
|
6597
|
+
"loginImportSource": "Источник",
|
|
6598
|
+
"loginImportTitle": "Импорт входов из системного браузера",
|
|
6599
|
+
"minUnit": "мин",
|
|
6600
|
+
"msUnit": "мс",
|
|
6601
|
+
"namespaceUnavailable": "Канал настройки ego-browser недоступен. Повторите позже.",
|
|
6602
|
+
"pxUnit": "px",
|
|
6603
|
+
"readOnly": "Настройки в этом развёртывании доступны только для чтения.",
|
|
6604
|
+
"relayDisabledBody": "Отключите «Отключить передачу кадров в реальном времени» в настройках → Плагины → ego-browser, чтобы увидеть здесь просмотр в реальном времени.",
|
|
6605
|
+
"relayDisabledTitle": "Передача кадров в реальном времени отключена",
|
|
6606
|
+
"retry": "Повторить",
|
|
6607
|
+
"save": "Сохранить",
|
|
6608
|
+
"saving": "Сохранение…",
|
|
6609
|
+
"streamProfile": "Профиль качества",
|
|
6610
|
+
"title": "ego-browser",
|
|
6611
|
+
"unsaved": "Есть несохранённые изменения"
|
|
6612
|
+
},
|
|
6613
|
+
"personalDirective": {
|
|
6614
|
+
"disabled": "Директива: выкл.",
|
|
6615
|
+
"enabled": "Директива: вкл.",
|
|
6616
|
+
"failed": "Не удалось переключить директиву — нет соединения",
|
|
6617
|
+
"switching": "Переключение…",
|
|
6618
|
+
"title": "Переключение личной директивы"
|
|
6619
|
+
}
|
|
5118
6620
|
};
|
|
5119
6621
|
//#endregion
|
|
5120
6622
|
//#region src/client/plural.ts
|