@goodandready/dsh-russian-lang 0.2.5 → 0.2.7

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.
@@ -405,6 +405,77 @@
405
405
  "pluginSuhuangScrollDesc": "Интеграция Suhuang Scroll Runtime с настройками DSH и better-sidebar для конфигурации моделей и тестов",
406
406
  "pluginCodeNavDesc": "Навигатор по коду: подсветка синтаксиса, дерево символов (классы, методы, переменные) и поиск по файлу",
407
407
  "pluginBetterOverleafDesc": "Вкладка Overleaf для better-sidebar: синхронизация проектов и предпросмотр файлов",
408
- "pluginBilingualReaderDesc": "Чтение PDF-статей в боковой панели DSH с контекстным переводом через LLM"
408
+ "pluginBilingualReaderDesc": "Чтение PDF-статей в боковой панели DSH с контекстным переводом через LLM",
409
+ "changesFoldLoading": "Загрузка сворачивания изменений…",
410
+ "changesFoldUnavailable": "Сворачивание изменений недоступно",
411
+ "changesHtmlRaw": "Исходный HTML",
412
+ "changesHtmlRender": "Рендеринг HTML",
413
+ "changesMdRaw": "Исходный Markdown",
414
+ "changesMdReading": "Чтение Markdown…",
415
+ "changesPdfRaw": "Исходный PDF",
416
+ "changesPdfRender": "Просмотр PDF",
417
+ "changesDiff": "Различия (Diff)",
418
+ "changesInlineDiff": "Строчный diff",
419
+ "changesSideBySide": "Параллельный diff",
420
+ "changesCollapseAll": "Свернуть все файлы",
421
+ "changesExpandAll": "Развернуть все файлы",
422
+ "changesFilesCount": "Изменено файлов: {n}",
423
+ "changesAdditions": "+{n} добавлено",
424
+ "changesDeletions": "-{n} удалено",
425
+ "changesEmpty": "Нет изменённых файлов в текущей сессии.",
426
+ "changesFilter": "Фильтр изменений…",
427
+ "changesViewMode": "Режим отображения изменений",
428
+ "changesStageAll": "Подготовить все",
429
+ "changesUnstageAll": "Снять подготовку",
430
+ "changesDiscard": "Отменить изменения",
431
+ "changesDiscardConfirm": "Отменить изменения в файле «{file}»? Действие необратимо.",
432
+ "changesRevertAll": "Откатить все изменения",
433
+ "changesCopied": "Diff скопирован в буфер обмена",
434
+ "changesExportPatch": "Экспорт патча (.patch)",
435
+ "changesWordDiff": "Пословный diff",
436
+ "changesSyntaxHighlight": "Подсветка синтаксиса",
437
+ "changesFontSize": "Размер шрифта diff",
438
+ "changesLineNumbers": "Номера строк",
439
+ "changesWhitespace": "Игнорировать пробелы",
440
+ "changesUnified": "Единый diff",
441
+ "changesSplit": "Раздельный diff",
442
+ "changesJumpToLine": "Перейти к строке",
443
+ "changesOpenFile": "Открыть изменённый файл",
444
+ "changesTitle": "Инспектор изменений",
445
+ "changesSubtitle": "Просмотр и анализ модификаций файлов рабочей области",
446
+ "changesLoading": "Анализ изменений файлов…",
447
+ "changesSaved": "Настройки инспектора сохранены",
448
+ "changesRedactBanner": "Скрыто",
449
+ "changesRedactOff": "Маскирование выключено: содержимое файла отображается без купюр; нажмите для включения",
450
+ "changesRedactOffLabel": "Маскирование выкл",
451
+ "changesRedactOn": "Маскирование включено: секреты скрыты как [REDACTED]; нажмите для выключения (на свой риск)",
452
+ "changesRedactOnLabel": "Маскирование",
453
+ "delete": "Удалить",
454
+ "deleteDescDir": "Каталог и всё его содержимое будут безвозвратно удалены. Это действие нельзя отменить.",
455
+ "deleteDescFile": "Файл будет безвозвратно удалён. Это действие нельзя отменить.",
456
+ "deleteTitle": "Удалить «{name}»?",
457
+ "dismiss": "Отклонить",
458
+ "pluginBetterOverleafName": "Вкладка Overleaf (dsh-better-overleaf)",
459
+ "pluginBilingualReaderName": "Двуязычный ридер (dsh-bilingual-reader)",
460
+ "pluginCodeNavName": "Навигатор предпросмотра кода",
461
+ "pluginDocsPanelName": "Глобальная документация (dsh-docs-panel)",
462
+ "pluginEgoBrowserName": "Браузер агента (ego-browser)",
463
+ "pluginFlowglassName": "Flowglass (dsh-flowglass)",
464
+ "pluginGitForgeName": "Учётные данные Git (dsh-git-forge)",
465
+ "pluginGitRemotesName": "Удалённые репозитории Git (dsh-git-remotes)",
466
+ "pluginGithubWorkbenchName": "GitHub Workbench (dsh-github-workbench)",
467
+ "pluginMdExportName": "Экспорт в Markdown",
468
+ "pluginOfficeName": "Предпросмотр Office",
469
+ "pluginSentinelName": "Система пробуждения (dsh-sentinel)",
470
+ "pluginServerDeckName": "Server Deck (dsh-server-deck)",
471
+ "pluginSidebarQaName": "Выделить и спросить (dsh-sidebar-qa)",
472
+ "pluginSidenoteName": "Боковой чат (dsh-sidenote)",
473
+ "pluginSshTunnelName": "SSH-туннель (dsh-ssh-tunnel)",
474
+ "pluginSuhuangScrollName": "Свиток Сухуан (dsh-suhuang-scroll)",
475
+ "pluginTurnReviewName": "Обзор реплики (dsh-turn-review)",
476
+ "pluginVideoPreviewName": "Предпросмотр видео",
477
+ "presetDshDesktopDesc": "Расширенный режим Electron (безрамочный): macOS резервирует верхнюю полосу 20px; Windows резервирует заголовок 32px, если WCO недоступен",
478
+ "rename": "Переименовать",
479
+ "renameInvalid": "Имя не может быть пустым или содержать разделители пути."
409
480
  }
410
- }
481
+ }
@@ -362,6 +362,79 @@
362
362
  "task.permissionConfirmed": "Права подтверждены",
363
363
  "task.permissionGateWarning": "Требуется подтверждение повышенных прав ({permission})",
364
364
  "task.progressDump": "Дамп прогресса (Handover)",
365
- "task.runs": "История выполнений"
365
+ "task.runs": "История выполнений",
366
+ "acceptance.title": "Приёмка и проверка задачи",
367
+ "acceptance.accept": "Принять (Выполнено)",
368
+ "acceptance.reject": "Вернуть на доработку",
369
+ "acceptance.rejectTitle": "Возврат на доработку",
370
+ "acceptance.rejectSubmit": "Отправить на доработку",
371
+ "acceptance.rejectReasonPlaceholder": "Укажите, что необходимо исправить или доработать...",
372
+ "acceptance.rejectedAlert": "Возвращено на доработку: {reason}",
373
+ "acceptance.rejectedBadge": "На доработке",
374
+ "checklist.title": "Критерии готовности (DoD)",
375
+ "checklist.progress": "DoD: {done} из {total}",
376
+ "checklist.required": "Обязательно",
377
+ "checklist.add": "Добавить",
378
+ "checklist.placeholder": "Новый критерий готовности...",
379
+ "checklist.evidence": "Подтверждение: {text}",
380
+ "checklist.empty": "Критерии готовности ещё не настроены.",
381
+ "comments.title": "Обсуждение и комментарии",
382
+ "comments.add": "Опубликовать комментарий",
383
+ "comments.authorAgent": "Агент",
384
+ "comments.authorUser": "Пользователь",
385
+ "comments.placeholder": "Добавьте заметку или отзыв...",
386
+ "comments.empty": "Комментариев пока нет.",
387
+ "report.title": "Отчёт о выполнении",
388
+ "report.summary": "Сводка",
389
+ "report.changedFiles": "Изменённые файлы",
390
+ "report.checksRun": "Проверки и тесты",
391
+ "report.artifacts": "Артефакты",
392
+ "report.risks": "Риски и примечания",
393
+ "acceptance.acceptAndMerge": "Принять и смержить ветку",
394
+ "acceptance.merging": "Выполняется слияние ветки…",
395
+ "action.exportCsv": "Экспорт доски в CSV",
396
+ "action.resume": "Возобновить выполнение",
397
+ "diff.commits": "Коммиты задачи ({n})",
398
+ "diff.empty": "Нет коммитов или изменений файлов для этой задачи.",
399
+ "diff.filesChanged": "Изменено файлов: {n}",
400
+ "diff.hide": "Скрыть просмотр diff",
401
+ "diff.show": "Показать просмотр diff",
402
+ "diff.view": "Просмотр изменений",
403
+ "diff.title": "Изменения в ветке задачи",
404
+ "diff.loading": "Загрузка коммитов и diff…",
405
+ "diff.loadFailed": "Не удалось загрузить изменения: {error}",
406
+ "diff.author": "Автор",
407
+ "diff.hash": "Хеш",
408
+ "diff.message": "Сообщение коммита",
409
+ "diff.date": "Дата",
410
+ "diff.additions": "Добавлено",
411
+ "diff.deletions": "Удалено",
412
+ "diff.uncommitted": "Незакоммиченные изменения",
413
+ "diff.staged": "Подготовленные изменения",
414
+ "diff.mergeConflict": "Обнаружены конфликты слияния",
415
+ "diff.resolveConflicts": "Разрешить конфликты",
416
+ "diff.mergeSuccess": "Ветка успешно смержена в основную",
417
+ "diff.mergeFailed": "Сбой слияния ветки: {error}",
418
+ "diff.revert": "Откатить коммит",
419
+ "diff.cherryPick": "Перенести коммит (Cherry-pick)",
420
+ "diff.branch": "Ветка: {name}",
421
+ "diff.truncated": "Дифф обрезан (превышен лимит)",
422
+ "field.autoSyncSessions": "Автосинхронизация внешних сессий чата",
423
+ "field.maxConcurrentSessions": "Макс. параллельных сессий агентов",
424
+ "field.workspaceClaimBoundaries": "Границы захвата рабочей области",
425
+ "hint.autoSyncSessions": "Автоматически создавать карточки на доске для стандартных диалогов чата DSH.",
426
+ "reasoning.default": "По умолчанию (модель)",
427
+ "reasoning.high": "Высокое (глубокие рассуждения)",
428
+ "reasoning.label": "Глубина рассуждений",
429
+ "reasoning.low": "Низкая (быстро / экономно)",
430
+ "reasoning.medium": "Средняя (сбалансировано)",
431
+ "slash.hint": "Введите / для списка команд и навыков",
432
+ "template.bugfix": "Исправление бага (Bugfix)",
433
+ "template.feature": "Новая функция (Feature)",
434
+ "template.label": "Шаблон задачи",
435
+ "template.none": "Без шаблона (пусто)",
436
+ "template.refactor": "Рефакторинг (Refactor)",
437
+ "template.release": "Релиз (Подготовка выпуска)",
438
+ "template.security": "Безопасность (Аудит и CVE)"
366
439
  }
367
440
  }
@@ -151,7 +151,19 @@
151
151
  "rulesTitle": "Правила маршрутизации моделей",
152
152
  "rulesTotal": "Всего правил: {count}",
153
153
  "webSearch": "Использовать Command Code для веб-поиска DSH",
154
- "webSearchHint": "Если включено, инструмент web_search для модели работает через Command Code (тот же API-ключ и base URL, что и в чате). Если выключено, используется встроенный поиск DeepSeek."
154
+ "webSearchHint": "Если включено, инструмент web_search для модели работает через Command Code (тот же API-ключ и base URL, что и в чате). Если выключено, используется встроенный поиск DeepSeek.",
155
+ "modelSearchEmpty": "Подходящих моделей не найдено",
156
+ "modelSearchPlaceholder": "Поиск модели по имени или ID…",
157
+ "modelStale": "Устаревшая модель (не найдена в текущем каталоге)",
158
+ "visibleModelsCleanStale": "Очистить устаревшие ({count})",
159
+ "visibleModelsCount": "Выбрано моделей: {count}",
160
+ "visibleModelsHint": "Выберите модели, которые будут доступны для назначения правил маршрутизации",
161
+ "visibleModelsPick": "Выбрать модели",
162
+ "visibleModelsShowAll": "Показать все модели",
163
+ "visibleModelsHideInactive": "Скрыть неактивные",
164
+ "visibleModelsReset": "Сбросить выбор моделей",
165
+ "visibleModelsStaleHint": "{count} выбранных моделей больше нет в каталоге (возможно, выведены из эксплуатации); на остальные модели это не влияет. Удалите их или сохраните.",
166
+ "visibleModelsTitle": "Видимые модели"
155
167
  },
156
168
  "commandcode": {
157
169
  "title": "📊 Использование Command Code{account}",
@@ -282,6 +282,12 @@
282
282
  "gate.ok": "Понятно",
283
283
  "gate.orNewer": "или новее",
284
284
  "gate.title": "Требуется обновление DSH",
285
- "jump.statsLine": "Просмотр состава контекста на вкладке «Контекст»"
285
+ "jump.statsLine": "Просмотр состава контекста на вкладке «Контекст»",
286
+ "browser.dna": "Режим ДНК",
287
+ "browser.dnaTip": "Ленточная полоса элементов в порядке чтения контекста моделью: системный промпт, схемы инструментов, хронология сообщений (наведите для деталей, нажмите для перехода к строке)",
288
+ "detail.loadFailed": "Не удалось загрузить историю — нажмите для повтора",
289
+ "detail.loading": "Загрузка истории…",
290
+ "tip.cat": "{cat} ≈ {n}",
291
+ "trend.focus": "Отображается только {cat}"
286
292
  }
287
293
  }
@@ -52,6 +52,18 @@
52
52
  "create.note": "Навык активируется немедленно (автосканирование файловой системы). Его содержимое внедряется в контекст модели как инструкция — не указывайте конфиденциальные данные.",
53
53
  "refresh": "Обновить",
54
54
  "close": "Закрыть",
55
- "cwd": "рабочая папка: {cwd}"
55
+ "cwd": "рабочая папка: {cwd}",
56
+ "filter.clear": "Очистить фильтры",
57
+ "filter.empty": "Нет навыков, соответствующих «{query}»",
58
+ "filter.emptyWorkspace": "В текущей рабочей области нет локальных навыков",
59
+ "filter.searchLabel": "Поиск навыков",
60
+ "filter.searchPlaceholder": "Поиск по имени, тегу или описанию навыка…",
61
+ "filter.workspaceAll": "Все рабочие области",
62
+ "filter.workspaceCurrent": "Текущая рабочая область ({name})",
63
+ "filter.workspaceLabel": "Рабочая область",
64
+ "filter.tags": "Фильтр по тегам",
65
+ "filter.categories": "Категории навыков",
66
+ "workspace.isolated": "Изолировано рабочей областью",
67
+ "workspace.isolatedHint": "Этот навык принадлежит рабочей области «{workspace}» и изолирован от контекста текущей сессии"
56
68
  }
57
- }
69
+ }
@@ -24,6 +24,7 @@
24
24
  "maxSnapshots": "Максимум снимков",
25
25
  "sub": "Теневые снимки, diff и мгновенный откат для безопасности агента.",
26
26
  "tabTitle": "Машина времени",
27
- "unavailable": "Настройки недоступны"
27
+ "unavailable": "Настройки недоступны",
28
+ "sidebarNotice": "Снимки состояния рабочей области сохраняются автоматически перед каждым крупным действием агента."
28
29
  }
29
- }
30
+ }
@@ -1,8 +1,142 @@
1
1
  {
2
2
  "dsh-clinebot": {
3
3
  "settings.loading": "Загрузка настроек ClineBot…",
4
- "settings.unavailable": "Настройки ClineBot недоступны (системный namespace не готов).",
5
- "subtitle": "Подписка ClinePass ($9.99/мес) с проверенными и пользовательскими моделями.",
6
- "title": "ClineBot"
4
+ "settings.unavailable": "Настройки ClineBot временно недоступны",
5
+ "subtitle": "Автономный агент ClineBot для глубокого рефакторинга и парного программирования",
6
+ "title": "ClineBot",
7
+ "accounts.active_badge": "Активен",
8
+ "accounts.add_btn": "Добавить аккаунт",
9
+ "accounts.desc": "Управление учётными записями и API-ключами провайдеров для ClineBot.",
10
+ "accounts.env_placeholder": "Имя переменной окружения (напр. CLINE_API_KEY)",
11
+ "accounts.label_placeholder": "Название аккаунта (напр. Рабочий)",
12
+ "accounts.pin_btn": "Сделать основным",
13
+ "accounts.pinned_badge": "Основной",
14
+ "accounts.title": "Аккаунты ClineBot",
15
+ "accounts.delete_confirm": "Удалить аккаунт «{name}»?",
16
+ "accounts.empty": "Нет настроенных аккаунтов. Добавьте первый аккаунт выше.",
17
+ "accounts.save": "Сохранить аккаунт",
18
+ "accounts.cancel": "Отмена",
19
+ "accounts.edit": "Редактировать",
20
+ "accounts.delete": "Удалить",
21
+ "accounts.status": "Статус",
22
+ "accounts.provider": "Провайдер",
23
+ "accounts.model": "Модель по умолчанию",
24
+ "accounts.apiKey": "API-ключ",
25
+ "accounts.apiBase": "Базовый URL API",
26
+ "accounts.quota": "Остаток квоты",
27
+ "accounts.rateLimit": "Лимит запросов",
28
+ "accounts.cooldown": "Охлаждение: {s}с",
29
+ "profiles.title": "Профили настроек",
30
+ "profiles.add": "Создать профиль",
31
+ "profiles.desc": "Готовые наборы настроек, системных инструкций и разрешений.",
32
+ "profiles.default": "По умолчанию",
33
+ "profiles.select": "Выбрать профиль",
34
+ "profiles.name": "Имя профиля",
35
+ "profiles.prompt": "Системный промпт",
36
+ "profiles.temperature": "Температура",
37
+ "profiles.maxTokens": "Максимум токенов",
38
+ "profiles.contextLimit": "Лимит контекста",
39
+ "profiles.save": "Сохранить профиль",
40
+ "profiles.delete": "Удалить профиль",
41
+ "tools.title": "Инструменты ClineBot",
42
+ "tools.desc": "Разрешённые системные инструменты для выполнения задач агентом.",
43
+ "tools.bash": "Выполнение команд терминала",
44
+ "tools.fs": "Чтение и запись файлов",
45
+ "tools.browser": "Управление браузером",
46
+ "tools.editor": "Умная правка кода",
47
+ "tools.mcp": "Внешние MCP-серверы",
48
+ "tools.enableAll": "Включить все",
49
+ "tools.disableAll": "Отключить все",
50
+ "settings.title": "Настройки ClineBot",
51
+ "settings.subtitle": "Интеграция автономного кодинг-ассистента ClineBot в DeepSeek Harness.",
52
+ "settings.saving": "Сохранение…",
53
+ "settings.saved": "Настройки сохранены",
54
+ "settings.saveFailed": "Не удалось сохранить настройки",
55
+ "settings.general": "Основные",
56
+ "settings.models": "Модели",
57
+ "settings.security": "Безопасность",
58
+ "settings.advanced": "Дополнительно",
59
+ "settings.autoApprove": "Автоодобрение безопасных действий",
60
+ "settings.autoApproveDesc": "Автоматически выполнять команды чтения и безопасные операции без запроса подтверждения",
61
+ "settings.diffViewer": "Встроенный просмотрщик diff",
62
+ "settings.diffViewerDesc": "Отображать подробные различия кода перед применением правок",
63
+ "settings.soundNotifications": "Звуковые уведомления",
64
+ "settings.soundNotificationsDesc": "Воспроизводить сигнал при завершении длительной задачи или ожидании ввода",
65
+ "settings.telemetry": "Анонимная телеметрия",
66
+ "settings.telemetryDesc": "Отправлять отчёты о сбоях для улучшения стабильности",
67
+ "status.ready": "ClineBot готов к работе",
68
+ "status.error": "Ошибка инициализации ClineBot",
69
+ "status.connecting": "Подключение к ClineBot…",
70
+ "status.disconnected": "Связь с ClineBot отключена",
71
+ "status.running": "Выполняется задача ClineBot",
72
+ "status.idle": "Ожидание задачи",
73
+ "badge.key_missing": "Ключ отсутствует",
74
+ "badge.key_ok": "Ключ ✓ ({source})",
75
+ "badge.not_registered": "Не зарегистрирован",
76
+ "badge.offline": "Узел недоступен",
77
+ "badge.online": "Узел онлайн ({latency} мс)",
78
+ "badge.registered": "Зарегистрирован в DSH ({count} моделей)",
79
+ "diag.desc": "ClineBot автоматически регистрируется в моделях DSH при настройке ключа. Вы можете выполнить проверку связи или принудительную синхронизацию.",
80
+ "diag.resync_btn": "Принудительно синхронизировать с DSH",
81
+ "diag.resynced_msg": "Провайдер синхронизирован с моделями DSH ({count} моделей)",
82
+ "diag.resyncing": "Синхронизация…",
83
+ "diag.smoke_btn": "Выполнить экспресс-тест (Ping)",
84
+ "diag.smoke_ok": "Экспресс-тест пройден успешно! Задержка: {latency} мс",
85
+ "diag.smoke_testing": "Тестирование…",
86
+ "diag.title": "⚡ Диагностика и авторегистрация",
87
+ "diag.unregister_btn": "Снять регистрацию в DSH",
88
+ "diag.unregistered_msg": "Провайдер удалён из моделей DSH",
89
+ "diag.unregistering": "Удаление…",
90
+ "header.sub": "Подключение моделей подписки ClinePass ($9.99/мес). Совместимость с OpenAI API, автоматическое отслеживание скользящих лимитов и мгновенная авторегистрация в DSH.",
91
+ "header.title": "Провайдер ClineBot (ClinePass)",
92
+ "key.desc": "Ключ сохраняется непосредственно в хранилище учётных данных DSH (~/.dsh/.credentials.yaml) и никогда не отображается в открытом виде в конфигурациях.",
93
+ "key.empty_err": "Пожалуйста, введите API-ключ перед сохранением",
94
+ "key.env_label": "Имя переменной окружения: ",
95
+ "key.get_key": "Получить ключ в консоли app.cline.bot ↗",
96
+ "key.hide": "Скрыть",
97
+ "key.login_fast: ": "🚀 Быстрый вход через веб",
98
+ "key.login_fast": "🚀 Быстрый вход через веб",
99
+ "key.login_waiting": "Ожидание авторизации в браузере…",
100
+ "key.placeholder_empty": "Вставьте ключ ClinePass (cline_...)",
101
+ "key.placeholder_has": "••••••••••••••••••••••••",
102
+ "key.save": "Сохранить ключ",
103
+ "key.saved_msg": "Ключ сохранён в учётных данных DSH. Валидация: {status}",
104
+ "key.saving": "Сохранение…",
105
+ "key.show": "Показать",
106
+ "key.title": "🔑 Авторизация и API-ключ",
107
+ "models.all": "Все",
108
+ "models.auto_new": "Новинки",
109
+ "models.coding": "Только кодинг",
110
+ "models.desc": "Каталог синхронизируется напрямую с подпиской ClinePass. Модели новых тарифов подключаются автоматически. Снимите выбор, чтобы скрыть модель из выбора в чате DSH.",
111
+ "models.recommended": "Рекомендуемые",
112
+ "models.star": "Избранное",
113
+ "models.sync": "🔄 Проверить модели тарифа",
114
+ "models.synced_msg": "Модели подписки синхронизированы: {total} ({discovered} обнаружено из ClinePass)",
115
+ "models.syncing": "Проверка…",
116
+ "models.th_active": "Вкл",
117
+ "models.th_caps": "Возможности",
118
+ "models.th_ctx": "Контекст",
119
+ "models.th_id": "ID модели",
120
+ "models.th_name": "Имя модели",
121
+ "models.title": "🎯 Выбор моделей в DSH (активно {enabled} из {total})",
122
+ "models.vision": "Только с зрением",
123
+ "quota.account": "Аккаунт: {email} · Тариф: {plan}",
124
+ "quota.desc": "Официальные скользящие лимиты запросов от ClinePass",
125
+ "quota.refresh": "Обновить квоты",
126
+ "quota.refreshed_msg": "Квоты подписки обновлены",
127
+ "quota.refreshing": "Обновление…",
128
+ "quota.remaining": "Осталось: {pct}%",
129
+ "quota.reset_at": "Сброс: {time}",
130
+ "quota.title": "📊 Квоты и лимиты запросов ClinePass",
131
+ "quota.used": "Использовано {pct}%",
132
+ "quota.window_5h": "⏱ 5-часовой скользящий лимит",
133
+ "quota.window_weekly": "📅 Еженедельный лимит",
134
+ "settings.retry": "Повторить",
135
+ "stats.desc": "Локальный мониторинг запросов, сетевой задержки и расхода токенов через ClinePass.",
136
+ "stats.last_req": "Время последнего запроса",
137
+ "stats.latency": "Задержка последнего запроса",
138
+ "stats.requests": "Успешных / Всего запросов",
139
+ "stats.title": "📈 Телеметрия текущей сессии DSH",
140
+ "stats.tokens": "Оценочные токены сессии"
7
141
  }
8
142
  }
@@ -219,7 +219,7 @@
219
219
  "repoLandPlaceholder": "владелец/репо или URL GitHub, напр. deepseek-ai/deepseek-harness",
220
220
  "repoLandRemoveConfirm": "Удалить landed repo {repo} (local folder will be removed)?",
221
221
  "repoLandSaveDir": "Сохранить path",
222
- "repoLandTitle": "Клонирование репозиториев: клонирование любого проекта GitHub в ~/.dsh/repos/ (не только плагинов DSH)",
222
+ "repoLandTitle": "Клонирование репозиториев: клонирование любого проекта {source} в ~/.dsh/repos/ (не только плагинов DSH)",
223
223
  "repoLoading": "Чтение репозитория…",
224
224
  "resetSources": "Сбросить по умолчанию",
225
225
  "restartService": "Перезапустить service",
@@ -313,6 +313,35 @@
313
313
  "userDisabledTag": "Отключено пользователем",
314
314
  "userForcedTag": "Принудительно включён патчем",
315
315
  "versionLabel": "Версия",
316
- "view": "Осмотреть"
316
+ "view": "Осмотреть",
317
+ "addGitSource": "Добавить источник Git",
318
+ "addIndexSource": "Добавить индексный источник",
319
+ "editSourceHint": "Укажите URL реестра или репозитория пакетов плагинов",
320
+ "gitSourceBtn": "Git-источники",
321
+ "gitSourcesDesc": "Шаблон URL для клонирования (плейсхолдеры {owner}/{repo}). Этот список И ЕСТЬ список пользовательских git-источников — два встроенных лишь по умолчанию; нажмите «Добавить git-источник», чтобы заменить на свой: Gitee = https://gitee.com/{owner}/{repo}.git; GitLab = https://gitlab.com/{owner}/{repo}.git; собственный Gitea = https://your-domain/{owner}/{repo}.git; зеркало/прокси = https://mirror/https://github.com/{owner}/{repo}.git; локальный bare-репозиторий = file:///D:/repos/{owner}/{repo}.git. Основной первый, при сбое переход к следующим",
322
+ "gitSourcesTitle": "Источники Git-репозиториев",
323
+ "gitUrlPlaceholder": "напр. https://gitee.com/{owner}/{repo}.git",
324
+ "indexMergeDesc": "Объединение поисковых индексов из нескольких внешних каталогов плагинов",
325
+ "indexMergeTitle": "Слияние индексов",
326
+ "indexSync": "Синхронизировать индексы",
327
+ "indexSyncing": "Синхронизация индексов…",
328
+ "indexSyncDone": "Индексы успешно обновлены",
329
+ "gitBranch": "Ветка Git",
330
+ "gitAuthToken": "Токен доступа Git",
331
+ "gitAuthHint": "Укажите имя секрета DSH с токеном доступа (не вставляйте сам токен)",
332
+ "gitCloneDepth": "Глубина клонирования (shallow clone)",
333
+ "gitSubmodules": "Клонировать подмодули",
334
+ "gitStatus": "Статус источника Git",
335
+ "indexMergeLabel": "Объединять все источники индекса",
336
+ "indexSourcesDesc": "URL-адреса для скачивания статического индекса витрины плагинов (основной опрашивается первым, остальные по порядку при сбое). Укажите сервис интранета — СОДЕРЖИМОЕ индекса берётся из этого JSON, поэтому размещайте там объединённый публичный и приватный индекс. Чтобы видеть обе стороны сразу, включите опцию «Объединять все источники индекса» ниже",
337
+ "indexSourcesTitle": "Источники индекса",
338
+ "indexUrlPlaceholder": "URL JSON-индекса (https:// или локальный/интранет http://)",
339
+ "marketIndexFailed": "Не удалось загрузить индекс витрины",
340
+ "marketIndexFrom": "Источник индекса: {source}",
341
+ "marketIndexOffline": "Офлайн-данные · кэш от {time} (источники индекса недоступны, показан последний удачный результат)",
342
+ "removeSourceHint": "Удалить: убрать этот источник из списка (установленные плагины не пострадают)",
343
+ "repoLandSourceUnknown": "настроенный источник git",
344
+ "setPrimaryHint": "Сделать основным: опрашивается первым, при сбое используются остальные",
345
+ "unknown": "неизвестно"
317
346
  }
318
- }
347
+ }
@@ -70,6 +70,14 @@
70
70
  "transcriptMaxBytes": "Лимит байтов журнала",
71
71
  "transcriptMaxBytesHint": "Общий лимит байтов истории доказательств; не расширяет основной контекст агента.",
72
72
  "transcriptMaxEntries": "Лимит записей журнала",
73
- "transcriptMaxEntriesHint": "Максимум очищенных записей истории, относящихся к текущему действию."
73
+ "transcriptMaxEntriesHint": "Максимум очищенных записей истории, относящихся к текущему действию.",
74
+ "active": "Ревьюер активен",
75
+ "inactive": "Ревьюер отключён",
76
+ "pending": "Ожидание решения ревьюера…",
77
+ "readOnly": "Режим только для чтения",
78
+ "saving": "Сохранение параметров ревьюера…",
79
+ "fullAccessNative": "Полный доступ: нативное исполнение",
80
+ "fullAccessReview": "Полный доступ: проверка всех действий",
81
+ "invalidSettings": "Некорректная конфигурация ревьюера — проверьте выбранные модели"
74
82
  }
75
83
  }
@@ -81,6 +81,33 @@
81
81
  "viewer.tool": "инструмент: {name}",
82
82
  "viewer.truncated": "Отображаются последние {shown} из {total} сообщений.",
83
83
  "viewer.unreadable": "Устаревший формат журнала, который ядро не может прочитать. Диалог сохранён на диске, но не может быть отображён.",
84
- "viewer.you": "Вы"
84
+ "viewer.you": "Вы",
85
+ "bulk.clear": "Очистить",
86
+ "bulk.count": "выбрано: {n}",
87
+ "bulk.hide": "Скрыть",
88
+ "bulk.label": "Метка…",
89
+ "bulk.pin": "Закрепить",
90
+ "bulk.select": "Выбрать сессию",
91
+ "bulk.unhide": "Показать",
92
+ "card.hideBlank": "Скрывать сессии без сообщений",
93
+ "card.labelsCount": "меток: {n}",
94
+ "jump.archived": "в архиве",
95
+ "jump.empty": "Ничего не найдено.",
96
+ "jump.hint": "Alt+K для открытия · стрелки для перемещения · Enter для перехода · Esc для закрытия",
97
+ "jump.placeholder": "Заголовок или текст сообщения",
98
+ "jump.title": "Перейти к диалогу",
99
+ "label.add": "Добавить в «{name}»",
100
+ "label.new": "Новая метка…",
101
+ "label.prompt": "Имя метки",
102
+ "label.remove": "Удалить из «{name}»",
103
+ "period.month": "В этом месяце",
104
+ "period.older": "Ранее",
105
+ "period.today": "Сегодня",
106
+ "period.week": "На этой неделе",
107
+ "viewer.copied": "Скопировано в буфер обмена.",
108
+ "viewer.copy": "Копировать как Markdown",
109
+ "viewer.exportFailed": "Не удалось экспортировать: {message}",
110
+ "viewer.noClipboard": "буфер обмена недоступен в этом контексте браузера",
111
+ "viewer.save": "Сохранить .md"
85
112
  }
86
113
  }
@@ -0,0 +1,6 @@
1
+ {
2
+ "pin": {
3
+ "action.pin": "Закрепить",
4
+ "action.unpin": "Открепить"
5
+ }
6
+ }