@goodandready/dsh-russian-lang 0.2.4 → 0.2.6
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/lib/client.js +2 -2
- package/package.json +1 -1
- package/ru-plugins/10-kanban.json +29 -2
- package/ru-plugins/17-dsh-context.json +14 -1
- package/ru-plugins/32-vision-bridge.json +54 -2
- package/ru-plugins/33-messenger-gateway.json +45 -2
- package/ru-plugins/34-key-rotation.json +38 -2
- package/ru-plugins/35-gitea.json +17 -2
- package/ru-plugins/38-context-lens.json +11 -2
- package/ru-plugins/39-shadow-auditor.json +9 -1
- package/ru-plugins/42-plugin-console.json +318 -0
- package/ru-plugins/43-better-input.json +127 -0
- package/ru-plugins/44-auto-review.json +75 -0
- package/ru-plugins/45-session-control.json +113 -0
- package/ru-plugins/46-memory-brain.json +33 -0
- package/ru-plugins/47-llm-wiki.json +26 -0
- package/ru-plugins/48-task-tracker.json +19 -0
- package/ru-plugins/49-usage-guard.json +19 -0
- package/ru-plugins/50-automode.json +12 -0
- package/ru-plugins/51-plugin-guard.json +12 -0
- package/ru-plugins/52-navbar.json +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Russian localization for the DeepSeek Harness web UI: adds Русский as the third option in the native Settings - General - Language menu. Translates the full core surface (100% coverage of DSH 0.1.1-rc.2) plus 16 community plugin namespaces - 51 namespaces, 2899 strings (about 64% hand-reviewed, the rest machine-drafted and tracked as status: draft), with Russian plural forms, count-key plurals, a typography pass (guillemets, em dash, nbsp), a wrong-layout input hint and browser spellcheck. The locale runtime snapshot is extended at runtime on unpatched cores; no files in the DSH installation are modified. The choice is persisted through the plugin-owned russian-lang namespace.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -362,6 +362,33 @@
|
|
|
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": "Риски и примечания"
|
|
366
393
|
}
|
|
367
|
-
}
|
|
394
|
+
}
|
|
@@ -275,6 +275,19 @@
|
|
|
275
275
|
"browser.noSystem": "В заголовке этого запроса не было системного промпта",
|
|
276
276
|
"rich.md.copy": "Копировать",
|
|
277
277
|
"rich.md.copied": "Скопировано",
|
|
278
|
-
"rich.md.footnotes": "Сноски"
|
|
278
|
+
"rich.md.footnotes": "Сноски",
|
|
279
|
+
"gate.body": "dsh-context поддерживает DeepSeek Harness версии {minimum} или новее.",
|
|
280
|
+
"gate.current": "Текущая",
|
|
281
|
+
"gate.minimum": "Минимально требуемая",
|
|
282
|
+
"gate.ok": "Понятно",
|
|
283
|
+
"gate.orNewer": "или новее",
|
|
284
|
+
"gate.title": "Требуется обновление DSH",
|
|
285
|
+
"jump.statsLine": "Просмотр состава контекста на вкладке «Контекст»",
|
|
286
|
+
"browser.dna": "Режим ДНК",
|
|
287
|
+
"browser.dnaTip": "Ленточная полоса элементов в порядке чтения контекста моделью: системный промпт, схемы инструментов, хронология сообщений (наведите для деталей, нажмите для перехода к строке)",
|
|
288
|
+
"detail.loadFailed": "Не удалось загрузить историю — нажмите для повтора",
|
|
289
|
+
"detail.loading": "Загрузка истории…",
|
|
290
|
+
"tip.cat": "{cat} ≈ {n}",
|
|
291
|
+
"trend.focus": "Отображается только {cat}"
|
|
279
292
|
}
|
|
280
293
|
}
|
|
@@ -142,6 +142,58 @@
|
|
|
142
142
|
"totalCalls": "Всего вызовов: {n}",
|
|
143
143
|
"totalLatency": "Суммарная задержка: {time}с",
|
|
144
144
|
"weightHint": "Относительный вес канала при взвешенной балансировке",
|
|
145
|
-
"weightLabel": "Вес:"
|
|
145
|
+
"weightLabel": "Вес:",
|
|
146
|
+
"deskew": "Устранение перекоса изображений",
|
|
147
|
+
"empty": "-",
|
|
148
|
+
"enhanceImage": "Улучшение качества изображений",
|
|
149
|
+
"escalation": "Эскалация",
|
|
150
|
+
"escalationAuto": "Автоэскалация (второй проход для сложных изображений)",
|
|
151
|
+
"escalationSimple": "Только простой режим (один проход)",
|
|
152
|
+
"failed": "Не удалось загрузить/сохранить",
|
|
153
|
+
"filterProviders": "Фильтр провайдеров…",
|
|
154
|
+
"freeProviders": "Бесплатные провайдеры",
|
|
155
|
+
"imageMaxHeight": "Макс. высота (px)",
|
|
156
|
+
"imageMaxWidth": "Макс. ширина (px)",
|
|
157
|
+
"imageQuality": "Качество (1–100)",
|
|
158
|
+
"jsonrpc": "JSON-RPC",
|
|
159
|
+
"keyHidden": "неизвестно",
|
|
160
|
+
"keyMissing": "нет ключа",
|
|
161
|
+
"keyOk": "ключ в порядке",
|
|
162
|
+
"maskPII": "Маскировать персональные данные в промптах",
|
|
163
|
+
"maskSystemPaths": "Маскировать пути и IP в ответах",
|
|
164
|
+
"method": "Метод",
|
|
165
|
+
"mode": "Режим",
|
|
166
|
+
"modeHybrid": "Гибридный (автоперезапись + инструменты)",
|
|
167
|
+
"modeLlm": "Только LLM (автоперезапись, инструменты доступны)",
|
|
168
|
+
"modeTools": "Только инструменты (без перезаписи, вызов describe_image)",
|
|
169
|
+
"modelInvalid": "Модель не принимает изображения",
|
|
170
|
+
"noVisionModels": "No vision models in the catalog (input: [text, image]) — add one in Настройки → Models.",
|
|
171
|
+
"nsfwFilter": "Фильтр неприемлемого контента",
|
|
172
|
+
"presetCloud": "Пресет: Облако",
|
|
173
|
+
"presetLmStudio": "Пресет: LM Studio",
|
|
174
|
+
"presetLocal": "Пресет: Локальный",
|
|
175
|
+
"protocol": "Протокол",
|
|
176
|
+
"protocolOpenaiChat": "openai-chat",
|
|
177
|
+
"protocolOpenaiResponses": "openai-responses",
|
|
178
|
+
"reqBoth": "Выберите провайдера и модель, или оставьте оба пустыми для автовыбора",
|
|
179
|
+
"requestTemplate": "Шаблон запроса",
|
|
180
|
+
"reset": "Сброс (авто)",
|
|
181
|
+
"responsePath": "Путь ответа",
|
|
182
|
+
"security": "Безопасность",
|
|
183
|
+
"selfCheck": "Визуальная самопроверка",
|
|
184
|
+
"sglang": "SGLang",
|
|
185
|
+
"strategyAuto": "Авто (использовать Vision LLM)",
|
|
186
|
+
"strategyCacheOnly": "Только кэш (без сети)",
|
|
187
|
+
"strategyLlm": "Зрительная модель (Vision LLM)",
|
|
188
|
+
"strategyOcrLocal": "Локальный OCR (резерв)",
|
|
189
|
+
"stripEXIF": "Удалять метаданные EXIF",
|
|
190
|
+
"subtitle": "Изображения в чате обрабатываются выбранной моделью зрения. Оставьте поля пустыми для автовыбора первой подходящей модели.",
|
|
191
|
+
"testFail": "Сбой: {err}",
|
|
192
|
+
"testOk": "OK ({ms}мс)",
|
|
193
|
+
"testVision": "Тест зрения",
|
|
194
|
+
"testing": "Тестирование…",
|
|
195
|
+
"tileLargeImages": "Фрагментировать большие изображения",
|
|
196
|
+
"type": "Тип",
|
|
197
|
+
"vllm": "vLLM"
|
|
146
198
|
}
|
|
147
|
-
}
|
|
199
|
+
}
|
|
@@ -133,6 +133,49 @@
|
|
|
133
133
|
"webhookPath": "Путь вебхука",
|
|
134
134
|
"webhookPort": "Порт вебхука",
|
|
135
135
|
"webhookSecret": "Секретный токен",
|
|
136
|
-
"webhookUrl": "Публичный URL вебхука"
|
|
136
|
+
"webhookUrl": "Публичный URL вебхука",
|
|
137
|
+
"maxTextKb": "Макс. текст из документа (КБ)",
|
|
138
|
+
"media": "Медиа",
|
|
139
|
+
"model": "Модель",
|
|
140
|
+
"modelHint": "Пусто = по умолчанию в DSH",
|
|
141
|
+
"notifyBridge": "Уведомления → Telegram-чат",
|
|
142
|
+
"notifyBridgeHint": "task_done/error из веб-сессий (не msgw-*)",
|
|
143
|
+
"notifyHome": "Имя домашнего чата уведомлений",
|
|
144
|
+
"pairingApprove": "Одобрить",
|
|
145
|
+
"pairingEmpty": "Нет ожидающих кодов",
|
|
146
|
+
"pairingRefresh": "Обновить",
|
|
147
|
+
"pairingReject": "Отклонить",
|
|
148
|
+
"photoOnly": "Фото без подписи",
|
|
149
|
+
"photoPrompt": "Ждать вопроса (рекомендуется)",
|
|
150
|
+
"photoRun": "Отвечать немедленно",
|
|
151
|
+
"pollInterval": "Интервал опроса (мс)",
|
|
152
|
+
"pollTimeout": "Таймаут опроса (сек)",
|
|
153
|
+
"progressEnable": "Сообщение о ходе выполнения (рассуждение → удаление → финал)",
|
|
154
|
+
"provider": "Провайдер",
|
|
155
|
+
"providerHint": "Пусто = по умолчанию в DSH",
|
|
156
|
+
"quickActions": "Клавиатура быстрых действий (/new, /stop, /voice, /status)",
|
|
157
|
+
"reactionsEnable": "Реакции во время обработки (👀)",
|
|
158
|
+
"sessionScope": "Область действия групповых сессий",
|
|
159
|
+
"sessionScopeChat": "Общая для чата/темы",
|
|
160
|
+
"sessionScopeUser": "Для каждого пользователя (рекомендуется)",
|
|
161
|
+
"statusIndicator": "Статус indicator (Online/Offline)",
|
|
162
|
+
"statusIndicatorHint": "Задаёт краткое описание бота; у ботов нет индикатора присутствия.",
|
|
163
|
+
"telegram": "Telegram",
|
|
164
|
+
"textFormat": "Формат текста",
|
|
165
|
+
"textFormatHtml": "Markdown → Telegram HTML",
|
|
166
|
+
"textFormatPlain": "Простой текст",
|
|
167
|
+
"transport": "Транспорт",
|
|
168
|
+
"transportPoll": "Длинный опрос (getUpdates)",
|
|
169
|
+
"transportWebhook": "Вебхук (Webhook)",
|
|
170
|
+
"tts": "Голосовые ответы",
|
|
171
|
+
"ttsEnable": "Голосовые ответы через dsh-tts",
|
|
172
|
+
"ttsMaxChars": "Макс. символов для озвучки",
|
|
173
|
+
"turnTimeout": "Таймаут хода агента (сек)",
|
|
174
|
+
"voiceMode": "Режим голосовых ответов",
|
|
175
|
+
"voiceModeAlways": "Всегда использовать TTS",
|
|
176
|
+
"voiceModeMirror": "В ответ на входящие голосовые",
|
|
177
|
+
"voiceModeOff": "Выключено (если не включён /voice)",
|
|
178
|
+
"webhookSecretHint": "Оставьте пустым для сохранения текущего",
|
|
179
|
+
"webhookUrlHint": "Полный HTTPS URL, на который Telegram отправляет POST-запросы"
|
|
137
180
|
}
|
|
138
|
-
}
|
|
181
|
+
}
|
|
@@ -109,6 +109,42 @@
|
|
|
109
109
|
"statusFailed": "Ошибка",
|
|
110
110
|
"switchCount": "Переключений: {n}",
|
|
111
111
|
"testKey": "Проверить ключ",
|
|
112
|
-
"testSuccess": "Ключ валиден: ответ за {time}мс"
|
|
112
|
+
"testSuccess": "Ключ валиден: ответ за {time}мс",
|
|
113
|
+
"justNow": "только что",
|
|
114
|
+
"keyCooling": "охлаждение, {s}с",
|
|
115
|
+
"keyExpired": "истёк",
|
|
116
|
+
"keyExpiringSoon": "истекает через {n} дн.",
|
|
117
|
+
"keyFromEnv": "из переменных окружения, только чтение",
|
|
118
|
+
"keyHint": "Значение сохраняется в учётных данных DSH и никогда не отправляется обратно в браузер — отображаются только последние 5 символов.",
|
|
119
|
+
"keyLabel": "Ключ {n}",
|
|
120
|
+
"keyMissing": "учётные данные отсутствуют",
|
|
121
|
+
"keyReady": "готов",
|
|
122
|
+
"keySave": "Сохранить key",
|
|
123
|
+
"keyValuePlaceholder": "paste the key, then Сохранить",
|
|
124
|
+
"keyWriteFailed": "не удалось сохранить ключ: {msg}",
|
|
125
|
+
"moveDown": "Переместить вниз",
|
|
126
|
+
"moveUp": "Переместить вверх",
|
|
127
|
+
"notRegistered": "не зарегистрирован",
|
|
128
|
+
"notSecretShape": "сохранено, но значение не похоже на API-ключ — проверьте опечатки",
|
|
129
|
+
"poolExhausted": "пул исчерпан — все ключи охлаждаются",
|
|
130
|
+
"providersTitle": "Провайдеры и их ключи",
|
|
131
|
+
"resetCooldown": "Сбросить охлаждение",
|
|
132
|
+
"resetting": "Сброс…",
|
|
133
|
+
"retestBroken": "Повторный тест",
|
|
134
|
+
"retestFail": "повторный тест не пройден — ключ всё ещё не работает",
|
|
135
|
+
"rpmTitle": "запросов/мин: {u} использовано, {r} осталось",
|
|
136
|
+
"scheduleDays": "Расписание ротации (дней, 0=выкл.)",
|
|
137
|
+
"snapshotExport": "Снимок ⬇",
|
|
138
|
+
"snapshotImport": "Восстановить",
|
|
139
|
+
"subtitle": "Ротация API-ключей по провайдерам: пулы ключей, автоматическое переключение при исчерпании квот/лимитов, охлаждение и восстановление.",
|
|
140
|
+
"switchCodes": "Коды переключения (через запятую)",
|
|
141
|
+
"switchesNone": "переключений пока не было",
|
|
142
|
+
"switchesSome": "переключений: {n} · последнее: {reason}, {ago}",
|
|
143
|
+
"testAll": "Проверить все ключи",
|
|
144
|
+
"testFail": "СБОЙ",
|
|
145
|
+
"testOk": "OK",
|
|
146
|
+
"testing": "Тестирование…",
|
|
147
|
+
"usedAgo": "{ago} назад",
|
|
148
|
+
"weightHint": "вес в round-robin: сколько раз ключ участвует в цикле (1 = равная доля)"
|
|
113
149
|
}
|
|
114
|
-
}
|
|
150
|
+
}
|
package/ru-plugins/35-gitea.json
CHANGED
|
@@ -66,6 +66,21 @@
|
|
|
66
66
|
"giteaUrl": "URL сервера",
|
|
67
67
|
"giteaUser": "Пользователь",
|
|
68
68
|
"repoCloned": "Репозиторий успешно клонирован",
|
|
69
|
-
"repoCloning": "Клонирование репозитория…"
|
|
69
|
+
"repoCloning": "Клонирование репозитория…",
|
|
70
|
+
"gitSync": "Синхронизация",
|
|
71
|
+
"graphClose": "Закрыть граф",
|
|
72
|
+
"graphEmpty": "В репозитории не найдено коммитов",
|
|
73
|
+
"graphLoadMore": "Загрузить ещё коммиты",
|
|
74
|
+
"graphLoading": "Загрузка графа коммитов…",
|
|
75
|
+
"graphTitle": "Граф коммитов Git",
|
|
76
|
+
"intro": "Создайте учётные данные DSH, вставьте туда токен API, затем укажите только имя учётных данных ниже (например, GITEA_TOKEN).",
|
|
77
|
+
"openGraph": "Граф коммитов",
|
|
78
|
+
"saveFailed": "Сохранить failed",
|
|
79
|
+
"settingsUnavailable": "Настройки unavailable (namespace not registered).",
|
|
80
|
+
"tokenEnv": "Имя учётных данных",
|
|
81
|
+
"tokenEnvHint": "Имя учётных данных DSH, а не сам токен. По умолчанию GITEA_TOKEN.",
|
|
82
|
+
"tokenOff": "Токен не настроен",
|
|
83
|
+
"tokenOn": "Токен настроен",
|
|
84
|
+
"unsaved": "Не сохранено"
|
|
70
85
|
}
|
|
71
|
-
}
|
|
86
|
+
}
|
|
@@ -18,6 +18,15 @@
|
|
|
18
18
|
"saving": "Сохранение…",
|
|
19
19
|
"sub": "Сжатие AST, фильтрация логов, бюджет токенов",
|
|
20
20
|
"title": "Context Lens & Token Guard",
|
|
21
|
-
"tracking": "Отслеживание экономии токенов"
|
|
21
|
+
"tracking": "Отслеживание экономии токенов",
|
|
22
|
+
"active": "Активно",
|
|
23
|
+
"autoCollapse": "Автосворачивание логов",
|
|
24
|
+
"lowBudgetBadge": "Низкий бюджет",
|
|
25
|
+
"noData": "Нет данных",
|
|
26
|
+
"ops": "Операции",
|
|
27
|
+
"previewApprox": "Предпросмотр на сервере",
|
|
28
|
+
"readyState": "Готов к сжатию",
|
|
29
|
+
"refresh": "Обновить",
|
|
30
|
+
"threshold": "Порог автосжатия (символов)"
|
|
22
31
|
}
|
|
23
|
-
}
|
|
32
|
+
}
|
|
@@ -12,6 +12,14 @@
|
|
|
12
12
|
"strictSecretsDesc": "Блокировать при наличии API-ключей или приватных токенов в diff",
|
|
13
13
|
"title": "Аудитор безопасности (Shadow Auditor)",
|
|
14
14
|
"unlocked": "Разблокировано",
|
|
15
|
-
"subtitle": "Безопасность секретов и команд"
|
|
15
|
+
"subtitle": "Безопасность секретов и команд",
|
|
16
|
+
"auditBadgeDesc": "Отображать бейдж безопасности в заголовке сессии",
|
|
17
|
+
"enableAuditLog": "Включить журнал аудита",
|
|
18
|
+
"enableAuditLogDesc": "Записывать все выполненные агентом shell-команды в локальный файл журнала",
|
|
19
|
+
"maxFileSizeMb": "Макс. размер файла лога (МБ)",
|
|
20
|
+
"maxFileSizeMbDesc": "Размер, при котором выполняется ротация файла аудита",
|
|
21
|
+
"retentionDays": "Срок хранения логов (дней)",
|
|
22
|
+
"retentionDaysDesc": "Удалять записи аудита старше указанного количества дней",
|
|
23
|
+
"unavailable": "Настройки аудитора временно недоступны"
|
|
16
24
|
}
|
|
17
25
|
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings.pluginConsole": {
|
|
3
|
+
"active": "Подключён",
|
|
4
|
+
"adaptUnlockBtn": "Адаптировано — разблокировать",
|
|
5
|
+
"adaptUnlockDone": "Разблокировано: обновите страницу, строка включена",
|
|
6
|
+
"adaptUnlockHint": "Установленная версия прошла проверку исходного кода: разблокировать сейчас",
|
|
7
|
+
"addLocal": "Добавить локальный",
|
|
8
|
+
"addSearchSource": "Добавить источник поиска",
|
|
9
|
+
"addSource": "Добавить",
|
|
10
|
+
"aggregateBadge": "Агрегатор",
|
|
11
|
+
"aggregateTitle": "Репозиторий-агрегатор: корень не опубликован; плагины находятся в подпакетах (откройте для установки)",
|
|
12
|
+
"aiConfirmDeploy": "Будет выполнено шагов развёртывания: {n} для {name} (возможна установка ПО, запись настроек, запуск служб). Подтвердить и развернуть?",
|
|
13
|
+
"aiConsentApprove": "Согласен, продолжить (может взиматься плата)",
|
|
14
|
+
"aiConsentDecline": "Отмена",
|
|
15
|
+
"aiConsentNotifyTitle": "Установка плагина требует подтверждения",
|
|
16
|
+
"aiConsentRemember": "Больше не спрашивать (автоодобрение ИИ-планировщика; напоминания можно вернуть внизу маркета)",
|
|
17
|
+
"aiConsentText": "Все стандартные каналы установки не сработали. Локальный ИИ может взять установку на себя, вызвав модель DeepSeek API (может взиматься плата). Продолжить?",
|
|
18
|
+
"aiEmpowerCancel": "Отмена",
|
|
19
|
+
"aiEmpowerComponents": "Обнаруженные серверные компоненты",
|
|
20
|
+
"aiEmpowerDone": "Развёртывание через ИИ завершено",
|
|
21
|
+
"aiEmpowerExecuting": "ИИ выполняет развёртывание…",
|
|
22
|
+
"aiEmpowerFail": "Сбой развёртывания через ИИ",
|
|
23
|
+
"aiEmpowerFrameworkCheck": "Проверка совместимости с платформой",
|
|
24
|
+
"aiEmpowerLabel": "ИИ-развёртывание",
|
|
25
|
+
"aiEmpowerLogs": "Журнал выполнения",
|
|
26
|
+
"aiEmpowerNeedSteps": "Выберите хотя бы один шаг, затем нажмите «Одобрить и развернуть»",
|
|
27
|
+
"aiEmpowerPlanTitle": "План развёртывания через ИИ",
|
|
28
|
+
"aiEmpowerRun": "Одобрить и развернуть",
|
|
29
|
+
"aiEmpowerSrcTitle": "Компонент для развёртывания (npm-пакет или репозиторий GitHub)",
|
|
30
|
+
"aiEmpowerSteps": "Шаги выполнения (выбираемые)",
|
|
31
|
+
"aiEmpowerTitle": "ИИ-развёртывание: чтение документации, планирование и автоматическое развёртывание компонента; для серверных компонентов доступны кнопки запуска/остановки",
|
|
32
|
+
"aiEmpowerType": "Тип",
|
|
33
|
+
"aiEmpowerWaiting": "ИИ анализирует документацию и составляет план (1–5 мин, использует DeepSeek API)…",
|
|
34
|
+
"aiFallbackLabel": "ИИ-помощник",
|
|
35
|
+
"aiFallbackOff": "ИИ-помощник отключён вашими настройками; установка отменена без затрат",
|
|
36
|
+
"aiFallbackTitle": "Когда выключено: при сбое стандартных каналов установка сразу отменяется без вызова API модели",
|
|
37
|
+
"aiPlanHint": "⚠️ ИИ только составляет план — для развёртывания требуется ваше явное подтверждение: выбор шагов → Одобрить и развернуть → повторное подтверждение",
|
|
38
|
+
"aiProgressTitle": "Выполняется развёртывание через ИИ — нажмите для просмотра",
|
|
39
|
+
"aiRememberNote": "ИИ-помощник одобрен автоматически согласно вашим настройкам (напоминания можно вернуть внизу)",
|
|
40
|
+
"aiRememberReset": "Напоминания ИИ-помощника отключены (нажмите для восстановления)",
|
|
41
|
+
"aiRepaired": "Локальные AI took over and finished the repair; refresh the page",
|
|
42
|
+
"aiWorkspaceInfo": "Рабочее пространство исследования",
|
|
43
|
+
"autoReload": "Страница будет перезагружена автоматически…",
|
|
44
|
+
"backToSearch": "Назад к поиску",
|
|
45
|
+
"bundleNote": "Этот пакет является бандл-плагином (например, пакет оформления); перезапустите службу DSH для активации",
|
|
46
|
+
"cancelEdit": "Отмена",
|
|
47
|
+
"checkUpdate": "Проверить обновление",
|
|
48
|
+
"checkingUpdate": "Проверка…",
|
|
49
|
+
"cleanResiduals": "Очистить остаточные резервные копии",
|
|
50
|
+
"closeModal": "Закрыть",
|
|
51
|
+
"collapseDesc": "Свернуть",
|
|
52
|
+
"collapseResults": "Свернуть результаты",
|
|
53
|
+
"compActionDone": "{action}: {name}",
|
|
54
|
+
"compAutoTitle": "Автозапуск: запускать этот сервер автоматически при старте DSH (выкл. = вручную)",
|
|
55
|
+
"compCollapseTitle": "Свернуть карточку сервера",
|
|
56
|
+
"compDropTitle": "Развернуть для открытия всех URL сервера",
|
|
57
|
+
"compExpandTitle": "Развернуть карточку сервера",
|
|
58
|
+
"compHealthy": "Исправен",
|
|
59
|
+
"compNoUrl": "URL пока отсутствует",
|
|
60
|
+
"compOpen": "Открыть",
|
|
61
|
+
"compRefresh": "Обновить component status",
|
|
62
|
+
"compRunning": "Работает",
|
|
63
|
+
"compStart": "Запустить",
|
|
64
|
+
"compStatus": "Статус",
|
|
65
|
+
"compStop": "Остановить",
|
|
66
|
+
"compStopped": "Остановлен",
|
|
67
|
+
"compUnhealthy": "Неисправен",
|
|
68
|
+
"config-only": "Только настройки",
|
|
69
|
+
"confirmDelete": "Подтвердить delete?",
|
|
70
|
+
"consentWaiting": "Ожидание одобрения…",
|
|
71
|
+
"copiedInstallCmd": "Установить command copied — paste into your terminal to run it manually",
|
|
72
|
+
"copyInstallCmd": "Копировать",
|
|
73
|
+
"deleteBundleNote": "Бандл удалён; изменения вступят в силу после перезапуска службы",
|
|
74
|
+
"deleteNote": "Плагин deleted and package uninstalled; refreshing",
|
|
75
|
+
"deletePlugin": "Удалить plugin (remove config and uninstall package)",
|
|
76
|
+
"deleting": "Удаление…",
|
|
77
|
+
"depsOutdatedHint": "Для обновления этого пакета также требуются версии подпакетов (во избежание конфликтов)",
|
|
78
|
+
"details": "Сведения",
|
|
79
|
+
"direct": "(Браузер обращается к GitHub напрямую; серверный канал используется как резервный)",
|
|
80
|
+
"directOther": "Поискing {source} through the server channel (custom sources do not use browser-direct)",
|
|
81
|
+
"disabledTag": "Отключён",
|
|
82
|
+
"dismissFailure": "Скрыть уведомление",
|
|
83
|
+
"dshHint": "Похоже на плагин DSH",
|
|
84
|
+
"editSource": "Изменить",
|
|
85
|
+
"elapsed": "Прошло",
|
|
86
|
+
"empty": "Нет доступных плагинов.",
|
|
87
|
+
"enabledTag": "Включён",
|
|
88
|
+
"error": "Плагины are temporarily unavailable.",
|
|
89
|
+
"expandDesc": "Развернуть",
|
|
90
|
+
"expandResults": "Развернуть результаты",
|
|
91
|
+
"extraEmpty": "Нет установленных сторонних плагинов.",
|
|
92
|
+
"extraFilter": "Установитьed",
|
|
93
|
+
"extraFilterAll": "Все",
|
|
94
|
+
"extraFilterTitle": "Переключить: установленные (сторонние) / все",
|
|
95
|
+
"extraTag": "Сторонний",
|
|
96
|
+
"failed": "Операция не удалась",
|
|
97
|
+
"familyCheckUpdate": "Проверить все",
|
|
98
|
+
"familyCheckUpdateTip": "When a newer version is detected this Обновить button appears; click to start the full-family update (subpackage alignment + adapt check)",
|
|
99
|
+
"familyCollapse": "Свернуть",
|
|
100
|
+
"familyExpand": "Развернуть",
|
|
101
|
+
"familySubs": "подпакетов",
|
|
102
|
+
"familyTag": "Семейство бандлов",
|
|
103
|
+
"familyUnlockAll": "Разблокировать all adapted",
|
|
104
|
+
"familyUnlockAllConfirm": "Разблокировать all adapted (source-scan passed) sub packages in this family? Сбой ones stay disabled.",
|
|
105
|
+
"familyUnlockAllDone": "Пакетная разблокировка семейства выполнена",
|
|
106
|
+
"familyUnlockAllTip": "Пакетно разблокировать все подпакеты семейства, прошедшие проверку исходного кода",
|
|
107
|
+
"familyUpdate": "Проверка версий семейства",
|
|
108
|
+
"familyUpdateBtn": "Обновить",
|
|
109
|
+
"frameworkPatchApplied": "применён повторно",
|
|
110
|
+
"frameworkPatchSkipped": "не требуется",
|
|
111
|
+
"frameworkRollbackBtn": "Откатить к предыдущей",
|
|
112
|
+
"frameworkRollbackDone": "Откат запущен: {from} -> восстановление, служба кратковременно отключится",
|
|
113
|
+
"frameworkRollbackTitle": "Откат к предыдущей версии платформы в один клик, служба перезапустится автоматически",
|
|
114
|
+
"frameworkUpToDate": "Платформа обновлена",
|
|
115
|
+
"frameworkUpToDateTitle": "Текущая платформа DSH уже последней версии",
|
|
116
|
+
"frameworkUpgradeBtn": "Обновление платформы",
|
|
117
|
+
"frameworkUpgradeCheckFailed": " (ошибка проверки версии — проверьте сеть и повторите)",
|
|
118
|
+
"frameworkUpgradeConfirm": "Подтвердить upgrade? (service will restart)",
|
|
119
|
+
"frameworkUpgradeDone": "Процесс обновления платформы выполнен",
|
|
120
|
+
"frameworkUpgradeNotice": "Обнаружено обновление платформы DSH: {from} → {to}. Настройки сохранены в {dir}; патч: {patch}. Проверьте совместимость сторонних плагинов.",
|
|
121
|
+
"frameworkUpgradeTitle": "Обновление платформы: резервная копия настроек → перезапуск службы DSH → npm upgrade платформы и пакетов (автооткат при ошибке)",
|
|
122
|
+
"frameworkUpgradeUpToDate": " (уже последняя версия)",
|
|
123
|
+
"frameworkUseUpgrade": "deepseek-harness является платформой DSH, а не плагином; обновление выполняется через карточку обновления платформы",
|
|
124
|
+
"fwStepBackup": "Резервное копирование настроек",
|
|
125
|
+
"fwStepDone": "Обновление завершено",
|
|
126
|
+
"fwStepInstall": "Обновление платформы",
|
|
127
|
+
"fwStepPkg": "Обновить official packages",
|
|
128
|
+
"fwStepRelaunch": "Перезапуск службы DSH",
|
|
129
|
+
"fwStepRollback": "Откат при сбое",
|
|
130
|
+
"fwStepStop": "Остановка службы (страница временно отключится)",
|
|
131
|
+
"giteeClear": "Очистить вход",
|
|
132
|
+
"giteeClientId": "Client ID",
|
|
133
|
+
"giteeClientSecret": "Client Secret",
|
|
134
|
+
"giteeDesc": "Gitee direct-repo mode needs no login; login only raises API rate limits (optional): ① Open gitee.com → Настройки → Data management → Third-party apps (or go directly to https://gitee.com/oauth/applications/new); ② Create an app: any app name, homepage URL = http://127.0.0.1:{port} (any valid URL works), redirect/callback URL = http://127.0.0.1:{port}/plugin-console/gitee-oauth-callback, grant scope user_info, projects; ③ Fill Client ID / Client Secret below, click Сохранить, then click Авторize Gitee",
|
|
135
|
+
"giteeEmpty": "Официальный API поиска Gitee устарел: введите имя репозитория (владелец/репо, напр. oschina/git-osc) и нажмите Enter",
|
|
136
|
+
"giteeLoggedIn": "Выполнен вход в Gitee: ",
|
|
137
|
+
"giteeLoginBtn": "Авторize Gitee",
|
|
138
|
+
"giteeLoginPrompt": "Вход в Gitee не обязателен: введите имя репозитория для поиска и установки",
|
|
139
|
+
"giteeRepoPlaceholder": "Введите репозиторий Gitee (владелец/репо, напр. oschina/git-osc)",
|
|
140
|
+
"giteeSave": "Сохранить",
|
|
141
|
+
"giteeSetupHint": "Вход не выполнен (необязательно) — прямой режим работает без входа; вход снимает ограничения лимитов",
|
|
142
|
+
"giteeTitle": "Вход в Gitee (необязательно)",
|
|
143
|
+
"githubCornerOut": "Вход в GitHub не выполнен",
|
|
144
|
+
"githubLoggedIn": "Выполнен вход в GitHub: ",
|
|
145
|
+
"headersPlaceholder": "Headers (optional): one per line, format Name: Value, e.g. Авторization: Bearer token",
|
|
146
|
+
"homepageLabel": "Домашняя страница",
|
|
147
|
+
"hubUpdateAvailable": "Скачать update",
|
|
148
|
+
"install": "Добавить и включить",
|
|
149
|
+
"installNote": "Применяется HMR; обновите страницу, если плагин содержит интерфейс",
|
|
150
|
+
"installSkill": "Установить skill",
|
|
151
|
+
"installed": "Установитьed and enabled",
|
|
152
|
+
"installedAt": "Установитьed",
|
|
153
|
+
"installedSkillsTitle": "Установитьed skills",
|
|
154
|
+
"installedTitle": "Установитьed plugins",
|
|
155
|
+
"installing": "Установитьing…",
|
|
156
|
+
"installingLocal": "Установитьing…",
|
|
157
|
+
"invalidSearchUrl": "Поиск URL template must contain the {q} placeholder",
|
|
158
|
+
"invalidSourceUrl": "Источник URL must start with https:// (or a private http:// address)",
|
|
159
|
+
"loadMore": "Загрузить ещё",
|
|
160
|
+
"loading": "Чтение плагинов…",
|
|
161
|
+
"loadingDetails": "Чтение сведений…",
|
|
162
|
+
"loadingMore": "Загрузка…",
|
|
163
|
+
"loadingPhase": "Загрузка",
|
|
164
|
+
"marketEmpty": "Нет подходящих проектов.",
|
|
165
|
+
"marketError": "Поиск failed",
|
|
166
|
+
"marketLoading": "Поискing GitHub…",
|
|
167
|
+
"marketLoadingOther": "Поискing {source}…",
|
|
168
|
+
"marketTitle": "Плагин market (GitHub)",
|
|
169
|
+
"marketTitleOther": "Плагин market ({source})",
|
|
170
|
+
"migrateBtn": "Миграция и адаптация",
|
|
171
|
+
"migrateTip": "Проект перенесён (адаптирован к текущей платформе)",
|
|
172
|
+
"modeBtn": "Переключить режим маркета: маркет плагинов / маркет навыков (навыки устанавливаются из репозиториев SKILL.md в ~/.dsh/skills)",
|
|
173
|
+
"multiEmpty": "Подходящих плагинов не найдено ни в одном источнике поиска.",
|
|
174
|
+
"multiSourceTitle": "Мультиисточник: параллельный поиск по GitHub и всем источникам",
|
|
175
|
+
"multiSourceToggle": "Переключатель мультиисточникового поиска",
|
|
176
|
+
"needPackage": "В этом репозитории нет package.json, прямое добавление невозможно",
|
|
177
|
+
"noComponents": "Серверных компонентов пока нет (они появятся после ИИ-развёртывания)",
|
|
178
|
+
"noDetail": "Описание для этого плагина не предоставлено.",
|
|
179
|
+
"noMatch": "Нет подходящих плагинов.",
|
|
180
|
+
"noPackage": "В этом репозитории нет package.json, установка невозможна",
|
|
181
|
+
"off": "Выключить",
|
|
182
|
+
"officialBadge": "Официальный",
|
|
183
|
+
"officialChecking": "Определение типов плагинов…",
|
|
184
|
+
"officialInstallLabel": "Официальная установка",
|
|
185
|
+
"officialOnlyToggle": "Только официальные",
|
|
186
|
+
"officialTitle": "Установитьable via official dsh plugin add (dsh.bundle manifest)",
|
|
187
|
+
"on": "Включить",
|
|
188
|
+
"packageName": "npm-пакет",
|
|
189
|
+
"pending": "Ожидание зависимостей",
|
|
190
|
+
"pendingCompatHint": "Force-disabled after framework upgrade: click Check update first; if a newer version exists the button becomes Обновить & adapt - click it and it unlocks automatically after the compat check",
|
|
191
|
+
"pendingCompatTag": "Ожидает адаптации",
|
|
192
|
+
"pluginSkillTag": "Плагин",
|
|
193
|
+
"pluginSkillsHint": "Предоставляются установленными плагинами, только для чтения; вызываются по имени навыка",
|
|
194
|
+
"pluginSkillsTitle": "Плагин-provided skills",
|
|
195
|
+
"pluginsMode": "Плагины",
|
|
196
|
+
"pluginsTab": "Плагины",
|
|
197
|
+
"privateRootHint": "Корневой пакет не опубликован в npm (приватный); прямая установка невозможна",
|
|
198
|
+
"protectedTag": "Защищённый",
|
|
199
|
+
"pure-plugin": "Обычный плагин",
|
|
200
|
+
"readmeLabel": "Сводка Readme",
|
|
201
|
+
"recentFailures": "Недавние ошибки установки",
|
|
202
|
+
"refreshList": "Обновить plugin list",
|
|
203
|
+
"relaunchBtn": "Перезапустить службу",
|
|
204
|
+
"relaunchDone": "Запрошен ручной перезапуск (запуск службы, если порт не прослушивается)",
|
|
205
|
+
"relaunchTitle": "Во время обновления платформы служба может отключиться — нажмите для ручного перезапуска DSH",
|
|
206
|
+
"reloadPage": "Обновить страницу",
|
|
207
|
+
"removeSource": "Удалить",
|
|
208
|
+
"repoError": "Сбой to read repository",
|
|
209
|
+
"repoLabel": "Репозиторий",
|
|
210
|
+
"repoLandBusy": "Клонирование… (крупные репозитории могут занять время)",
|
|
211
|
+
"repoLandDirLabel": "Сохранить path",
|
|
212
|
+
"repoLandDone": "Размещено в: ",
|
|
213
|
+
"repoLandEntry": "Клонирование репозиториев",
|
|
214
|
+
"repoLandExists": "Уже существует — клонирование не требуется",
|
|
215
|
+
"repoLandLabel": "Клонирование репозиториев",
|
|
216
|
+
"repoLandLanded": "Размещено",
|
|
217
|
+
"repoLandList": "Клонированные репозитории",
|
|
218
|
+
"repoLandOpenFolder": "Открыть папку",
|
|
219
|
+
"repoLandPlaceholder": "владелец/репо или URL GitHub, напр. deepseek-ai/deepseek-harness",
|
|
220
|
+
"repoLandRemoveConfirm": "Удалить landed repo {repo} (local folder will be removed)?",
|
|
221
|
+
"repoLandSaveDir": "Сохранить path",
|
|
222
|
+
"repoLandTitle": "Клонирование репозиториев: клонирование любого проекта GitHub в ~/.dsh/repos/ (не только плагинов DSH)",
|
|
223
|
+
"repoLoading": "Чтение репозитория…",
|
|
224
|
+
"resetSources": "Сбросить по умолчанию",
|
|
225
|
+
"restartService": "Перезапустить service",
|
|
226
|
+
"restarting": "Служба перезапускается, страница скоро восстановится…",
|
|
227
|
+
"retry": "Повторить",
|
|
228
|
+
"saveSource": "Сохранить",
|
|
229
|
+
"search": "Поиск",
|
|
230
|
+
"searchInstalledPlaceholder": "Поиск installed plugins (name or id)",
|
|
231
|
+
"searchPlaceholder": "Поиск dsh-plugin projects on GitHub (empty = default query)",
|
|
232
|
+
"searchPlaceholderOther": "Поиск {source} for plugins (empty = default query)",
|
|
233
|
+
"searchSourceTitle": "Нажмите для переключения источника поиска (GitHub / Gitee / свой)",
|
|
234
|
+
"searchSourcesDesc": "Поиск platforms (switch via the pill). Пользовательские sources use a URL template: {q}=keyword, {page}=page number",
|
|
235
|
+
"searchSourcesTitle": "Поиск sources",
|
|
236
|
+
"searchUrlPlaceholder": "Шаблон URL (должен содержать {q})",
|
|
237
|
+
"service": "Серверный компонент",
|
|
238
|
+
"setPrimary": "Сделать основным",
|
|
239
|
+
"skillBadge": "Навык",
|
|
240
|
+
"skillDelete": "Удалить skill",
|
|
241
|
+
"skillDeleteConfirm": "Удалить skill「{name}」?",
|
|
242
|
+
"skillDeletedMsg": "Навык удалён",
|
|
243
|
+
"skillDetailDisabled": "Отключён",
|
|
244
|
+
"skillDetailInstalled": "Установитьed",
|
|
245
|
+
"skillDetailPath": "Путь",
|
|
246
|
+
"skillDisable": "Отключить",
|
|
247
|
+
"skillDisabledTag": "Отключён",
|
|
248
|
+
"skillDisabledTitle": "Отключён: neither model nor user commands can invoke it (disable-model-invocation: true, re-enable anytime)",
|
|
249
|
+
"skillEnable": "Включить",
|
|
250
|
+
"skillEnabledMsg": "Навык включён",
|
|
251
|
+
"skillInstallNote": "Навык скопирован в ~/.dsh/skills; если в профиле не включён плагин dsh-skill-filesystem, навык не обнаружится",
|
|
252
|
+
"skillInstalledMsg": "Навык установлен",
|
|
253
|
+
"skillInstalledTag": "Установлен",
|
|
254
|
+
"skillMarketEmpty": "Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)",
|
|
255
|
+
"skillMetaLabel": "Описание навыка",
|
|
256
|
+
"skillNameLabel": "Имя навыка",
|
|
257
|
+
"skillRepoNote": "Репозиторий навыка (SKILL.md), не npm-пакет",
|
|
258
|
+
"skillSystemTag": "Системный",
|
|
259
|
+
"skillSystemTitle": "Системный навык (~/.dsh/skills/.system и т.д.), удаление невозможно",
|
|
260
|
+
"skillTab": "Навыки",
|
|
261
|
+
"skillTitle": "Репозиторий содержит SKILL.md — можно установить как навык в ~/.dsh/skills",
|
|
262
|
+
"skillToggledMsg": "Навык отключён",
|
|
263
|
+
"skillTopicsLabel": "Темы",
|
|
264
|
+
"skillUninstallHint": "Чтобы удалить навык: удалите каталог ~/.dsh/skills/<name>",
|
|
265
|
+
"skillWhenToUseLabel": "Когда использовать",
|
|
266
|
+
"skillsEmpty": "Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)",
|
|
267
|
+
"skillsEmptyHint": "Здесь учитываются только пользовательские навыки (~/.dsh/skills); навыки из плагинов отображаются в Центре навыков",
|
|
268
|
+
"skillsGithubOnly": "Поиск навыков поддерживается только через источник GitHub",
|
|
269
|
+
"skillsMarketTitle": "Маркет навыков (GitHub)",
|
|
270
|
+
"skillsMarketTitleOther": "Маркет навыков ({source})",
|
|
271
|
+
"skillsMode": "Навыки",
|
|
272
|
+
"skillsNote": "Режим навыков поддерживает только GitHub; установка навыка = клонирование репозитория в ~/.dsh/skills/<name>/ без патчей и перезапуска",
|
|
273
|
+
"skillsSearchPlaceholder": "Поиск по навыкам (имя, автор, описание)…",
|
|
274
|
+
"sourceName": "Имя",
|
|
275
|
+
"sourceOf": "Источник:",
|
|
276
|
+
"sourcePrimary": "Основной",
|
|
277
|
+
"sourceUrl": "URL (https://…)",
|
|
278
|
+
"sourcesBtn": "Источники",
|
|
279
|
+
"sourcesDesc": "Настройка внешних источников и репозиториев для поиска и установки плагинов",
|
|
280
|
+
"sourcesTitle": "Источники ПО",
|
|
281
|
+
"sourcesUpdated": "Источники обновлены",
|
|
282
|
+
"stageConfiguring": "Запись конфигурации активации",
|
|
283
|
+
"stageInstalling": "Установка",
|
|
284
|
+
"stageLabel": "Этап",
|
|
285
|
+
"stagePreparing": "Подготовка",
|
|
286
|
+
"stageRepairing": "Восстановление",
|
|
287
|
+
"subpackagesEmpty": "Устанавливаемых подпакетов не найдено.",
|
|
288
|
+
"subpackagesError": "Ошибка загрузки подпакетов",
|
|
289
|
+
"subpackagesLoading": "Чтение списка подпакетов…",
|
|
290
|
+
"subpackagesTitle": "Подпакеты репозитория (устанавливаются по отдельности)",
|
|
291
|
+
"suiteBadge": "Набор",
|
|
292
|
+
"suiteComponentFail": "Сбой",
|
|
293
|
+
"suiteComponentOk": "OK",
|
|
294
|
+
"suiteComponentType": "Компонент",
|
|
295
|
+
"suiteInstall": "Установить набор",
|
|
296
|
+
"suiteInstalledMsg": "Набор установлен",
|
|
297
|
+
"suiteRepoNote": "Репозиторий набора (агрегатор подмодулей), не npm-пакет — см. официальную команду установки ниже",
|
|
298
|
+
"suiteTitle": "Агрегатор подмодулей: автосборка компонентов (бандл-плагины / плагины / навыки / пресеты агентов) по логике install.ps1",
|
|
299
|
+
"tab": "Консоль плагинов",
|
|
300
|
+
"toggledOff": "Запрошено отключение",
|
|
301
|
+
"toggledOn": "Запрошено включение",
|
|
302
|
+
"toolbarCloseTitle": "Свернуть панель функций",
|
|
303
|
+
"toolbarLabel": "Панель функций",
|
|
304
|
+
"toolbarOpenTitle": "Развернуть панель функций",
|
|
305
|
+
"unloading": "Выгрузка",
|
|
306
|
+
"unobserved": "Не подключён",
|
|
307
|
+
"upToDate": "Актуальная версия",
|
|
308
|
+
"update": "Обновить",
|
|
309
|
+
"updateAndAdapt": "Обновить и адаптировать",
|
|
310
|
+
"updateAvailable": "Доступна новая версия",
|
|
311
|
+
"updateCheckFailed": "Сбой проверки",
|
|
312
|
+
"updateNow": "Обновить сейчас",
|
|
313
|
+
"userDisabledTag": "Отключено пользователем",
|
|
314
|
+
"userForcedTag": "Принудительно включён патчем",
|
|
315
|
+
"versionLabel": "Версия",
|
|
316
|
+
"view": "Осмотреть"
|
|
317
|
+
}
|
|
318
|
+
}
|