@goodandready/dsh-russian-lang 0.2.19 → 0.2.20
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/README.md +1 -1
- package/README.ru.md +1 -1
- package/README.zh.md +102 -0
- package/lib/client.js +72 -203
- package/lib/index.js +41 -8
- package/lib/locales/plugins/01-token-dashboard.json +1 -0
- package/lib/locales/plugins/02-subscriptions.json +1 -0
- package/lib/locales/plugins/03-dshmarket.json +1 -0
- package/lib/locales/plugins/04-context-doctor.json +1 -0
- package/lib/locales/plugins/05-plugins-store.json +1 -0
- package/lib/locales/plugins/06-im-hub.json +1 -0
- package/lib/locales/plugins/07-better-sidebar.json +1 -0
- package/lib/locales/plugins/08-task-board.json +1 -0
- package/lib/locales/plugins/09-dshmarket-1.13.json +1 -0
- package/lib/locales/plugins/10-kanban.json +1 -0
- package/lib/locales/plugins/11-skill-hub.json +1 -0
- package/lib/locales/plugins/12-skills-manager.json +1 -0
- package/lib/locales/plugins/13-agent-teams.json +1 -0
- package/lib/locales/plugins/14-ollama-cloud.json +1 -0
- package/lib/locales/plugins/15-commandcode.json +1 -0
- package/lib/locales/plugins/16-usage-stats.json +1 -0
- package/lib/locales/plugins/17-dsh-context.json +1 -0
- package/lib/locales/plugins/18-opencode-palette.json +1 -0
- package/lib/locales/plugins/19-univer-office.json +1 -0
- package/lib/locales/plugins/20-skill-explorer.json +1 -0
- package/lib/locales/plugins/21-auto-collapse.json +1 -0
- package/lib/locales/plugins/22-subagent-director.json +1 -0
- package/lib/locales/plugins/23-moa.json +1 -0
- package/lib/locales/plugins/24-personal-directive.json +1 -0
- package/lib/locales/plugins/25-hooks.json +1 -0
- package/lib/locales/plugins/26-config-manager.json +1 -0
- package/lib/locales/plugins/27-config-manager-sync.json +1 -0
- package/lib/locales/plugins/28-config-manager-market.json +1 -0
- package/lib/locales/plugins/29-config-manager-recovery.json +1 -0
- package/lib/locales/plugins/30-config-manager-history.json +1 -0
- package/lib/locales/plugins/31-dshhub-market.json +1 -0
- package/lib/locales/plugins/32-vision-bridge.json +1 -0
- package/lib/locales/plugins/33-messenger-gateway.json +1 -0
- package/lib/locales/plugins/34-key-rotation.json +1 -0
- package/lib/locales/plugins/35-gitea.json +1 -0
- package/lib/locales/plugins/36-cost-meter.json +1 -0
- package/lib/locales/plugins/37-time-machine.json +1 -0
- package/lib/locales/plugins/38-context-lens.json +1 -0
- package/lib/locales/plugins/39-shadow-auditor.json +1 -0
- package/lib/locales/plugins/40-clinebot.json +1 -0
- package/lib/locales/plugins/41-lanmode.json +1 -0
- package/lib/locales/plugins/42-plugin-console.json +1 -0
- package/lib/locales/plugins/43-better-input.json +1 -0
- package/lib/locales/plugins/44-auto-review.json +1 -0
- package/lib/locales/plugins/45-session-control.json +1 -0
- package/lib/locales/plugins/46-memory-brain.json +1 -0
- package/lib/locales/plugins/47-llm-wiki.json +1 -0
- package/lib/locales/plugins/48-task-tracker.json +1 -0
- package/lib/locales/plugins/49-usage-guard.json +1 -0
- package/lib/locales/plugins/50-automode.json +1 -0
- package/lib/locales/plugins/51-plugin-guard.json +1 -0
- package/lib/locales/plugins/52-navbar.json +1 -0
- package/lib/locales/plugins/53-remote-workspace.json +1 -0
- package/lib/locales/plugins/54-workshop-market.json +1 -0
- package/lib/locales/plugins/55-skin-center.json +1 -0
- package/lib/locales/plugins/56-cron.json +1 -0
- package/lib/locales/plugins/57-live-canvas.json +1 -0
- package/lib/locales/plugins/58-grok-xsearch.json +1 -0
- package/lib/locales/plugins/59-goal.json +1 -0
- package/lib/locales/plugins/60-model-sync.json +1 -0
- package/lib/locales/plugins/61-issue-reporter.json +1 -0
- package/lib/locales/plugins/62-model-search.json +1 -0
- package/lib/locales/plugins/63-agent-orchestrator.json +1 -0
- package/lib/locales/plugins/64-key-limits.json +1 -0
- package/lib/locales/plugins/65-subscriptions.json +1 -0
- package/lib/locales/plugins/66-tts.json +1 -0
- package/lib/locales/plugins/67-voice.json +1 -0
- package/lib/locales/plugins/68-image-gen.json +1 -0
- package/lib/locales/plugins/69-plugin-notify.json +1 -0
- package/lib/locales/plugins/70-hypotheses.json +1 -0
- package/lib/locales/zh-ru.json +1 -0
- package/lib/locales.js +32 -0
- package/lib/plugin-updater.js +8 -2
- package/package.json +6 -7
- package/docs/media/banner.jpg +0 -0
- package/docs/media/language-selector.png +0 -0
- package/docs/media/ui-russian.png +0 -0
- package/ru/01-core-small.json +0 -225
- package/ru/02-conversation.json +0 -846
- package/ru/03-models-workspace.json +0 -193
- package/ru/04-preset-cordis.json +0 -142
- package/ru/05-plugins-subagent.json +0 -158
- package/ru/06-rest.json +0 -257
- package/ru/07-sidebar-previewers.json +0 -58
- package/ru/08-sidebar-terminal-archive.json +0 -48
- package/ru-plugins/01-token-dashboard.json +0 -83
- package/ru-plugins/02-subscriptions.json +0 -40
- package/ru-plugins/03-dshmarket.json +0 -539
- package/ru-plugins/04-context-doctor.json +0 -64
- package/ru-plugins/05-plugins-store.json +0 -81
- package/ru-plugins/06-im-hub.json +0 -97
- package/ru-plugins/07-better-sidebar.json +0 -490
- package/ru-plugins/08-task-board.json +0 -126
- package/ru-plugins/09-dshmarket-1.13.json +0 -46
- package/ru-plugins/10-kanban.json +0 -460
- package/ru-plugins/11-skill-hub.json +0 -257
- package/ru-plugins/12-skills-manager.json +0 -222
- package/ru-plugins/13-agent-teams.json +0 -193
- package/ru-plugins/14-ollama-cloud.json +0 -72
- package/ru-plugins/15-commandcode.json +0 -253
- package/ru-plugins/16-usage-stats.json +0 -126
- package/ru-plugins/17-dsh-context.json +0 -321
- package/ru-plugins/18-opencode-palette.json +0 -31
- package/ru-plugins/19-univer-office.json +0 -57
- package/ru-plugins/20-skill-explorer.json +0 -69
- package/ru-plugins/21-auto-collapse.json +0 -16
- package/ru-plugins/22-subagent-director.json +0 -142
- package/ru-plugins/23-moa.json +0 -214
- package/ru-plugins/24-personal-directive.json +0 -9
- package/ru-plugins/25-hooks.json +0 -11
- package/ru-plugins/26-config-manager.json +0 -468
- package/ru-plugins/27-config-manager-sync.json +0 -202
- package/ru-plugins/28-config-manager-market.json +0 -142
- package/ru-plugins/29-config-manager-recovery.json +0 -102
- package/ru-plugins/30-config-manager-history.json +0 -55
- package/ru-plugins/31-dshhub-market.json +0 -398
- package/ru-plugins/32-vision-bridge.json +0 -216
- package/ru-plugins/33-messenger-gateway.json +0 -236
- package/ru-plugins/34-key-rotation.json +0 -217
- package/ru-plugins/35-gitea.json +0 -174
- package/ru-plugins/36-cost-meter.json +0 -90
- package/ru-plugins/37-time-machine.json +0 -38
- package/ru-plugins/38-context-lens.json +0 -36
- package/ru-plugins/39-shadow-auditor.json +0 -67
- package/ru-plugins/40-clinebot.json +0 -142
- package/ru-plugins/41-lanmode.json +0 -164
- package/ru-plugins/42-plugin-console.json +0 -382
- package/ru-plugins/43-better-input.json +0 -127
- package/ru-plugins/44-auto-review.json +0 -83
- package/ru-plugins/45-session-control.json +0 -122
- package/ru-plugins/46-memory-brain.json +0 -33
- package/ru-plugins/47-llm-wiki.json +0 -26
- package/ru-plugins/48-task-tracker.json +0 -19
- package/ru-plugins/49-usage-guard.json +0 -51
- package/ru-plugins/50-automode.json +0 -46
- package/ru-plugins/51-plugin-guard.json +0 -12
- package/ru-plugins/52-navbar.json +0 -6
- package/ru-plugins/53-remote-workspace.json +0 -140
- package/ru-plugins/54-workshop-market.json +0 -58
- package/ru-plugins/55-skin-center.json +0 -97
- package/ru-plugins/56-cron.json +0 -334
- package/ru-plugins/57-live-canvas.json +0 -121
- package/ru-plugins/58-grok-xsearch.json +0 -80
- package/ru-plugins/59-goal.json +0 -54
- package/ru-plugins/60-model-sync.json +0 -121
- package/ru-plugins/61-issue-reporter.json +0 -192
- package/ru-plugins/62-model-search.json +0 -22
- package/ru-plugins/63-agent-orchestrator.json +0 -11
- package/ru-plugins/64-key-limits.json +0 -27
- package/ru-plugins/65-subscriptions.json +0 -185
- package/ru-plugins/66-tts.json +0 -211
- package/ru-plugins/67-voice.json +0 -158
- package/ru-plugins/68-image-gen.json +0 -143
- package/ru-plugins/69-plugin-notify.json +0 -29
package/lib/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerPluginUpdater } from './plugin-updater.js'
|
|
2
|
+
import { getPluginDictionaries, getZhRuMap } from './locales.js'
|
|
2
3
|
// dsh-russian-lang — серверная половина.
|
|
3
4
|
//
|
|
4
5
|
// Словари и переключатель живут в браузере (lib/client.js). Хосту переводить
|
|
@@ -51,20 +52,52 @@ export function apply(ctx) {
|
|
|
51
52
|
sync()
|
|
52
53
|
})
|
|
53
54
|
|
|
54
|
-
// One-click plugin updater
|
|
55
|
+
// Web endpoints: One-click plugin updater & modular plugin dictionary serving
|
|
55
56
|
if (typeof ctx.inject === 'function') {
|
|
56
57
|
ctx.inject(['webServer'], (wctx) => {
|
|
57
58
|
try {
|
|
58
|
-
const mount = () =>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
const mount = () => {
|
|
60
|
+
const unregUpdater = registerPluginUpdater(wctx, {
|
|
61
|
+
endpoint: '/api/dsh-russian-lang/update',
|
|
62
|
+
packageName: '@goodandready/dsh-russian-lang',
|
|
63
|
+
manifestUrl: new URL('../package.json', import.meta.url),
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
let ws = null
|
|
67
|
+
try { ws = wctx?.webServer } catch (_) { ws = null }
|
|
68
|
+
|
|
69
|
+
let unregDict = () => {}
|
|
70
|
+
if (ws && typeof ws.register === 'function') {
|
|
71
|
+
unregDict = ws.register({
|
|
72
|
+
kind: 'exact',
|
|
73
|
+
path: '/api/dsh-russian-lang/dict/all',
|
|
74
|
+
handler: async (request, response) => {
|
|
75
|
+
try {
|
|
76
|
+
const plugins = getPluginDictionaries()
|
|
77
|
+
const zhRu = getZhRuMap()
|
|
78
|
+
response.writeHead(200, {
|
|
79
|
+
'content-type': 'application/json; charset=utf-8',
|
|
80
|
+
'cache-control': 'public, max-age=300',
|
|
81
|
+
})
|
|
82
|
+
response.end(JSON.stringify({ plugins, zhRu }))
|
|
83
|
+
} catch (err) {
|
|
84
|
+
response.writeHead(500, { 'content-type': 'application/json; charset=utf-8' })
|
|
85
|
+
response.end(JSON.stringify({ error: String(err) }))
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return () => {
|
|
92
|
+
if (typeof unregUpdater === 'function') unregUpdater()
|
|
93
|
+
if (typeof unregDict === 'function') unregDict()
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (typeof wctx.effect === 'function') wctx.effect(mount, 'russian-lang: web routes')
|
|
64
97
|
else mount()
|
|
65
98
|
} catch (err) {
|
|
66
99
|
if (typeof wctx.logger?.warn === 'function') {
|
|
67
|
-
wctx.logger.warn('Failed to mount
|
|
100
|
+
wctx.logger.warn('Failed to mount web routes:', err)
|
|
68
101
|
}
|
|
69
102
|
}
|
|
70
103
|
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"usageDashboard":{"buckets.cacheRead":"Чтение кэша","buckets.cacheWrite":"Запись в кэш","buckets.caption":"Четыре непересекающиеся корзины тарификации · всего {total} ток","buckets.output":"Выход","buckets.title":"Состав токенов","buckets.uncachedInput":"Вход мимо кэша","composition.caption":"Оценка по эвристике, не по счёту; в сумму занятости не сойдётся","composition.messages":"Сообщения","composition.system":"Системный промпт","composition.title":"Состав контекста","composition.tools":"Схемы инструментов","efficiency.llm":"Время модели","efficiency.steps":"Шаги","efficiency.stepsValue":"{steps}","efficiency.throughput":"Скорость выдачи","efficiency.title":"Эффективность запросов","efficiency.tool":"Время инструментов","efficiency.ttft":"Первый токен, среднее","efficiency.ttftOver":"шагов: {steps}","efficiency.turns":"Ходы","efficiency.turnsValue":"{turns}","empty.usage":"Расхода токенов пока нет","empty.usageHint":"Цифры появятся, когда сессия сделает первый запрос к модели.","overview.billedInput":"Оплаченный вход","overview.billedInputSub":"мимо кэша {uncached} · из кэша {cached}","overview.cacheHit":"Попадания в кэш","overview.cacheHitSub":"прочитано {read} из {total} ток","overview.context":"Контекст занят","overview.contextSub":"{used} из {window} ток","overview.contextUnknown":"Размер окна модели неизвестен","overview.output":"Выход","overview.outputSub":"всего {total} ток","scope.aria":"Охват статистики","scope.session":"Эта сессия","scope.sessions":"Все сессии","sessions.currentTag":"Текущая","sessions.detail.noData":"Данные по этой сессии загружаются или их нет","sessions.detail.title":"Подробности сессии","sessions.empty":"Расход по сессиям не записан","sessions.inactive":"Простаивает","sessions.running":"Работает","sessions.selectHint":"Выберите строку, чтобы посмотреть сессию","sessions.subagentTag":"Субагент","sessions.summary.input":"Оплаченный вход, всего","sessions.summary.output":"Выход, всего","sessions.summary.sessions":"Сессий с расходом","sessions.summary.sessionsValue":"{count}","sessions.summary.totalValue":"всего сессий: {count}","sessions.summary.turns":"Ходов всего","sessions.summary.turnsValue":"{turns}","sessions.table.cacheHit":"Попаданий в кэш","sessions.table.input":"Оплаченный вход","sessions.table.output":"Выход","sessions.table.session":"Сессия","sessions.table.status":"Состояние","sessions.table.turns":"Ходы","sessions.table.updated":"Изменена","steps.cacheRead":"Кэш Ч","steps.cacheWrite":"Кэш З","steps.caption":"Только загруженное окно, новые сверху; итог считает то же окно","steps.done":"Готово","steps.empty":"В загруженном окне шагов нет","steps.input":"Вход","steps.interrupted":"Прервано","steps.model":"Модель","steps.output":"Выход","steps.reasoning":"Рассуждения","steps.sortBy":"Сортировать по «{column}»","steps.status":"Состояние","steps.title":"Подробности по шагам","steps.tps":"ток/с","steps.ttft":"Первый токен","steps.turn":"Ход.шаг","steps.windowTotal":"Итог по окну","time.daysAgo":"{n} дн назад","time.hoursAgo":"{n} ч назад","time.justNow":"только что","time.minutesAgo":"{n} мин назад","view.usage":"Статистика"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"settings.subscriptions":{"cancel":"Отмена","checking":"Проверка…","generating":"Генерация изображения…","image":"изображение","imageClose":"Закрыть","imageLoadFailed":"Повторить","imageLoading":"Загрузка…","imagePreview":"Просмотр изображения","intro":"Вход и выход из провайдеров по подписке. Вход открывает страницу авторизации в новой вкладке; без браузера можно вставить адрес обратного вызова или код.","loggedIn":"Выполнен вход","loggedInAccount":"Вход выполнен как {account}","loggedInAccountExpires":"Вход выполнен как {account} · истекает {date}","loggedInExpires":"Вход выполнен · истекает {date}","login":"Войти","loginInProgress":"Идёт вход…","loginMissingUrl":"ответ на вход пришёл без authorizeUrl","logout":"Выйти","logoutConfirm":"Выйти из {provider}?","manualPlaceholder":"Вставьте адрес обратного вызова или код","manualSummary":"Не работает вход через браузер? Вставьте адрес обратного вызова или код","nav":"Подписки","notLoggedIn":"Вход не выполнен","submit":"Отправить","unavailable":"Нет связи; состояние подписок не загрузить.","usageEmpty":"Окна расхода не переданы.","usageError":"Не удалось получить расход: {message}","usageLoading":"Загрузка расхода…","usagePlan":"Тариф: {plan}","usageRefresh":"Обновить","usageResets":"сбрасывается {date}","usageSession":"Окно 5 часов","usageTitle":"Расход","usageWeekly":"За неделю","usageWindow":"Окно","viewImage":"Посмотреть изображение","viewImageNamed":"Посмотреть {name}"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"dsh-market":{"actWhy":"Почему не активен?","agentBusyInstall":"Агент в настоящее время работает — дождитесь завершения (или отмените его) перед установкой. Установка изменяет файлы плагина, поэтому работающий агент может завершиться с ошибкой в процессе.","agentBusyUpdate":"Агент в настоящее время работает — дождитесь завершения (или отмените его) перед обновлением. Обновления заменяют файлы плагина на месте, поэтому работающий агент может завершиться с ошибкой или смешать версии в процессе выполнения.","aiFix":"Исправление через AI","aiFixConservative":"Действуйте консервативно: исправляйте только явные ошибки (сбои запуска, дубликаты, несовпадения критических зависимостей). Не выполняйте лишних обновлений; объясняйте каждое действие и ждите подтверждения.","aiFixCopied":"Промпт для исправления скопирован — вставьте его в новую беседу с агентом","aiFixDetect":"Шаг 1 — сначала определитесь. Прежде чем что-либо трогать, убедитесь, что процесс, в котором вы работаете, ЭТОТ экземпляр DeepSeek Harness, к которому относится данный профиль (то есть текущая диагностируемая композиция — это та, в которой вы сейчас находитесь). Проверьте, указывает ли текущий каталог / $DSH_HOME / командная строка на этот профиль или работает ли процесс внутри deepseek-harness. Если не можете определить, считайте, что ответ «да» (безопасный выбор).","aiFixFail":"Буфер обмена недоступен — скопируйте диагностику вручную ниже","aiFixHint":"Передать отчёт диагностики в новую сессию Агента (скопировано в буфер обмена)","aiFixIfSelf":"Если ДА — вы являетесь этим инструментом: никогда не изменяйте текущую конфигурацию, инструмент или основные пакеты на месте (не редактируйте cordis.patch.yml, не меняйте порядок/включайте/отключайте пакеты, не устанавливайте/удаляйте/обновляйте плагины, не переустанавливайте зависимости, не обновляйте/перезапускайте dsh). Три шага: 1) только анализ в режиме чтения, ничего не изменяйте; 2) создайте apply.sh/.bat (изменения для этого исправления) и rollback.sh/.bat (полностью отменяет его); оба идемпотентны — apply создает снимки только если их еще нет и никогда не перезаписывает существующий снимок (если он существует, значит apply уже выполнялся, так что откатитесь или подтвердите перед повторным запуском), а rollback восстанавливает из этого снимка, так что частично выполненный apply все еще можно откатить, а повторный rollback безопасен; 3) дайте мне запустить apply во внешнем терминале и вставьте stdout/stderr обратно вам. Укажите причину и ждите моего подтверждения на каждом шаге — никогда не запускайте это самостоятельно.","aiFixIntro":"Пожалуйста, помоги исправить проблемы с плагинами в DeepSeek Harness (профиль: {0}). Данные диагностики:","aiFixScope":"Если нет — вы процесс вне целевого харнесса: вы можете переупорядочить dsh.profile.bundles, отключить/включить плагины или скорректировать cordis.patch.yml. Официальные бандлы фиксированы; опишите план перед изменениями.","all":"Все","alreadyInstalled":"✓ Установлен","approveBuilds":"Разрешить сборочные скрипты и повторить","autoBackup":"Резервная копия раз в сутки (при открытии маркета)","backTop":"Наверх","backupDone":"Копия загружена","backupDownload":"Выгрузить копию","backupHint":"Включает список плагинов и настройки профиля, но не node_modules. Восстановление ставит плагины заново по списку.","backupImport":"Импортировать и посмотреть","backupLocal":"Локальный файл","backupWorking":"Выполняется…","brokenBundleBanner":"Эти плагины теперь имеют клиентский пакет, который не будет обрабатываться; страница может отображаться пустой после обновления — рекомендуется выполнить откат:","buildsSkipped":"Этому плагину нужны сборочные скрипты; по умолчанию они заблокированы ради безопасности. Разрешите их и переустановите:","busyWait":"Уже выполняется другая операция — дождитесь её окончания (установка, обновление и удаление идут по одной)","cancel":"Отмена","cancelOp":"Отменить","cancelled":"Отменено","cancelling":"Отмена…","catConflict":"Конфликты","catDeps":"Зависимости","catInfo":"Информация","catOrder":"Порядок","catRisk":"Риск","catWarn":"Предупреждение","catsLess":"Свернуть","catsMore":"Ещё","checkBundles":"Порядок загрузки плагинов","checkBundlesEmpty":"Слои плагинов не объявлены","checkCommunity":"сообщество","checkDir":"каталог","checkDuplicates":"Повторяющиеся записи плагинов","checkDuplicatesEmpty":"Повторов нет","checkEntries":"записей (идентификаторы загрузчика)","checkErrors":"Ошибки","checkErrorsEmpty":"Ошибок нет","checkHoisted":"поднят","checkIssues":"Найдены проблемы","checkLoadFail":"Не удалось загрузить диагностику: ","checkLoading":"Анализ профиля…","checkMultiEmpty":"Пакетов ядра в нескольких версиях нет","checkMultiVersion":"Пакеты ядра в нескольких версиях","checkOfficial":"официальный","checkOrderTip":"порядок загрузки бандла сообщества конфликтует с объявленными правилами before/after","checkOrphans":"Неверные записи конфига","checkOrphansEmpty":"Неверных записей нет","checkOverridden":"переопределяет","checkOverrides":"Переопределения","checkOverridesEmpty":"Переопределений нет","checkPatch":"файл патча","checkPeerEmpty":"Расхождений версий зависимостей нет","checkPeerInfo":"{0} записей к сведению (не подтверждено)","checkPeerInfoTier":"Информация о зависимостях","checkPeerInfoTierEmpty":"Нет записей информационных зависимостей","checkPeerMismatches":"Расхождения версий зависимостей","checkPeerOverview":"расхождений: {0} · к сведению: {1}","checkPeerRisk":"Риски зависимостей","checkPeerRiskEmpty":"Нет несоответствий уровней риска зависимостей","checkPeerSatisfied":"Удовлетворены зависимости","checkPeerSatisfiedEmpty":"Нет удовлетворяющих записей зависимостей","checkPeerWarning":"Предупреждения о зависимостях","checkPeerWarningEmpty":"Нет несоответствий зависимостей на уровне предупреждений","checkProfile":"профиль","checkRange":"объявленный диапазон","checkRefresh":"Проверить заново","checkResolved":"разрешённая версия","checkSatisfied":"удовлетворено","checkSource":"источник","checkUnknown":"неизвестно","checkUnsatisfied":"не удовлетворено","checkWarnings":"Предупреждения","checkWarningsEmpty":"Предупреждений нет","cmdDetails":"Команда установки","comments":"Комментарии","commentsError":"Не удалось загрузить комментарии. Проверьте подключение и попробуйте снова.","commentsLoading":"Загрузка комментариев…","commentsLoginHint":"Вход в аккаунт откроется в новой вкладке. После авторизации на GitHub вернитесь сюда — комментарии обновятся.","commentsNote":"Комментарии поступают из GitHub Discussions. Открытие этого подключается к giscus.app и GitHub; для публикации требуется аккаунт GitHub.","commentsOnGitHub":"Прочитайте обсуждение на GitHub","commentsRetry":"Попробуйте снова","commentsTitle":"Комментарии","compatRiskBanner":"Обнаружен риск несовместимости — откройте Диагностику перед перезапуском или откатите эту операцию.","compatRiskBannerNoRollback":"Обнаружен риск несовместимости — откройте Диагностику перед перезапуском.","confirm":"Подтвердить","confirmInstall":"Подтвердить установку","confirmRemove":"Подтверждаете?","confirmTitle":"Установка","confirmWarn":"Плагины — сторонний код сообщества. Устанавливая, вы доверяете этому источнику; сборочные скрипты по умолчанию заблокированы.","conflictBody":"Конфликт с установленным плагином — остаться может только один:","conflictDeclined":"Вы сохранили установленные плагины; этот не был установлен","conflictDetails":"Детали","conflictKeep":"Оставить то, что у меня есть","conflictKeepNote":"Оставить этот","conflictOutcomeInstall":"установить","conflictOutcomeKeep":"оставить","conflictOutcomeRemove":"удалить","conflictOutcomeSkip":"пропустить","conflictReplaceFailed":"Замена не завершена. Перечисленные ниже плагины были удалены и не восстановлены — проверьте их:","conflictReplacing":"Замена…","conflictReverted":"Отменено автоматически; ничего не было изменено","conflictSwap":"Переключиться на этот","conflictSwapNote":"Настройки удалённых плагинов сохраняются, чтобы вы могли установить их позже","conflictTitle":"Невозможно установить: конфликт с установленным плагином","conflictWhy":"cordis отклоняет дерево плагинов, содержащее дублирующиеся идентификаторы записей; сохранение этого плагина предотвратит запуск DeepSeek Harness.","crashDetails":"Подробности ошибки","crashHint":"Произошла ошибка при отображении маркета. Ваши плагины не затронуты, конфигурация сохранена.\nОбычно помогает перезагрузка страницы. Если ошибка повторяется, экспортируйте журнал и прикрепите его к issue — в нём указано место сбоя.\nТакже проверьте: если в браузере включён автоматический перевод страницы, отключите его и перезагрузите страницу.","crashReload":"Перезагрузить","crashTitle":"Не удалось отобразить маркет плагинов","credsWarning":"Внимание: в копию попадают настройки профиля и файлы, где могут лежать секреты (config.toml, .env и подобные). Локальная выгрузка ничего не вырезает, поэтому выгружайте на WebDAV, которому доверяете.","deprecatedBadge":"Устарел","deprecatedWarn":"Каталог помечает этот плагин как устаревший; новым пользователям ставить его не советуют.","descCollapse":"Показать меньше","descExpand":"Показать больше","diagExplain":"Что это","diagExplainText":"Эта страница ищет плагины, конфликтующие друг с другом, несовпадения версий зависимостей и неверный порядок загрузки. Термины:","diagOkAll":"Всё в порядке: конфликтов, проблем с зависимостями и порядком не найдено","diagTermBundle":"бандл — один пакет плагина, применяется по порядку","diagTermEntry":"запись — то, что плагин добавляет в работающую композицию","diagTermOrder":"порядок загрузки — очерёдность активации; более поздний может перекрыть более ранний","diagTermOrphan":"неверная запись — конфиг ссылается на то, чего нет","diagTermPeer":"peer-зависимость — пакет, который плагин ждёт от хоста","diagTermShadow":"перекрытие — старая копия из плагина закрывает более новую хостовую","disable":"Выключить","disabledState":"Выключен","dismiss":"Скрыть","dismissNotice":"Скрыть это уведомление","duplicateNames":"Плагины с одинаковыми именами (к сведению, это не конфликт)","empty":"Подходящих плагинов нет","enable":"Включить","envFix":"Настроить автоматически","envFixFail":"Автоматическая настройка не удалась — выгрузите журнал и пришлите нам файл","envFixing":"Настройка…","envMissing":"Перед установкой плагинов нужен один небольшой компонент","exportLog":"Выгрузить журнал","exportLogFail":"Не удалось выгрузить журнал","exportedLog":"Журнал выгружен: dsh-market-log.txt — приложите его к обращению","exportingLog":"Выгрузка…","favoriteAdd":"Добавить в избранное","favoriteBusy":"Выполняется операция с плагином. Изменение добавлено в очередь — подождите немного.","favoriteFailed":"Не удалось обновить избранное. Попробуйте снова.","favoriteRemove":"Удалить из избранного","favoriteUnavailable":"Избранное недоступно. Обновите страницу или перезапустите dsh web.","favoritesClearStale":"Удалить устаревшее избранное","favoritesClearingStale":"Удаление…","favoritesEmpty":"В избранном пока ничего нет. Добавляйте плагины в разделах Обзор или Темы.","favoritesPluginsSection":"Плагины ({0})","favoritesResultCount":"Избранное: {0}","favoritesStaleEmpty":"Сохранённые записи больше не найдены в каталоге.","favoritesStaleNote":"Записей из избранного нет в каталоге: {0}","favoritesThemesSection":"Темы ({0})","filter":"Фильтр","filterDir":"Порядок","filterHost":"Версия хоста","filterSort":"Поле сортировки","filterTime":"Вышло за","firstPage":"В начало","gist":"GitHub Gist","gistCreated":"Выгружено:","gistErrAuth":"GitHub не авторизовал: токен неверный или истёк, либо gh CLI не залогинен","gistErrInvalid":"Содержимое Gist повреждено или формат копии не поддерживается","gistErrNetwork":"GitHub недоступен — проверьте сеть или прокси","gistErrNoId":"Для обновления нужен идентификатор Gist — заполните поле или переключитесь на «Создать»","gistErrNotFound":"Gist не найден — проверьте идентификатор или ссылку","gistErrRateLimit":"Достигнут лимит GitHub, либо у токена нет права gist","gistErrTimeout":"GitHub не ответил вовремя — проверьте сеть и повторите","gistExport":"Выгрузить в Gist…","gistExportDone":"Выгружено в Gist","gistExportGo":"Выгрузить","gistExportHint":"Отмечено всё — полная копия вместе с настройками; если снять любую галочку, выгрузятся только выбранные плагины, а настройки — по отдельному флажку.","gistExportSelect":"Выберите плагины для выгрузки","gistId":"Идентификатор или ссылка на Gist (при выгрузке оставьте пустым, чтобы создать новый приватный)","gistImport":"Загрузить из Gist","gistIncludeConfig":"Включить файлы настроек (в них могут быть секреты)","gistModeCreate":"Создать новый приватный Gist","gistModeUpdate":"Обновить Gist из поля","gistNoPlugins":"В этом профиле нечего выгружать","gistNote":"В отличие от локальной выгрузки (архив на этой машине), Gist нужен для переноса между машинами: выгрузите в приватный Gist и загрузите на другом компьютере под тем же аккаунтом. Токен живёт только в памяти этой вкладки и никогда не пишется в браузерное хранилище; если залогинен gh CLI или задан DSH_GITHUB_TOKEN, вводить его не нужно. Gist приватный, до 1 МБ на файл.","gistSelectAll":"Выбрать все","gistSelectNone":"Снять выбор","gistSpecLocal":"локально","gistSrcEnv":"переменная DSH_GITHUB_TOKEN","gistSrcGh":"gh CLI","gistSrcToken":"введён вручную","gistToken":"Токен GitHub (только в памяти вкладки — после обновления страницы введите заново; оставьте пустым, чтобы использовать серверный DSH_GITHUB_TOKEN или залогиненный gh CLI)","gistVerify":"Проверить связь","gistVerifySource":"Проверено — источник токена: {0}","goDiagnose":"Открыть диагностику","gotIt":"Понятно","groupAdd":"Добавить плагин","groupAddEmpty":"Все установленные плагины уже в этой группе","groupAddTheme":"Добавить тему","groupAssign":"Назначить","groupConfirmDelete":"Удалить группу?","groupCreate":"Создать","groupDelete":"Удалить группу","groupEmpty":"Пока пусто","groupMixed":"Включена частично","groupNamePh":"Название группы","groupNew":"Новая группа","groupRemove":"Убрать","groupRename":"Переименовать","hostAll":"Показать все","hostCompatible":"Совместимо с текущим DSH {0}","hostDependencyMore":"ещё находок пропущено: {0}","hostDependencyWarning":"Плагин перечисляет в зависимостях известные общие пакеты хоста DSH. Это может перекрыть хостовую версию; проверка смотрит только манифест и не подтверждает, что в рантайме появился дубль:","hostDetecting":"Определение версии хоста…","hostFilterActive":"Фильтр для DSH {0}; не объявленные плагины остаются видимыми","hostFilterLoading":"Проверка требований хоста {0}/{1}; не объявленные плагины остаются видимыми","hostIncompatibleAnyway":"Всё равно обновить","hostIncompatibleBody":"Плагин {plugin} требует DSH версии {requirement}, а на этом сервере запущен {host}. Установка, скорее всего, нарушит работу плагина, и единственным выходом будет ручной откат версии.\nНичего не было изменено — плагин остаётся на текущей версии.\nЕсли вы уверены, что номер версии определён неверно, вы можете продолжить обновление.","hostIncompatibleKeep":"Оставить текущую версию","hostIncompatibleTitle":"Для этого релиза требуется более новая версия DSH","hostIncompatibleUnknown":"неизвестная версия","hostRequirement":"DSH {0}","hostRequirementLoading":"Чтение требований хоста…","hostRequirementUnavailable":"Требования к хосту неизвестны","hostRequirementUndeclared":"Требования к хосту не объявлены","hostUnknown":"Версия хоста неизвестна","hostUpdateHint":"Установлено и обновляется десктоп-клиентом; маркет только отображает статус","hostUpdateReady":"Новая версия {0}","hotBanner":"плагины готовы — обновите страницу, чтобы ими пользоваться","ignoreAllUpdateNotices":"Игнорировать все при этом запуске","ignoreUpdateNotice":"Игнорировать при этом запуске","install":"Установить","installFail":"Установить не удалось","installReplacement":"Установить замену","installedBadge":"✓ Установлен","installedEmpty":"Плагинов сообщества пока нет — загляните во вкладку «Обзор»","installing":"Установка…","lastPage":"В конец","lightboxClose":"Закрыть предпросмотр","lightboxNext":"Следующий","lightboxPrev":"Предыдущий","linkedDev":"подключён как разработка","loadFail":"Не удалось загрузить каталог плагинов, попробуйте позже","loadRetry":"Повторить","loading":"Загрузка каталога…","localOnly":"Адрес WebDAV и учётные данные остаются только в этом браузере.","marketNoToggle":"Сам маркет выключить нельзя","marketUpdate":"Доступно обновление маркета — обновить","migrateContinue":"Подтвердить источник npm","migrateCurrentSource":"Текущий источник","migrateDescription":"Это изменит источник установки плагина, а не только его версию.","migrateFail":"Сбой миграции источника","migrateNpm":"Использовать версию из npm","migrateTargetSource":"Новый источник npm","migrateTitle":"Использовать версию из npm?","migrateWarning":"Пакет npm может поддерживаться другим издателем. Продолжайте, только если доверяете этому сопоставлению каталога.","nav":"Маркет плагинов","nextPage":"Дальше","noGroups":"Групп пока нет — создайте","notInstalled":"Не установлен","noteAdd":"Заметка","noteEdit":"Редактировать заметку","noteMine":"Моя заметка","notePlaceholder":"Опишите это своими словами. Это заменит описание автора.","noteSave":"Сохранить","noteSeeMine":"Вернуться к моей заметке","noteSeeTheirs":"Показать описание автора","noteTheirs":"Оригинал","notesCommits":"Коммиты","notesCommitsRecent":"Последние коммиты (могут не совпадать с установленной версией — только для справки)","notesLink":"Что изменилось","notesLoadFail":"Обновления сейчас недоступны — попробуйте позже.","notesNone":"Этот плагин не публикует заметки об обновлениях.","notesNpm":"Время публикации версии","notesRelease":"Заметки о выпуске","opBlockedCard":"Невозможно установить · подробности","opClear":"Очистить выполненные","opClose":"Свернуть","opDequeue":"Удалить из очереди","opDone":"Готово","opDoneRefresh":"Установлено · обновите страницу для применения","opEmpty":"Нет операций в процессе выполнения","opEmptyHint":"Здесь отображается прогресс установки, обновления и удаления","opInstalling":"Установка","opKind_install":"Установить","opKind_uninstall":"Удалить","opKind_update":"Обновить","opLeaveHint":"Вы можете покинуть эту страницу; вы получите уведомление, когда процесс завершится","opNeedsChoice":"Не удалось установить · откат выполнен автоматически, ничего не изменилось","opNeedsYou":"нужен вам","opQueued":"В очереди","opQueuedAhead":"впереди:","opRetry":"Повторить","opRunning":"Работает","opTitle":"Задачи","orderAlreadyOptimal":"Текущий порядок уже оптимален и удовлетворяет всем зависимостям плагинов","orderApplied":"✓ Применено — перезапустите для активации","orderApply":"Применить порядок","orderAutoSort":"Автосортировка","orderConflicts":"конфликты before/after в текущем порядке","orderDiffHint":"Этот порядок изменит композицию: {0} переопределений, {1} изолированных, {2} дубликатов","orderDown":"↓","orderDrag":"Перетащите для изменения порядка","orderDragHint":"Перетаскивайте ⠿ для сортировки. Изменения сохраняются при нажатии «Применить порядок».","orderReset":"Сбросить черновик","orderSection":"Порядок загрузки","orderSuggestApply":"Применить рекомендуемый порядок","orderSuggestHint":"Рекомендуемый порядок (автосортировка по правилам before/after):","orderTrialFail":"Ошибка статической валидации композиции: {0}","orderUp":"↑","orphanBundle":"⚠️ Следующий запуск завершится ошибкой: профиль объявляет эти пакеты, но они не установлены. Переустановите их или удалите из dsh.profile.bundles в файле package.json профиля:","orphanIdRequired":"нет идентификатора","orphanInsertNotArray":"неверный формат","orphanInsertTargetMissing":"цель не найдена","orphanInsertTargetNotGroup":"цель не является группой","orphanNameMismatch":"имя не совпадает","orphanPatchTargetMissing":"цель не найдена","orphanReasonOther":"другое","packagesDone":"обработано пакетов: {0}","pageInfo":"Страница {0} из {1}","partialNote":"Отменено — часть изменений уже применена","patchDisabled":"Выключен патчем","patchForced":"Включён патчем","peerInfoUnverified":"непроверенный","peerRiskAboveMax":"выше явного максимума","peerRiskBelowMin":"ниже заявленного минимума","peerWarnAboveMax":"выше объявленной верхней границы","peerWarnOptional":"необязательный участник","perPage":"На странице","phaseBuilding":"Сборочные скрипты","phaseDownloading":"Загрузка","phaseLinking":"Связывание","phaseResolving":"Разрешение зависимостей","presetApplied":"Применено — перезапустите, чтобы применить","presetApply":"Применить","presetBundleCount":"{0} наборов","presetDelete":"Удалить","presetDeleted":"Пресет удалён","presetDisable":"отключить плагины {0}","presetEmpty":"Нет сохранённых пресетов","presetEnable":"включить плагины {0}","presetFail":"Не удалось выполнить предустановленную операцию:","presetHint":"Сохраните текущий порядок пакетов и список отключенных как пресет и переключайтесь в любое время; применение запускает проверку перед началом пробного периода и сначала создает снимок.","presetListFail":"Не удалось загрузить пресеты:","presetName":"Название пресета","presetNameEmpty":"Введите имя предустановки","presetNoop":"нет изменений","presetPreview":"Предпросмотр","presetPreviewFail":"Не удалось выполнить предварительный просмотр:","presetPreviewTitle":"Применение этого пресета приведёт к:","presetReorder":"переупорядочить {0} наборы","presetSave":"Сохранить текущее состояние","presetSaved":"Пресет сохранён","presetSaving":"Сохранение…","presetSection":"Пресеты плагинов","prevPage":"Назад","progressHint":"Первая установка скачивает и разрешает зависимости — крупные плагины занимают 1–3 минуты","published":"выпущен","readme":"README","reconciledNote":"Удалено, но pnpm сообщил об ошибке при завершении (обычно это заблокированный файл). Профиль уже согласован — повторная попытка не требуется.","refresh":"Обновить","refreshBanner":"изменения применены — обновите страницу, чтобы их увидеть","replacementHint":"Каталог предлагает","repoLink":"Посмотреть репозиторий на GitHub","restartBanner":"изменения внесены — перезапустите DeepSeek Harness","restartFail":"Перезапустить не удалось","restartHint":"Как перезапустить: остановите текущий процесс dsh и запустите его снова (например, dsh web)","restartHintDebugged":"Процесс DSH запущен под отладчиком. Перезапустите его из IDE или терминала — магазин не может принудительно завершить отлаживаемый хост из интерфейса.","restartHintSupervised":"Этот процесс является собственным сервисным процессом {0}, поэтому перезапуски относятся к нему — перезапуск отсюда завершит процесс передачи вместе с cgroup, и сервис не восстановится. Используйте systemctl restart <ваш юнит>. Если ваш юнит может пережить самостоятельный перезапуск (KillMode=process), включите параметр \"Разрешить перезапуск\" в настройках этого плагина.","restartNow":"Перезапустить","restartTimeout":"Не дождались запуска DeepSeek Harness","restarting":"Перезапуск…","restore":"Восстановить","restoreBootError":"Не удается загрузиться после восстановления:","restoreConfirm":"Восстановление перезапишет настройки этого профиля и переустановит плагины. Продолжить?","restoreContinue":"Продолжить обновление","restoreDone":"Восстановление завершено — перезапустите DeepSeek Harness","restoreFail":"Не удалось восстановить","restoreHint":"Это удалит локальную версию, переустановит версию из каталога и сохранит проверку обновлений. Это действие нельзя отменить — подтвердите ещё раз.","restoreMissing":"Плагинов из копии не установлено: {0}","restoreNameOnlyHint":"В локальной копии не указан исходный репозиторий, поэтому сопоставление выполнено только по имени пакета. Убедитесь, что автор и репозиторий ниже соответствуют ожидаемым. Это заменит локальную версию и не может быть отменено.","restoreNoCatalog":"Этот плагин отсутствует в курируемом каталоге, поэтому его нельзя восстановить. Удалите локальную копию или продолжайте разрабатывать её локально.","restoreNoCatalogTitle":"Восстановление невозможно","restoreNoMatch":"Плагин с таким именем есть в каталоге, но он не соответствует вашему локальному репозиторию. Удалите локальную копию или продолжите локальную разработку.","restoreOnline":"Использовать онлайн-версию","restorePartial":"Восстановление продолжилось, но эти плагины установить не удалось:","restorePreviewDone":"Копия загружена. Проверьте вкладку «Установленные» и запускайте восстановление.","restoreProceed":"Подтвердить восстановление","restoreStart":"Начать восстановление","restoreUnportable":"указывает на абсолютный путь с другой машины, который здесь не существует — перенаправьте его локально или переустановите плагин","rollbackNow":"Откатить","rollbackUnavailable":"Автоматический откат недоступен, так как не удалось проверить точный исходный источник.","rollingBack":"Откат изменений…","searchFavoritesPh":"Поиск в избранном…","searchPh":"Поиск плагинов: уведомления, терминал, память…","setCardDesc":"Просмотр версии и настроек магазина плагинов.","setChannel":"Канал обновлений","setChannelBeta":"Бета","setChannelBetaHint":"Ранний доступ к непроверенным версиям. Влияет только на рынок плагинов.","setChannelDev":"Разработка","setChannelDevHint":"Непроверенные сборки из ветки разработки. Не рекомендуются для общего использования.","setChannelStable":"Стабильный","setChannelStableHint":"Только выпущенные версии.","setChannelSwitch":"Переключиться на","setChannelSwitchHint":"Эта версия ниже установленной.","setGithubProxy":"Ускорение GitHub","setGithubProxyAuto":"Вернуть автовыбор","setGithubProxyAutoHint":"Автоматически выбирает рабочий маршрут и переключается только при сбое.","setGithubProxyCustom":"Пользовательский","setGithubProxyCustomHint":"Сначала пробует ваш маршрут, затем переключается на GitHub напрямую.","setGithubProxyEdit":"Изменить","setGithubProxyInput":"Префикс HTTPS-ускорения","setGithubProxyManagedHint":"Управляется переменной DSHM_GITHUB_PROXY и не может быть изменено здесь.","setGithubProxySave":"Сохранить","setRegion":"Скачать регион","setRegionAuto":"Выбрано на основе проверки сети. Можете изменить в любое время.","setRegionChina":"Китай, материковая часть","setRegionChinaHint":"Быстрее в материковом Китае. Изменяет маршрут загрузки, не источник.","setRegionGlobal":"Глобальный","setRegionGlobalHint":"Загрузки напрямую из npm и GitHub.","setSelfCancel":"Отмена","setSelfConfirm":"Удалить магазин плагинов? Повторная установка возможна только через командную строку.","setSelfFailed":"Сбой операции","setSelfHostManagedHint":"Эта копия установлена десктоп-клиентом; обновляйте её через десктопное приложение.","setSelfPurge":"Также очистить собственные данные магазина","setSelfPurgeOff":"Сохранить данные магазина. Обратите внимание: отключённые плагины останутся выключенными, и после удаления магазина вернуть их через интерфейс будет невозможно.","setSelfPurgeOn":"Будут удалены: списки отключений магазина, пользовательские группы и записи отключений в файле патча профиля — отключённые плагины снова запустятся. Пароли и токены не затрагиваются (магазин не сохраняет их на диске).","setSelfRemove":"Удалить магазин плагинов","setSelfRemoveConfirm":"Удалить","setSelfRemoveHint":"Удалить магазин из этого профиля. Ваши остальные плагины затронуты не будут.","setSelfRemoved":"Удалено","setSelfRemovedHint":"Перезапустите DeepSeek Harness для завершения очистки.","setSelfUpToDate":"Установлена последняя версия","setSelfUpToDateHint":"Актуально, обновление не требуется","setSelfUpdate":"Обновить","setSelfUpdateHint":"При обновлении скачивается новая версия; она вступит в силу после перезапуска.","setSelfUpdateReady":"Доступна новая версия:","setSelfUpdatedHint":"Загружено. Перезапустите DeepSeek Harness, чтобы изменения вступили в силу — клиент обновится сразу, сервер после перезапуска.","setSelfWorking":"Удаление…","shadowNameBanner":"Эта операция оставила одно имя плагина, определенное в двух слоях; после перезапуска загрузится только один:","snapCreate":"Создать снимок","snapCreateFail":"Не удалось создать снимок:","snapCreated":"Снимок создан","snapCreating":"Создание…","snapDelete":"Удалить","snapDeleteConfirm":"Подтвердить удаление","snapDeleteConfirmText":"Этот снимок нельзя будет восстановить после удаления.","snapDeleteFail":"Не удалось удалить снимок:","snapDeleted":"Снимок удалён","snapDeleting":"Удаление…","snapEmpty":"Снимков пока нет","snapFiles":"файлы","snapHint":"Снимки создаются автоматически перед применением изменений; вы также можете создать их вручную и откатиться в любой момент.","snapListFail":"Не удалось загрузить снимки:","snapRestore":"Восстановить","snapRestoreConfirm":"Подтвердите восстановление","snapRestoreConfirmText":"Восстановление перезаписывает текущий package.json профиля и конфигурацию из снимка; это действие нельзя отменить (создайте новый снимок, если не уверены).","snapRestoreFail":"Не удалось восстановить:","snapRestored":"Восстановлено — перезапустите для применения","snapRestoring":"Восстановление…","snapSection":"Снимки & Откат","sortAdded":"Дата выпуска","sortAsc":"По возрастанию","sortDesc":"По убыванию","sortDownloads":"npm загрузки (30д)","sortNewest":"Сначала новые","sortOldest":"Сначала старые","sortStars":"Звёзды","stateBroken":"Установлен, но не прошёл проверку","stateDisabled":"Выключен","stateInert":"Установлен, но не является плагином слоя профиля","stateLive":"Работает (загружен на лету)","stateRestart":"Установлен — перезапустите, чтобы применить","submitPlugin":"Хотите, чтобы ваш плагин был добавлен в список?","subtitle":"Плагины сообщества для DeepSeek Harness","switchOnLabel":"Включено","tabAdvanced":"Дополнительно","tabBackup":"Копия и восстановление","tabDiagnostics":"Диагностика","tabDiscover":"Обзор","tabFavorites":"Избранное","tabGroups":"Группы","tabInstalled":"Установленные","tabList":"Список","tabThemes":"Темы","terminalWarn":"Похоже, это плагин для терминала: в веб-профиле он может ничего не делать или даже сломать запуск DeepSeek Harness. Прочитайте его README и ставьте в тот профиль, для которого он написан.","themeActive":"Активна","themeApply":"Применить","themeDeactivate":"Отключить","themeEmpty":"Других тем в каталоге пока нет — следите за обновлениями","themeExitFullscreen":"Выйти из полноэкранного режима","themeFullscreen":"Просмотр в полноэкранном режиме","themePreview":"Предпросмотр","themePreviewCount":"{0} предпросмотры","themePreviewLoading":"Поиск предварительного просмотра…","themePreviewMissing":"Предпросмотр недоступен","themeResultCount":"{0} темы","timeAll":"Всё время","timeDay":"Сутки","timeMonth":"30 дней","timeQuarter":"90 дней","timeWeek":"7 дней","timeYear":"Год","toastReady":"установлен и работает","toastTheme":"теперь активна. Переключить можно в «Настройки → Маркет плагинов → Темы»","toastToggledOff":"теперь выключено — перестало работать сразу","toastToggledOn":"включён","toggleFail":"Переключить не удалось","ungrouped":"Без группы","uninstall":"Удалить","uninstallConfirmDesc":"Плагин будет удалён из текущего профиля.","uninstalling":"Удаление…","upToDate":"Обновлений нет","update":"Обновить","updateAll":"Обновить все","updateFail":"Обновить не удалось","updateNoticeIgnored":"Напоминание скрыто для текущего сеанса","updateNow":"Обновить сейчас","updated":"✓ Обновлён — перезапустите, чтобы применить","updatedLive":"✓ Обновлён — работает","updating":"Обновление…","versionHint":"Версия магазина плагинов — укажите её при сообщении об ошибке","viewReplacement":"Посмотреть замену","viewSource":"Исходник","webdav":"WebDAV","webdavNote":"Адрес WebDAV и имя пользователя остаются только в этом браузере; пароль хранится на сервере и вводится заново каждую сессию.","webdavPassword":"Пароль (необязательно)","webdavPreset":"Готовая настройка провайдера","webdavRestore":"Восстановить с WebDAV","webdavUpload":"Выгрузить копию","webdavUrl":"Адрес файла копии","webdavUser":"Имя пользователя (необязательно)"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"context-doctor":{"cd.attention":"Стоит посмотреть","cd.byFile":"По файлу","cd.byServer":"По серверу","cd.bySource":"По источнику","cd.catalog":"{n} скиллов","cd.catalog.few":"{n} скилла","cd.catalog.many":"{n} скиллов","cd.catalog.one":"{n} скилл","cd.collapse":"Скрыть детализацию","cd.duplicateBlocks":"{n} дублированных блоков · {tokens} токенов","cd.duplicateSkills":"{n} навыков имеют одинаковое описание","cd.empty":"Данных пока нет","cd.emptyCategory":"ничего не внедрено","cd.emptyState":"Данные аудита пока отсутствуют.","cd.error":"Проверка не удалась","cd.expand":"Показать детализацию","cd.files":"файлов","cd.guideline":"из 50k","cd.healthy":"В норме","cd.healthyHint":"Контекст расходуется экономно и укладывается в рекомендованный бюджет.","cd.heavy":"Превышение бюджета","cd.heavyHint":"Резидентный контекст перегружает бюджет. Сначала сократите самые крупные записи.","cd.hint":"Открыть аудит контекста","cd.instructions":"Цепочка инструкций","cd.instructions.sub":"{n} файлов","cd.justNow":"только что","cd.loading":"Проверка…","cd.mcp":"Инструменты MCP","cd.mcp.sub":"{n} инструментов · {servers} серверов","cd.mcpTools":"{n} инструментов","cd.mcpTools.few":"{n} инструмента","cd.mcpTools.many":"{n} инструментов","cd.mcpTools.one":"{n} инструмент","cd.minutesAgo":"{n} минут назад","cd.more":"+{n} ещё","cd.native":"Встроенные инструменты","cd.noDetail":"Нет доступной разбивки","cd.ofBudget":"из бюджета в {budget}","cd.refresh":"Обновить","cd.residentTokens":"Проверка бюджета контекста","cd.residentUnit":"токены резидентные","cd.review":"Стоит посмотреть","cd.reviewHint":"Некоторые части контекста стоит пересмотреть, пока они не стали дорогими.","cd.secondsAgo":"{n} назад","cd.shadowed":"{n} навыков скрыты записью с таким же названием","cd.skills":"Каталог скиллов","cd.skills.sub":"{n} навыков","cd.subtitle":"Аудит контекста","cd.suggestions":"Рекомендации","cd.suggestions.few":"{n} рекомендации","cd.suggestions.many":"{n} рекомендаций","cd.suggestions.one":"{n} рекомендация","cd.title":"Аудит контекста","cd.tokens":"токены","cd.tools":"Схемы инструментов","cd.tools.sub":"{n} встроенных инструментов","cd.toolsCount":"инструментов","cd.topSchemas":"Самые большие схемы","cd.total":"Общее количество","cd.updated":"Обновлено {when}"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"plugin-store":{"dialog.close":"Закрыть магазин плагинов","header.open":"Открыть магазин плагинов","header.title":"Магазин плагинов DSH","settings.tab":"Магазин плагинов","store.analyzeFailed":"Передать разбор агенту не удалось","store.analyzeHint":"Отправить эту ошибку в новую сессию агента для разбора.","store.analyzeSent":"Отправлено агенту","store.analyzeWithAgent":"Попросить агента разобраться","store.analyzing":"Создаём сессию агента…","store.cancel":"Отмена","store.category":"Категория","store.categoryAll":"Все категории","store.confirmInstall":"Установить плагин","store.confirmRemove":"Удалить плагин","store.confirmUpdate":"Обновить плагин","store.copied":"Ссылка для установки скопирована","store.copyInstall":"Скопировать ссылку для установки","store.disclaimer":"Наличие в каталоге не подтверждает работоспособность, совместимость, безопасность или качество.","store.done":"Готово","store.empty":"Под эти фильтры ничего не подходит","store.install":"Установить","store.installFailed":"Установить не удалось","store.installSuccess":"Установлено. Перезапустите DSH Web, чтобы плагин заработал.","store.installed":"Установлен","store.installedLoadFailed":"Список установленных плагинов недоступен","store.installedOnly":"Только установленные","store.installing":"Установка…","store.loadFailed":"Не удалось загрузить каталог","store.loadMore":"Показать ещё","store.loading":"Загрузка каталога плагинов…","store.openDetails":"Открыть карточку в магазине","store.refresh":"Обновить каталог","store.refreshFailed":"Каталог не обновился; показаны последние успешные данные","store.remove":"Удалить плагин","store.removeDetail":"Меняется только зависимость текущего профиля. Чтобы удаление вступило в силу, перезапустите DSH Web.","store.removeFailed":"Удалить не удалось","store.removeLead":"Плагин будет удалён из текущего профиля DSH Web.","store.removeSuccess":"Удалено. Перезапустите DSH Web, чтобы изменение вступило в силу.","store.removeTitle":"Удаление плагина","store.removing":"Удаление…","store.results":"{visible} из {total} проектов","store.retry":"Повторить","store.riskAcknowledge":"Я понимаю риск и хочу установить этот сторонний плагин","store.riskDetail":"Присутствие в каталоге не является проверкой безопасности, совместимости или качества. Установленный код выполняется с правами процесса DSH, а чтобы он заработал, DSH Web нужно перезапустить.","store.riskLead":"В текущий профиль DSH Web будет установлен код из стороннего репозитория.","store.riskTitle":"Подтверждение риска стороннего плагина","store.search":"Поиск по названию, автору, описанию или теме","store.sort":"Сортировка","store.sortName":"Название","store.sortRecommended":"Рекомендуемые","store.sortStars":"Звёзды","store.sortUpdated":"Недавно обновлённые","store.stars":"звёзд: {count}","store.topicListed":"Указана тема","store.update":"Обновить","store.updateAvailable":"Есть обновление","store.updateRiskDetail":"Обновление заменит версию плагина в этом профиле. Чтобы оно вступило в силу, перезапустите DSH Web.","store.updateRiskLead":"В текущий профиль DSH Web будет установлена более новая ревизия стороннего репозитория.","store.updateRiskTitle":"Подтверждение обновления стороннего плагина","store.updateSuccess":"Обновлено. Перезапустите DSH Web, чтобы плагин заработал.","store.updated":"Каталог обновлён {date}","store.updating":"Обновление…","store.validation.check-failed":"Проверка структуры не пройдена","store.validation.check-pending":"Проверка структуры в очереди","store.validation.check-running":"Идёт проверка структуры","store.validation.expired":"Нужна повторная проверка","store.validation.inconclusive":"Требует рассмотрения","store.validation.not-applicable":"Вне проверки плагинов","store.validation.recorded":"Есть запись о проверке","store.validation.sandbox-failed":"Проверка в песочнице не пройдена","store.validation.sandbox-pending":"Проверка в песочнице в очереди","store.validation.sandbox-running":"Идёт проверка в песочнице","store.validation.security-review":"Проверка безопасности","store.validation.unrecognized":"Требует опознания","store.validation.verified":"Проверен","store.verified":"Проверен","store.verifiedOnly":"Только проверенные"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"im-hub":{"f.agentCwd":"Рабочая папка","f.agentCwdHint":"Папка для сессий агента; пусто — папка процесса dsh.","f.agentMaxMessageLength":"Длина сообщения","f.agentMaxMessageLengthHint":"Максимум символов в исходящем сообщении; длинные ответы разбиваются.","f.agentModel":"Модель","f.agentModelHint":"Переопределить модель; пусто — как задано в установке.","f.agentProvider":"Провайдер","f.agentProviderHint":"Переопределить провайдера модели; пусто — как задано в установке.","f.allowedUserIdsHint":"Идентификаторы через запятую; пусто — доступ всем (для боевой работы не советуем).","f.configured":"Задано","f.enabled":"Включено","f.enabledHint":"Общий выключатель всего IM-шлюза.","f.feishuAllowedUserIds":"Разрешённые open id","f.feishuAppId":"App id","f.feishuAppIdHint":"App id приложения Feishu (cli_…).","f.feishuAppSecret":"App secret","f.feishuEnabled":"Включено","f.feishuEnabledHint":"Включить адаптер Feishu по постоянному WebSocket-соединению (публичный адрес не нужен).","f.httpHost":"Адрес привязки","f.httpHostHint":"Адрес, на котором слушают HTTP-серверы в режиме вебхуков.","f.httpPort":"Порт привязки","f.httpPortHint":"Порт, на котором слушают HTTP-серверы в режиме вебхуков.","f.inherit":"Наследовать","f.larkAllowedUserIds":"Разрешённые open id","f.larkAppId":"App id","f.larkAppSecret":"App secret","f.larkEnabled":"Включено","f.larkEnabledHint":"Включить международный адаптер Lark (open.larksuite.com).","f.mockEnabled":"Включено","f.mockEnabledHint":"Адаптер только для тестов: локальный HTTP-эндпоинт без учётных данных платформы.","f.mockPort":"Порт","f.mockPortHint":"Фиксированный HTTP-порт тестового эндпоинта (0 — любой свободный).","f.notConfigured":"Не задано","f.off":"Выкл","f.on":"Вкл","f.secretHint":"Хранится на сервере и больше не показывается. Оставьте пустым, чтобы сохранить текущее значение.","f.telegramAllowedUserIds":"Разрешённые id пользователей","f.telegramEnabled":"Включено","f.telegramEnabledHint":"Включить адаптер Telegram Bot API с опросом обновлений.","f.telegramToken":"Токен бота","f.telegramTokenHint":"Токен от @BotFather (123456:ABC-DEF…).","f.wecomAgentId":"Agent id","f.wecomAgentIdHint":"Agent id приложения WeCom.","f.wecomAllowedUserIds":"Разрешённые id пользователей","f.wecomCorpId":"Corp id","f.wecomCorpIdHint":"Идентификатор организации из консоли WeCom.","f.wecomCorpSecret":"App secret","f.wecomEnabled":"Включено","f.wecomEnabledHint":"Включить адаптер WeCom с обратным вызовом (нужен публичный адрес).","f.wecomEncodingAesKey":"EncodingAESKey","f.wecomToken":"Токен обратного вызова","g.agent":"Агент","g.feishu":"Feishu (Китай)","g.general":"Общие","g.http":"HTTP (режим вебхуков)","g.lark":"Lark (международный)","g.mock":"Тестовый адаптер","g.telegram":"Telegram","g.wecom":"WeCom (WeChat Work)","p.agentCwd":"Например: /home/user/projects/my-agent (пусто — папка DSH)","p.agentMaxMessageLength":"Например: 4000","p.agentModel":"Например: deepseek-v4-flash (пусто — по умолчанию)","p.agentProvider":"Например: volcengine (пусто — по умолчанию)","p.feishuAllowedUserIds":"Например: ou_xxxxxxxxxxxxx","p.feishuAppId":"Например: cli_xxxxxxxxxxxxx","p.feishuAppSecret":"App Secret приложения Feishu","p.httpHost":"Например: 0.0.0.0","p.httpPort":"Например: 8080","p.larkAllowedUserIds":"Например: ou_xxxxxxxxxxxxx","p.larkAppId":"Например: cli_xxxxxxxxxxxxx","p.larkAppSecret":"App Secret приложения Lark","p.mockPort":"Например: 9099 (0 — автоматически)","p.telegramAllowedUserIds":"Например: 123456789, 987654321","p.telegramToken":"Например: 123456789:AA...","p.wecomAgentId":"Например: 1000002","p.wecomAllowedUserIds":"Например: ivanov, petrov","p.wecomCorpId":"Например: wwxxxxxxxxxxxxxx","p.wecomCorpSecret":"Secret приложения WeCom","p.wecomEncodingAesKey":"EncodingAESKey из 43 символов","p.wecomToken":"Токен адреса обратного вызова","settings.collapse":"Свернуть","settings.description":"Подключает агентов dsh к Feishu (Lark), WeCom и Telegram. Каждый чат получает свою сессию агента.","settings.discard":"Отменить","settings.expand":"Развернуть","settings.invalidNumber":"Введите корректное число","settings.overridden":"Переопределено","settings.readOnly":"Установка доступна только для чтения: настройки из интерфейса не меняются.","settings.reset":"Сбросить","settings.save":"Сохранить","settings.saveFailed":"Сохранить не удалось","settings.saving":"Сохранение…","settings.title":"IM-шлюз (dsh-im-hub)","settings.unsaved":"Есть несохранённые изменения"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"betterSidebar":{"addPluginsBrowseMore":"Ещё плагины на GitHub (тема: dsh-better-sidebar)","addPluginsEmpty":"Подборки пока нет — опубликуйте свой плагин под темой на GitHub","addPluginsNoMatch":"Нет подходящих плагинов","addPluginsRecommended":"Рекомендуемые плагины","addPluginsSearch":"Поиск по названию или описанию плагина…","addPluginsTabCard":"Добавить плагины вкладок","addPluginsTabCardDesc":"Зарегистрировать новую страницу панели","addPluginsTabDesc":"Страницы панели (вкладки) расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addPluginsViewerCard":"Добавить плагины предпросмотра","addPluginsViewerCardDesc":"Зарегистрировать просмотр нового типа файлов","addPluginsViewerDesc":"Просмотрщики файлов расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addToConversation":"Добавить в диалог","binary":"Двоичный файл, предпросмотр недоступен","binaryNoPreview":"Этот тип файлов нельзя показать","branch":"Ветка","brokenSymlink":"Битая ссылка","browser":"Браузер","browserBack":"Назад","browserBlockedLoopback":"Заблокировано: локальные и внутренние адреса здесь открывать нельзя","browserBlockedScheme":"Заблокировано: разрешены только адреса http и https","browserEmbedAnyway":"Всё равно загрузить","browserEmbedBlocked":"{host} запрещает встраивание","browserEmbedBlockedDesc":"Сайт запрещает показывать себя внутри других страниц (X-Frame-Options / frame-ancestors), поэтому в панели он не откроется. Откройте его в обычном браузере.","browserForward":"Вперёд","browserGo":"Перейти","browserInvalid":"Неверный адрес","browserNoSandboxWarning":"Песочница выключена: страница работает с полными правами интерфейса (включить обратно можно в настройках)","browserOpenExternal":"Открыть в браузере","browserPlaceholder":"Введите адрес, например example.com","browserStart":"Введите адрес, чтобы начать (режим песочницы)","cancel":"Отмена","changes":"Изменения","changesAdditions":"+{n} добавлено","changesClosePreview":"Закрыть просмотр","changesCollapseAll":"Свернуть все файлы","changesContext":"контекст","changesCopied":"Diff скопирован в буфер обмена","changesDeletions":"-{n} удалено","changesDiff":"Различия (Diff)","changesDiffOpenDesc":"Где открывать diff при разворачивании во вкладку","changesDiffOpenFloat":"Свободное окно","changesDiffOpenFloatDesc":"Плавающее окно по центру экрана — перемещайте, меняйте размер, держите поверх","changesDiffOpenPane":"Панель","changesDiffOpenPaneDesc":"Закреплено под исходной панелью (в стиле сплита VS Code)","changesDiffOpenTitle":"Открывать diff как","changesDiscard":"Отменить изменения","changesDiscardConfirm":"Отменить изменения в файле «{file}»? Действие необратимо.","changesEdit":"Правка","changesEmpty":"Нет изменённых файлов в текущей сессии.","changesError":"ошибка","changesExpandAll":"Развернуть все файлы","changesExportPatch":"Экспорт патча (.patch)","changesFilesCount":"Изменено файлов: {n}","changesFilter":"Фильтр изменений…","changesFilterAll":"Все","changesFilterEmpty":"Нет операций этого типа","changesFold":"Строк: {count}… нажмите, чтобы развернуть","changesFoldLoading":"Загрузка сворачивания изменений…","changesFoldUnavailable":"Сворачивание изменений недоступно","changesFontSize":"Размер шрифта diff","changesGitLens":"Git","changesHtmlRaw":"Исходный HTML","changesHtmlRender":"Рендеринг HTML","changesInlineDiff":"Строчный diff","changesJumpToLine":"Перейти к строке","changesLineNumbers":"Номера строк","changesLoadError":"Записи файлов сессии сейчас недоступны","changesLoading":"Анализ изменений файлов…","changesMdRaw":"Исходный Markdown","changesMdReading":"Чтение Markdown…","changesOpenDiffTab":"Открыть во вкладке diff","changesOpenFile":"Открыть изменённый файл","changesPdfRaw":"Исходный PDF","changesPdfRender":"Просмотр PDF","changesPriorUnknown":"Предыдущее содержимое вне окна загрузки; показано как полностью добавленное","changesRead":"Чтение","changesRedactBanner":"Скрыто","changesRedactOff":"Маскирование выключено: содержимое файла отображается без купюр; нажмите для включения","changesRedactOffLabel":"Маскирование выкл","changesRedactOn":"Маскирование включено: секреты скрыты как [REDACTED]; нажмите для выключения (на свой риск)","changesRedactOnLabel":"Маскирование","changesResizePreview":"Изменить размер","changesRevertAll":"Откатить все изменения","changesRunning":"выполняется","changesSaved":"Настройки инспектора сохранены","changesSessionEmpty":"В этой сессии пока не было операций с файлами","changesSessionLens":"Сессия","changesSideBySide":"Параллельный diff","changesSplit":"Раздельный diff","changesStageAll":"Подготовить все","changesSubtitle":"Просмотр и анализ модификаций файлов рабочей области","changesSyntaxHighlight":"Подсветка синтаксиса","changesTitle":"Инспектор изменений","changesUnified":"Единый diff","changesUnstageAll":"Снять подготовку","changesViewMode":"Режим отображения изменений","changesWhitespace":"Игнорировать пробелы","changesWordDiff":"Пословный diff","changesWrite":"Запись","checkoutError":"Переключить ветку не удалось","cherryPickCommit":"Перенести коммит","cherryPickDesc":"Применить изменения «{subject}» к текущей ветке.","cherryPickTitle":"Перенос коммита","close":"Закрыть","closeLeftTabs":"Закрыть вкладки слева","closeOtherTabs":"Закрыть остальные вкладки","closePinnedTerminal":"Закрыть терминал","closeRightTabs":"Закрыть вкладки справа","collapse":"Свернуть панель","collapseBottomPanel":"Свернуть нижнюю панель","commit":"Закоммитить","commitError":"Коммит не удался","commitPlaceholder":"Сообщение коммита (Ctrl+Enter)","copied":"Скопировано","copy":"Копировать","copyAbsolute":"Копировать абсолютный путь","copyFullHash":"Копировать полный хеш","copyInstall":"Копировать команду установки","copyRelative":"Копировать относительный путь","copyShortHash":"Копировать короткий хеш","copySubject":"Копировать заголовок","delete":"Удалить","deleteDescDir":"Каталог и всё его содержимое будут безвозвратно удалены. Это действие нельзя отменить.","deleteDescFile":"Файл будет безвозвратно удалён. Это действие нельзя отменить.","deleteTitle":"Удалить «{name}»?","diffAdded":"Добавлено","diffBinary":"Двоичный","diffCollapse":"Свернуть","diffDeleted":"Удалено","diffEmpty":"Текстовых изменений нет","diffExpand":"Показать ещё строк: {count}","diffLoadError":"Не удалось загрузить различия","diffRenamed":"Переименовано","discard":"Отменить изменения","discardDesc":"Изменения «{path}» в рабочем дереве будут отброшены без возможности вернуть.","discardTitle":"Отмена изменений","disconnected":"Терминал отключился, переподключаемся…","dismiss":"Отклонить","dockToSidebar":"Вернуть в боковую панель","download":"Скачать","downloadToView":"Скачать, чтобы посмотреть","edit":"Изменить","editor":"Редактор","editorEmptyHint":"Выберите файл в дереве или введите путь выше, чтобы открыть предпросмотр","editorExplorer":"Как открывать файлы","editorExplorerDesc":"Управляет поведением при открытии файлов","editorExplorerMerged":"В одном окне","editorExplorerMergedDesc":"Файлы сменяются в том же окне; новые окна открываются с деревом","editorExplorerSplit":"Раздельно","editorExplorerSplitDesc":"Окно без пути — это отдельный проводник (только дерево); каждый файл открывается своим окном (дерево пристыковано и по умолчанию закрыто)","editorPathPlaceholder":"Путь к файлу (от папки сессии или абсолютный), Enter — открыть","editorSearchNoResults":"Подходящих файлов нет","editorSearchPlaceholder":"Поиск файлов по имени…","editorSearchTruncated":"Слишком много совпадений — показана часть","editorTreeToggle":"Дерево файлов","error":"Не удалось загрузить","exited":"Процесс терминала завершился","expand":"Развернуть панель","expandBottomPanel":"Развернуть нижнюю панель","explorer":"Проводник","fenceDisableAction":"Отключить ограничение рабочей области","fenceErrorReason":"Этот путь находится за пределами рабочей области сессии и заблокирован защитным экраном","files":"Файлы","floatDropHint":"Отпустите, чтобы открыть в свободном окне","git":"Контроль версий","gitDetail":"Посмотреть изменения","guideDescBrowser":"Встроенный браузер для открытия ссылок непосредственно из чата","guideDescFiles":"Просмотр дерева рабочей области; клик по файлу открывает предпросмотр или редактор","guideDescGit":"Изменения Git и правки файлов текущей сессии на одной вкладке","guideDescSidechat":"Независимая ветка диалога, наследующая контекст текущей сессии","guideDescSubagent":"Топология субагентов и фоновые задачи в реальном времени","guideDescTerminal":"Полноценный терминал (xterm + pty) с автоматическим переподключением","hiddenFiles":"Скрытые файлы","history":"История","historyLoadError":"Не удалось догрузить историю","htmlNoSandboxWarning":"Песочница выключена: этот HTML работает с полными правами интерфейса (включить обратно можно в настройках)","jobDurationHours":"{hours} ч {minutes} мин","jobDurationMinutes":"{minutes} мин {seconds} с","jobDurationSeconds":"{seconds} с","jobHideOutput":"Скрыть вывод","jobKill":"Прервать","jobKillConfirm":"Нажмите ещё раз для подтверждения","jobKillError":"Прервать не удалось","jobNoOutput":"Вывода пока нет","jobNotReadYet":"Ждём, пока модель прочитает эту задачу; вывод появится здесь после вызова job_output","jobOutputError":"Не удалось прочитать вывод","jobOutputTruncated":"Вывод обрезан","jobStatusCompleted":"Завершена","jobStatusFailed":"Ошибка","jobStatusKilled":"Прервана","jobStatusRunning":"Выполняется","jobStatusStopping":"Останавливается","jobViewOutput":"Посмотреть вывод","jobs":"Фоновые задачи","jobsCount":"фоновых задач: {count}","jobsCountRunning":"фоновых задач: {count} · выполняется: {running}","loadMore":"Показать ещё","loading":"Загрузка…","mermaidError":"Ошибка рендеринга Mermaid","mermaidZoomHint":"Прокрутка для масштабирования · перетаскивание для перемещения · Esc для закрытия","mermaidZoomIn":"Увеличить","mermaidZoomOut":"Уменьшить масштаб","mermaidZoomReset":"Сбросить","moveToFreeWindow":"Переместить в свободное окно","newFile":"Новый файл","newTab":"Новая вкладка","newTerminal":"Новый терминал","noChanges":"Изменений нет","noSession":"Выберите диалог, чтобы пользоваться панелью","notRepo":"Эта папка не является репозиторием git","openEditor":"Открыть редактор","openExplorer":"Проводник","openFileNewTab":"Открыть в новой вкладке","openFileSide":"Открыть сбоку","openGit":"Панель git","openPlugin":"Открыть","openSubagent":"Задачи","openWithCursor":"Cursor","openWithExplorer":"Файловый менеджер","openWithMenu":"Открыть с помощью","openWithSettingsAdd":"Добавить","openWithSettingsCustomDesc":"Имя + шаблон URL (заполнитель {path}) + флаг семейства VSCode; в удалённом режиме только редакторы семейства VSCode могут открыть удалённый путь","openWithSettingsCustomTitle":"Пользовательские редакторы","openWithSettingsFamily":"Семейство VSCode","openWithSettingsFamilyDesc":"Этот редактор понимает URL-адреса VSCode (поддерживает открытие через SSH-удалённое подключение)","openWithSettingsInvalidHint":"Редакторы без имени или шаблоны без {path} / scheme:// не отображаются в меню","openWithSettingsName":"Имя","openWithSettingsRemove":"Удалить","openWithSettingsSshDesc":"Пусто = локальная рабочая область; с user@host или SSH-алиасом открыватели семейства VSCode переключаются на протокол vscode-remote/ssh-remote, а Файловый менеджер / Zed / пользовательские редакторы вне семейства VSCode скрываются из меню","openWithSettingsSshPlaceholder":"пользователь@хост или алиас SSH","openWithSettingsSshTitle":"SSH удаленный хост","openWithSettingsTemplate":"напр. cursor://file/{path}","openWithSshSuffix":"(SSH)","openWithVscode":"VS Code","openWithZed":"Zed","parent":"Родительская папка","pinAgentTerminal":"Закрепить терминал агента","pinOpenWith":"Закрепить в меню","pinTerminal":"Закрепить терминал","pinToGlobal":"Закрепить для всех","pinToWorkspace":"Закрепить в рабочей области","pinnedRailLabel":"Закреплённые терминалы","pinnedTerminalKindAgent":"Терминал агента","pinnedTerminalKindUi":"Терминал интерфейса","pinnedTerminalScopeGlobal":"Закреплено глобально","pinnedTerminalScopeWorkspace":"Закреплено в рабочей области","pinnedTerminalTooltip":"{kind} · {scope} · {cwd}","pluginBetterOverleafDesc":"Вкладка Overleaf для better-sidebar: синхронизация проектов и предпросмотр файлов","pluginBetterOverleafName":"Вкладка Overleaf (dsh-better-overleaf)","pluginBilingualReaderDesc":"Чтение PDF-статей в боковой панели DSH с контекстным переводом через LLM","pluginBilingualReaderName":"Двуязычный ридер (dsh-bilingual-reader)","pluginCodeNavDesc":"Навигатор по коду: подсветка синтаксиса, дерево символов (классы, методы, переменные) и поиск по файлу","pluginCodeNavName":"Навигатор предпросмотра кода","pluginDocsPanelDesc":"Глобальные документы в боковой панели DSH: читайте свои заметки в формате Markdown из любого рабочего пространства — список файлов, структура, открытие в Chrome / VS Code и кнопки копирования; директория документов настраивается (по умолчанию ~/.dsh/docs)","pluginDocsPanelName":"Глобальная документация (dsh-docs-panel)","pluginEgoBrowserDesc":"Браузер агента для DeepSeek Harness: 32 инструмента ego_* управляют реальным Chromium, с нативной боковой панелью \"ego browser\", которая предоставляет живой просмотр каждой страницы, посещаемой агентом — вы можете кликать, перетаскивать и печатать, чтобы взять управление на себя. Регистрирует вкладку автоматически, если присутствует better-sidebar, в противном случае переходит на плавающий пузырь.","pluginEgoBrowserName":"Браузер агента (ego-browser)","pluginFlowglassDesc":"Граф потока живого сеанса с тремя полосами для пользователя, ассистента и вызовов инструментов, а также параллельными группами, ветвями под-агентов, детализацией и текущим статусом; регистрирует вкладку Flowglass в нативном режиме при установке better-sidebar и сохраняет отдельный выдвижной ящик в качестве резерва.","pluginFlowglassName":"Flowglass (dsh-flowglass)","pluginGitForgeDesc":"Вкладка Git Forge: библиотека аккаунтов GitHub/Gitea (и других форков) + права на проекты + политика жесткого пуша; токены остаются в локальных секретах (никогда в контексте модели); инструмент GitForge только для чтения и помощник для HTTPS-учетных данных агента","pluginGitForgeName":"Учётные данные Git (dsh-git-forge)","pluginGitRemotesDesc":"Вкладка Git Remotes: ветка, upstream, отставание и опережение, fetch (с необязательным prune), pull только ff-only и push после подтверждения во вкладке. Не заменяет встроенную вкладку git со стадированием и коммитами, не предлагает force-push и не даёт модели инструмент автопуша","pluginGitRemotesName":"Удалённые репозитории Git (dsh-git-remotes)","pluginGithubWorkbenchDesc":"Вкладка GitHub Workbench: дерево репозитория, Issues, PR и Actions с полной поддержкой управления","pluginGithubWorkbenchName":"GitHub Workbench (dsh-github-workbench)","pluginMdExportDesc":"Добавляет кнопку «Экспорт» на панель Markdown в better-sidebar: рендерит текущий .md в автономный HTML или экспортирует в PDF","pluginMdExportName":"Экспорт в Markdown","pluginNotLoaded":"Плагин не загружен, вкладка недоступна:","pluginOfficeDesc":"Предпросмотр офисных файлов (.docx / .xlsx / .pptx) в редакторе better-sidebar; тяжёлые библиотеки рендеринга держатся вне основного бандла","pluginOfficeName":"Предпросмотр Office","pluginSentinelDesc":"Пробуждение агента по условию: датчики файлов, процессов, портов, http, команд и вебхуков будят спящие сессии, когда условие сработало; добавляет вкладку Sentinel с общей таблицей наблюдений","pluginSentinelName":"Система пробуждения (dsh-sentinel)","pluginServerDeckDesc":"Панель серверов: карточки хостов с мониторингом CPU/памяти/диска и встроенным терминалом xterm.js","pluginServerDeckName":"Server Deck (dsh-server-deck)","pluginSidebarQaDesc":"Выделил и спросил: выделите текст в диалоге, задайте вопрос в правой панели — откроется отдельная сессия-уточнение в той же рабочей папке; быстрая модель без рассуждений сжимает основной контекст и подставляет его вместе с цитатой, не прерывая основной диалог. Уточнения вкладываются, продолжаются и уходят в архив","pluginSidebarQaName":"Выделить и спросить (dsh-sidebar-qa)","pluginSidenoteDesc":"Боковой чат в стиле Codex + аннотации к выделенному тексту","pluginSidenoteName":"Боковой чат (dsh-sidenote)","pluginSshTunnelDesc":"Вкладка SSH-туннеля: инвентарь нескольких хостов + гранты для каждого проекта + локальные секреты; инструмент SSHManager (стратегии выполнения/ SFTP/сеансов); центральный интерактивный терминал и двухпанельный SFTP","pluginSshTunnelName":"SSH-туннель (dsh-ssh-tunnel)","pluginSuhuangScrollDesc":"Интеграция Suhuang Scroll Runtime с настройками DSH и better-sidebar для конфигурации моделей и тестов","pluginSuhuangScrollName":"Свиток Сухуан (dsh-suhuang-scroll)","pluginTurnReviewDesc":"Человеческий шлюз на только что завершённом ходе: Одобрить / Запросить изменения по пути с необязательным комментарием; пути сгруппированы по основной сессии / суб-агенту / без атрибуции; встроенное сравнение снимка и текущего состояния перед принятием решения. Без форка, без /rewind.","pluginTurnReviewName":"Обзор реплики (dsh-turn-review)","pluginVideoPreviewDesc":"Просмотр видео (.mp4/.webm/.mov/.mkv/.avi и других) прямо в редакторе better-sidebar через отдельный маршрут /video с поддержкой HTTP Range (206) — перемотка работает, ограничение mediaLimit в 20 МБ не действует","pluginVideoPreviewName":"Предпросмотр видео","presetDshDesktopDesc":"Расширенный режим Electron (безрамочный): macOS резервирует верхнюю полосу 20px; Windows резервирует заголовок 32px, если WCO недоступен","preview":"Предпросмотр","produced":"Создано","producedOpen":"Открыть в панели","referenceFile":"@файл","refresh":"Обновить","refreshUnsavedConfirm":"Файл изменился на диске. Обновление приведёт к потере несохранённых изменений. Продолжить?","rename":"Переименовать","renameInvalid":"Имя не может быть пустым или содержать разделители пути.","retry":"Повторить","revertCommit":"Откатить коммит","revertDesc":"Создать в текущей ветке новый коммит, отменяющий «{subject}».","revertTitle":"Откат коммита","sandboxRestore":"Вернуть песочницу","sandboxStatusOn":"Песочница включена · страницы не видят данные интерфейса и локальные файлы; входы и сторонние куки могут не работать","sandboxUnlock":"Временно отключить (небезопасно)","save":"Сохранить","saveFailed":"Сохранить не удалось","saved":"Сохранено","settingsBottomTerminalDesc":"При первом разворачивании нижней панели в сессии открывать в ней новый терминал (ограничение на число терминалов сохраняется; по умолчанию включено)","settingsBottomTerminalTitle":"Открывать терминал при первом разворачивании нижней панели","settingsBrowserHttpDesc":"Если включено, клик по внешней http-ссылке в диалоге или интерфейсе открывает панель (страницы плагинов с urlTarget имеют приоритет); Ctrl/Cmd+клик всегда в обход","settingsBrowserHttpTitle":"Открывать http-страницы в панели","settingsBrowserHttpsDesc":"Если включено, клик по внешней https-ссылке открывает панель. По умолчанию выключено: большинство https-сайтов запрещают встраивание, поэтому системный браузер удобнее","settingsBrowserHttpsTitle":"Открывать https-страницы в панели","settingsBrowserLinksDesc":"Если включено, клик по внешней ссылке открывает панель, а не новое окно; http и https управляются отдельными переключателями ниже; Ctrl/Cmd+клик всегда в обход","settingsBrowserLinksTitle":"Открывать внешние ссылки из диалога в панели","settingsBrowserLoopbackDesc":"Разделённый запятыми список разрешённых адресов локальной петли (например, localhost:5174 или 127.0.0.1:8080), которые может посещать боковой браузер; пустое значение блокирует все локальные адреса по умолчанию. Песочница всё ещё применяется — страницы не могут читать данные GUI.","settingsBrowserLoopbackPlaceholder":"например, localhost:5174, 127.0.0.1:8080","settingsBrowserLoopbackTitle":"Разрешенные локальные адреса","settingsBrowserSandboxDesc":"С выключенной песочницей любой открытый сайт работает в том же origin, что и интерфейс: он может читать данные сессии и действовать от вашего имени. Включайте только для полностью доверенных сайтов","settingsBrowserSandboxTitle":"Отключить песочницу браузера (небезопасно)","settingsConflict":"Настройку изменили в другом окне — повторите","settingsCustomCssDesc":"Стили добавлены в конце страницы (поздние в каскаде выигрывают при равенстве; используйте !important для переопределения встроенных переменных, записанных через JS)","settingsCustomCssPlaceholder":"/* например, зарезервировать 36px для оболочки с нарисованной вручную строкой заголовка */\nhtml[data-dsh-title-bar-height=\"36\"] {\n --dsh-title-bar-strip: 36px !important;\n}","settingsCustomCssTitle":"Пользовательский CSS","settingsDone":"Готово","settingsFenceDesc":"Если включено, файловые функции боковой панели ограничены рабочей областью сессии (по умолчанию); если выключено — доступен любой файл на хосте","settingsFenceTitle":"Ограничение рабочей области (Fence)","settingsFontFamilyDesc":"Своя гарнитура терминала (CSS-стек вида \"JetBrains Mono\", monospace; пусто — моноширинный шрифт темы)","settingsFontFamilyPlaceholder":"\"JetBrains Mono\", monospace","settingsFontFamilyTitle":"Шрифт терминала","settingsFontSizeDesc":"Размер шрифта терминала в пикселях (9–32, по умолчанию 13)","settingsFontSizeSuffix":"px","settingsFontSizeTitle":"Размер шрифта терминала","settingsGeneralTitle":"Общие","settingsHtmlDefaultUnsafeDesc":"Если включено, каждый новый предпросмотр HTML открывается без песочницы (тот же origin, что и интерфейс — доступны файлы сессии и внутренние API); вернуть песочницу можно одним нажатием в строке состояния","settingsHtmlDefaultUnsafeTitle":"Открывать предпросмотр HTML без песочницы (небезопасно)","settingsHtmlSandboxDesc":"С выключенной песочницей просматриваемый HTML работает в том же origin, что и интерфейс: он может читать файлы сессии, локальное хранилище и вызывать внутренние API. Включайте только для полностью доверенных файлов","settingsHtmlSandboxTitle":"Отключить песочницу предпросмотра HTML (небезопасно)","settingsIntro":"Что показывает боковая панель и как она себя ведёт","settingsJobsDesc":"Разворачивать панель и открывать страницу задач при появлении новой фоновой задачи в текущем диалоге (срабатывает на каждую); выключите, чтобы открывать вручную","settingsJobsTitle":"Открывать страницу задач при новой фоновой задаче","settingsNav":"Боковая панель","settingsOpenDesc":"Разворачивать панель для совсем новых диалогов; у существующих сохраняется своя раскладка","settingsOpenPathDesc":"Открывать файловые ссылки из диалога (строки инструментов, созданные файлы, упоминания) в редакторе панели, а не в системном приложении","settingsOpenPathTitle":"Открывать файлы из диалога в панели","settingsOpenTitle":"Разворачивать для новых диалогов","settingsOpenToolsDesc":"Когда включено, модель может активно открывать файлы, папки и HTTP(S)-страницы в боковой панели через инструмент sidebar_open (по умолчанию отключено).","settingsOpenToolsTitle":"Внедрите инструмент sidebar-open для модели","settingsPopup":"Настройки функции","settingsPopupDesc":"Параметры для «{feature}»","settingsSaveFailed":"Не удалось сохранить","settingsSchemeAutoDesc":"Консервативный: учитывается только стандартный API Window Controls Overlay (реальная высота наложения заголовка); обычные веб-среды не изменяются","settingsSchemeAutoTitle":"Автоопределение","settingsSchemeCustomDesc":"Полный контроль: вставьте пользовательский CSS (может переопределять встроенные стили) и задайте расстояние смещения строки заголовка","settingsSchemeCustomTitle":"Настроить","settingsSchemeDetectedSuffix":"обнаружено","settingsSchemeWebDesc":"Явно указать официальный веб-интерфейс: без адаптации вообще (даже стандартной геометрии WCO)","settingsSchemeWebTitle":"Официальный сайт DSH","settingsShellArgsDesc":"Явные аргументы командной оболочки, разделённые пробелами; если не пусто, полностью заменяют значения по умолчанию (тот же принцип, что и у shellArgs в yaml)","settingsShellArgsPlaceholder":"напр. -l (пусто = по умолчанию)","settingsShellArgsTitle":"Аргументы командной оболочки","settingsShellDesc":"Оболочка, запускаемая для терминалов UI и моделей (абсолютный путь или имя исполняемого файла). Пустое значение сохраняет устаревший порядок: shell из конфига yaml → $SHELL / логин-шелл / Windows powershell.exe. Применяется к терминалам, открытым после этого.","settingsShellPlaceholder":"например, /bin/zsh (пусто = автоматически)","settingsShellTitle":"Путь к оболочке","settingsSubagentDesc":"Разворачивать панель и открывать страницу задач, когда в диалоге появляется субагент; выключите, чтобы открывать вручную","settingsSubagentTitle":"Открывать страницу задач при появлении субагента","settingsTabsTitle":"Содержимое панели","settingsTitleBarDesc":"Оставлять место под системный заголовок окна Windows справа сверху, чтобы кнопки и содержимое панели располагались ниже, а не под ним","settingsTitleBarStripDesc":"Высота полосы заголовка: на сколько пикселей опускаются кнопки и содержимое панели (0–120, по умолчанию 40)","settingsTitleBarStripTitle":"Смещение","settingsTitleBarTitle":"Режим совместимости с заголовком окна","settingsToolsDesc":"Если включено, модель может создавать терминалы в панели и работать в них через восемь инструментов terminal_* (по умолчанию выключено)","settingsToolsTitle":"Дать модели инструменты терминала","settingsViewerCatchAll":"На всё остальное: любой файл","settingsViewersTitle":"Просмотрщики файлов","settingsWidthDesc":"Какую долю ширины окна занимает панель в новых диалогах (20–60)","settingsWidthSuffix":"%","settingsWidthTitle":"Ширина по умолчанию","showInFolder":"Показать в папке","sideChat":"Боковой чат (бета)","sideChatBlockCollapse":"Свернуть","sideChatBlockCollapseAria":"Свернуть","sideChatBlockDone":"Готово","sideChatBlockExitCode":"Код завершения {code}","sideChatBlockExpand":"Развернуть {hidden} строк","sideChatBlockExpandAria":"Развернуть ещё {hidden} строк","sideChatBlockFailed":"Сбой","sideChatBlockFiles":"Файлов: {count}","sideChatBlockNoOutput":"(нет вывода)","sideChatBlockRunning":"Выполняется","sideChatBlockSignal":"Завершено по сигналу: {signal}","sideChatBlockWindow":"Показано {shown} из {total} строк","sideChatCancel":"Остановить","sideChatCancelTitle":"Прервать текущий ход (запланированные задачи сохраняются)","sideChatClose":"Закрыть тему","sideChatCloseTitle":"Освободить агента потока (история сохраняется)","sideChatComposerPlaceholder":"Задать уточняющий вопрос…","sideChatConnConnecting":"Подключение…","sideChatConnDisconnected":"Соединение разорвано","sideChatConnReconnect":"Переподключиться","sideChatConnReconnectAction":"Подключиться сейчас","sideChatConnRecovered":"Соединение восстановлено","sideChatConnRestartAction":"Перезапустить соединение","sideChatCreating":"Создание побочного диалога…","sideChatEmpty":"Без посторонних разговоров","sideChatEmptyDesc":"Каждый побочный диалог открывается в отдельной вкладке на панели — он наследует контекст текущей сессии и никогда не попадает в основной разговор","sideChatError":"Ошибка бокового чата: {message}","sideChatFirstPlaceholder":"Задайте первый вопрос — контекст сохранён…","sideChatInjection":"Контекст внедрен","sideChatNew":"Новая тема","sideChatNoTurn":"Сохранение доступно после первого завершённого хода","sideChatPendingDrop":"Последний неотвеченный вопрос не будет включен в сохраненную сессию","sideChatRetry":"Повторить","sideChatSave":"Сохранить как новую сессию","sideChatSaveTitle":"Повысьте этот тред до уровня отдельной сессии в основном списке сессий","sideChatSaved":"Сохранено как новая сессия","sideChatSend":"Отправить","sideChatThink":"Думаю","sideChatThinking":"Глубокое погружение…","sideChatThreads":"Переключить ветку / новая","sideChatTurnUsage":"Вход: {input} токенов · Выход: {output} токенов","sideChatUntitled":"Новая тема","splitDown":"Разделить вниз","splitLeft":"Разделить влево","splitRight":"Разделить вправо","splitUp":"Разделить вверх","stage":"В индекс","stageAll":"Всё в индекс","staged":"В индексе","statusTruncated":"Слишком много изменений; показаны первые 2,000 записей","subagent":"Задачи","subagentCount":"субагентов: {count}","subagentCountRunning":"субагентов: {count} · работает: {running}","subagentDiagCorrupt":"Повреждён","subagentDiagUnavailable":"Недоступен","subagentDiagUnsupported":"Не поддерживается","subagentEmpty":"Субагентов нет","subagentEmptyDesc":"Здесь появятся субагенты, запущенные основным агентом","subagentInactive":"Простаивает","subagentMainAgent":"Основной агент","subagentModeContinuable":"С продолжением","subagentModeOneShot":"Разовый","subagentRunning":"Работает","subagentThinking":"Думает…","terminal":"Терминал","terminalConnectFailed":"Терминал не смог подключиться несколько раз подряд","terminalDepsFailed":"Не удалось загрузить зависимость терминала node-pty","terminalDepsHint":"Выполните команду ниже в терминале на машине с DSH, чтобы починить, и повторите (версия node-pty должна совпадать с версией ядра DSH):","terminalDepsProfile":" (определён профиль: {profile})","terminalError":"Не удалось подключиться к терминалу","terminalLimit":"Достигнут предел терминалов (3)","terminalRetry":"Повторить","terminalShellNotFound":"Настроенный командный шелл не найден: {name} — проверьте путь к шеллу в Настройки → Боковая карточка → Терминал","terminalSkipWait":"Пропустить ожидание","terminalWaitBanner":"Агент ожидает {needle}","timeHoursAgo":"{n} ч назад","timeJustNow":"только что","timeMinutesAgo":"{n} мин назад","timeYesterday":"вчера","toc":"Содержание","truncation":"Файл слишком большой — показаны первые 512 КБ","unpinOpenWith":"Открепить","unpinTerminal":"Открепить","unsaved":"Не сохранено","unstage":"Из индекса","unstageAll":"Всё из индекса","unstaged":"Вне индекса","uploadCancelled":"Загрузка отменена","uploadDone":"Загружено {count} файл(ов)","uploadDropChat":"Перетащите в чат, чтобы добавить изображения","uploadDropHint":"Перетащите файлы/папки сюда для загрузки","uploadFailed":"Не удалось загрузить: {error}","uploadFailedUnknown":"Неизвестная ошибка","uploadFiles":"Загрузить файлы","uploadFolder":"Загрузить папку","uploadHere":"Загрузите сюда","uploadProgress":"Загружено {done}/{total}: {name}","uploadTo":"Загрузить в {dir}","uploadTooLarge":"Файл слишком большой (превышен лимит загрузки)","uploadingTo":"Загрузка в {dir}…","viewCommitDiff":"Посмотреть изменения коммита","viewerBinary":"Скачивание файла","viewerCode":"Код","viewerHtml":"HTML","viewerImage":"Изображение","viewerMarkdown":"Markdown","viewerPdf":"PDF","worktree":"Рабочее дерево"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pin":{"action.pin":"Закрепить","action.unpin":"Открепить"},"task-board":{"archive.empty":"В архиве пусто","board.archive":"Архив","board.archiveView":"Архив ({count})","board.backToBoard":"К доске","board.close":"В чат","board.created":"Создана","board.empty":"В этой колонке задач нет","board.filterAll":"Все","board.hostError":"Действие на хосте не удалось: {error}","board.hostMeta":"Часовой пояс хоста {timeZone} · ревизия {revision}","board.new":"Новая задача","board.pending":"Отправка","board.retryHost":"Переподключиться к хосту","board.runs":"запусков","board.search":"Фильтр задач…","board.status":"Статус","board.status.backlog":"Бэклог","board.status.done":"Готово","board.status.failed":"Ошибка","board.status.running":"В работе","board.status.todo":"К выполнению","board.title":"Доска задач","board.updated":"Обновлена","card.scheduled":"по расписанию","delete.cancel":"Отмена","delete.confirm":"Удалить «{name}»? Отменить это будет нельзя.","delete.ok":"Удалить","delete.title":"Удаление задачи","detail.archive":"В архив","detail.archivedAt":"В архиве · {time}","detail.close":"Закрыть","detail.delete":"Удалить","detail.description":"Описание","detail.execution":"История запусков","detail.executionEnded":"Завершён","detail.executionSettings":"Параметры запуска","detail.executionStarted":"Начат","detail.noExecution":"Ещё не запускалась","detail.noSession":"Сессии нет","detail.prompt":"Промпт запуска","detail.rerun":"Запустить снова","detail.restore":"Вернуть из архива","detail.result.cancelled":"Отменён","detail.result.failed":"Ошибка","detail.result.running":"Выполняется","detail.result.succeeded":"Успешно","detail.run":"Запустить","detail.schedule":"Запуски по расписанию","detail.schedule.cron":"Выражение cron","detail.schedule.dueSoon":"Скоро","detail.schedule.enable":"Включить запуски по расписанию","detail.schedule.invalid":"Неверное выражение cron","detail.schedule.lastTriggered":"Последний запуск","detail.schedule.nextRun":"Следующий запуск","detail.schedule.notScheduled":"Расписания пока нет","detail.schedule.preset.daily9":"Каждый день в 09:00","detail.schedule.preset.hourly":"Каждый час","detail.schedule.preset.tenMin":"Каждые 10 минут","detail.schedule.preset.weeklyMon9":"По понедельникам в 09:00","detail.schedule.presets":"Готовые варианты","detail.title":"Задача","detail.viewSession":"Открыть сессию","entry.label":"Доска задач","exec.error.noWorkspace":"Нет рабочей папки, в которой можно выполнить задачу","exec.error.promptRejected":"Промпт отклонён","exec.hint":"Применяется при запуске задачи: рабочая папка определяет, где появится сессия выполнения; режим задаёт пресет агента; разрешение выставляется командой /permission. Пусто — как по умолчанию в рантайме.","exec.mode.brokenSuffix":" (недоступен)","exec.mode.default":"Как в установке","exec.mode.defaultSuffix":" (по умолчанию)","exec.mode.removed":" (удалён)","exec.permission.danger-full-access":"Полный доступ","exec.permission.default":"Как в сессии","exec.permission.read-only":"Только чтение","exec.permission.workspace-write":"Запись в рабочую папку","exec.workspace.recent":"Последняя (по умолчанию)","new.cancel":"Отмена","new.description":"Описание","new.descriptionPlaceholder":"Контекст, границы, критерии приёмки (необязательно)","new.mode":"Режим","new.permission":"Разрешения","new.prompt":"Промпт запуска","new.promptPlaceholder":"Полная инструкция агенту (если пусто, возьмётся заголовок)","new.required":"Нужен заголовок","new.submit":"Создать","new.title":"Заголовок","new.titlePlaceholder":"Что нужно сделать, одной строкой","new.workspace":"Рабочая папка","run.failed":"Запуск не удался: {error}","settings.announceToAgent":"Сообщать агентам о доске задач","settings.announceToAgentHint":"Включено: в системный промпт каждого агента добавляется упоминание доски. Выключено: агенты узнают о ней, только если вы скажете сами.","settings.collapse":"Скрыть настройки","settings.description":"Настройка доски задач на хосте, упоминания в промпте и защиты от засыпания, пока есть незавершённая работа.","settings.discard":"Отменить","settings.enabled":"Включить доску задач","settings.enabledHint":"Когда выключено, пункт в панели и сама доска скрыты.","settings.expand":"Показать настройки","settings.inherit":"Наследовать","settings.invalidNumber":"Введите число или оставьте пустым, чтобы взять значение по умолчанию.","settings.notExposed":"Эта версия DSH не выводит namespace настроек плагина на страницу конфигурации, поэтому форма недоступна. Правьте ~/.dsh/settings.yaml напрямую или добавьте namespace в список WEB_SETTINGS_NAMESPACES у dsh-host-apiproxy и перезапустите.","settings.off":"Выкл","settings.on":"Вкл","settings.overridden":"Переопределено","settings.powerBoundary":"Батарея будет расходоваться быстрее. Закрытие крышки, ручной уход в сон, гибернация, выключение, действия при низком заряде и корпоративные политики под гарантию не попадают; уже спящий компьютер не разбудят.","settings.powerError":"Последняя ошибка защиты от засыпания: {error}","settings.powerStatus":"Платформа: {platform}; защита: {phase}; работающих сессий: {running}; включённых расписаний: {schedules}","settings.powerUnknown":"неизвестно","settings.preventIdleSleep":"Не давать системе засыпать","settings.preventIdleSleepHint":"По умолчанию выключено. Когда включено, хост не даёт системе уйти в сон, пока работает хоть одна сессия DSH, включено расписание или состояние сессий ещё неизвестно. Экран при этом может гаснуть.","settings.readOnly":"В этой установке настройки доступны только для чтения.","settings.reset":"Вернуть по умолчанию","settings.save":"Сохранить","settings.saveFailed":"Установка не приняла эти значения; они оставлены, чтобы вы их поправили.","settings.saving":"Сохранение…","settings.title":"Доска задач","settings.unsaved":"Не сохранено","status.move.backlog":"В бэклог","status.move.todo":"К выполнению","time.justNow":"только что"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"dsh-market":{"agentBusyInstall":"Агент в настоящее время работает — дождитесь завершения (или отмените его) перед установкой. Установка изменяет файлы плагина, поэтому работающий агент может завершиться с ошибкой в процессе.","agentBusyUpdate":"Агент в настоящее время работает — дождитесь завершения (или отмените его) перед обновлением. Обновления заменяют файлы плагина на месте, поэтому работающий агент может завершиться с ошибкой или смешать версии в процессе выполнения.","aiFix":"Починить с агентом","aiFixConservative":"Действуй осторожно: чини только явные ошибки из списка выше (падения при запуске, дубли записей, подтверждённые расхождения зависимостей). Предупреждения и записи к сведению (например, неподтверждённые диапазоны peer-зависимостей) трогай, только если они связаны с явной ошибкой. Не делай лишних обновлений и перестановок; объясняй каждое изменение и жди подтверждения.","aiFixCopied":"Промпт скопирован — вставьте его в новый диалог и отправьте, когда будете готовы","aiFixDetect":"Шаг 1 — сначала определитесь. Прежде чем что-либо трогать, убедитесь, что процесс, в котором вы работаете, ЭТОТ экземпляр DeepSeek Harness, к которому относится данный профиль (то есть текущая диагностируемая композиция — это та, в которой вы сейчас находитесь). Проверьте, указывает ли текущий каталог / $DSH_HOME / командная строка на этот профиль или работает ли процесс внутри deepseek-harness. Если не можете определить, считайте, что ответ «да» (безопасный выбор).","aiFixFail":"Буфер обмена недоступен — скопируйте диагностику ниже вручную","aiFixHint":"Передать диагностику новой сессии агента (скопировано в буфер; отправлять или нет — решаете вы)","aiFixIfSelf":"Если ДА — вы являетесь этим инструментом: никогда не изменяйте текущую конфигурацию, инструмент или основные пакеты на месте (не редактируйте cordis.patch.yml, не меняйте порядок/включайте/отключайте пакеты, не устанавливайте/удаляйте/обновляйте плагины, не переустанавливайте зависимости, не обновляйте/перезапускайте dsh). Три шага: 1) только анализ в режиме чтения, ничего не изменяйте; 2) создайте apply.sh/.bat (изменения для этого исправления) и rollback.sh/.bat (полностью отменяет его); оба идемпотентны — apply создает снимки только если их еще нет и никогда не перезаписывает существующий снимок (если он существует, значит apply уже выполнялся, так что откатитесь или подтвердите перед повторным запуском), а rollback восстанавливает из этого снимка, так что частично выполненный apply все еще можно откатить, а повторный rollback безопасен; 3) дайте мне запустить apply во внешнем терминале и вставьте stdout/stderr обратно вам. Укажите причину и ждите моего подтверждения на каждом шаге — никогда не запускайте это самостоятельно.","aiFixIntro":"Помоги починить проблемы с плагинами DeepSeek Harness (профиль: {0}). Диагностика показала:","aiFixScope":"Можно менять порядок в dsh.profile.bundles, включать и выключать плагины, править cordis.patch.yml. Учти: официальные бандлы трогать нельзя; прежде чем что-то менять, изложи план.","brokenBundleBanner":"Эти плагины теперь имеют клиентский пакет, который не будет обрабатываться; страница может отображаться пустой после обновления — рекомендуется выполнить откат:","catInfo":"Информация","catRisk":"Риск","catWarn":"Предупреждение","checkPeerInfoTier":"Информация о зависимостях","checkPeerInfoTierEmpty":"Нет записей информационных зависимостей","checkPeerRisk":"Риски зависимостей","checkPeerRiskEmpty":"Нет несоответствий уровней риска зависимостей","checkPeerSatisfied":"Удовлетворены зависимости","checkPeerSatisfiedEmpty":"Нет удовлетворяющих записей зависимостей","checkPeerWarning":"Предупреждения о зависимостях","checkPeerWarningEmpty":"Нет несоответствий зависимостей на уровне предупреждений","comments":"Комментарии","commentsError":"Не удалось загрузить комментарии. Проверьте подключение и попробуйте снова.","commentsLoading":"Загрузка комментариев…","commentsNote":"Комментарии поступают из GitHub Discussions. Открытие этого подключается к giscus.app и GitHub; для публикации требуется аккаунт GitHub.","commentsOnGitHub":"Прочитайте обсуждение на GitHub","commentsRetry":"Попробуйте снова","commentsTitle":"Комментарии","compatRiskBanner":"Обнаружен риск несовместимости — откройте Диагностику перед перезапуском или откатите эту операцию.","confirmInstall":"Подтвердить установку","conflictBody":"Конфликт с установленным плагином — остаться может только один:","conflictDeclined":"Вы сохранили установленные плагины; этот не был установлен","conflictDetails":"Детали","conflictKeep":"Оставить то, что у меня есть","conflictKeepNote":"Оставить этот","conflictOutcomeInstall":"установить","conflictOutcomeKeep":"оставить","conflictOutcomeRemove":"удалить","conflictOutcomeSkip":"пропустить","conflictReplaceFailed":"Замена не завершена. Перечисленные ниже плагины были удалены и не восстановлены — проверьте их:","conflictReplacing":"Замена…","conflictReverted":"Отменено автоматически; ничего не было изменено","conflictSwap":"Переключиться на этот","conflictSwapNote":"Настройки удалённых плагинов сохраняются, чтобы вы могли установить их позже","conflictTitle":"Невозможно установить: конфликт с установленным плагином","conflictWhy":"cordis отклоняет дерево плагинов, содержащее дублирующиеся идентификаторы записей; сохранение этого плагина предотвратит запуск DeepSeek Harness.","descCollapse":"Показать меньше","descExpand":"Показать больше","goDiagnose":"Открыть диагностику","lightboxClose":"Закрыть предпросмотр","lightboxNext":"Следующий","lightboxPrev":"Предыдущий","loadRetry":"Повторить","noteAdd":"Заметка","noteEdit":"Редактировать заметку","noteMine":"Моя заметка","notePlaceholder":"Опишите это своими словами. Это заменит описание автора.","noteSave":"Сохранить","noteSeeMine":"Вернуться к моей заметке","noteSeeTheirs":"Показать описание автора","noteTheirs":"Оригинал","notesCommits":"Коммиты","notesCommitsRecent":"Последние коммиты (могут не совпадать с установленной версией — только для справки)","notesLink":"Что изменилось","notesLoadFail":"Обновления сейчас недоступны — попробуйте позже.","notesNone":"Этот плагин не публикует заметки об обновлениях.","notesNpm":"Время публикации версии","notesRelease":"Заметки о выпуске","opBlockedCard":"Невозможно установить · подробности","opClear":"Очистить выполненные","opClose":"Свернуть","opDequeue":"Удалить из очереди","opDone":"Готово","opDoneRefresh":"Установлено · обновите страницу для применения","opEmpty":"Нет операций в процессе выполнения","opEmptyHint":"Здесь отображается прогресс установки, обновления и удаления","opInstalling":"Установка","opKind_install":"Установить","opKind_uninstall":"Удалить","opKind_update":"Обновить","opLeaveHint":"Вы можете покинуть эту страницу; вы получите уведомление, когда процесс завершится","opNeedsChoice":"Не удалось установить · откат выполнен автоматически, ничего не изменилось","opNeedsYou":"нужен вам","opQueued":"В очереди","opQueuedAhead":"впереди:","opRetry":"Повторить","opRunning":"Работает","opTitle":"Задачи","orderAlreadyOptimal":"Текущий порядок уже удовлетворяет всем правилам и зависимостям — переставлять нечего","orderApplied":"✓ Применено — перезапустите, чтобы вступило в силу","orderApply":"Применить порядок","orderAutoSort":"Отсортировать автоматически","orderDiffHint":"Этот порядок изменит композицию: переопределений {0}, потерянных записей {1}, дублей {2}","orderDown":"↓","orderDrag":"Перетащите, чтобы изменить порядок","orderDragHint":"Тяните ⠿, чтобы переставить; «Применить порядок» сохранит","orderReset":"Сбросить черновик","orderSection":"Порядок загрузки","orderSuggestApply":"Применить предложенный порядок","orderSuggestHint":"Предложенный порядок (отсортирован по правилам before/after):","orderTrialFail":"Статическая проверка композиции не прошла: {0}","orderUp":"↑","orphanBundle":"⚠️ Следующий запуск завершится ошибкой: профиль объявляет эти пакеты, но они не установлены. Переустановите их или удалите из dsh.profile.bundles в файле package.json профиля:","peerInfoUnverified":"непроверенный","peerRiskAboveMax":"выше явного максимума","peerRiskBelowMin":"ниже заявленного минимума","peerWarnAboveMax":"выше объявленной верхней границы","peerWarnOptional":"необязательный участник","presetApplied":"Применено — перезапустите, чтобы применить","presetApply":"Применить","presetBundleCount":"{0} наборов","presetDelete":"Удалить","presetDeleted":"Пресет удалён","presetDisable":"отключить плагины {0}","presetEmpty":"Нет сохранённых пресетов","presetEnable":"включить плагины {0}","presetFail":"Не удалось выполнить предустановленную операцию:","presetHint":"Сохраните текущий порядок пакетов и список отключенных как пресет и переключайтесь в любое время; применение запускает проверку перед началом пробного периода и сначала создает снимок.","presetListFail":"Не удалось загрузить пресеты:","presetName":"Название пресета","presetNameEmpty":"Введите имя предустановки","presetNoop":"нет изменений","presetPreview":"Предпросмотр","presetPreviewFail":"Не удалось выполнить предварительный просмотр:","presetPreviewTitle":"Применение этого пресета приведёт к:","presetReorder":"переупорядочить {0} наборы","presetSave":"Сохранить текущее состояние","presetSaved":"Пресет сохранён","presetSaving":"Сохранение…","presetSection":"Пресеты плагинов","reconciledNote":"Удалено, но pnpm сообщил об ошибке при завершении (обычно это заблокированный файл). Профиль уже согласован — повторная попытка не требуется.","repoLink":"Посмотреть репозиторий на GitHub","restartHintSupervised":"Этот процесс является собственным сервисным процессом {0}, поэтому перезапуски относятся к нему — перезапуск отсюда завершит процесс передачи вместе с cgroup, и сервис не восстановится. Используйте systemctl restart <ваш юнит>. Если ваш юнит может пережить самостоятельный перезапуск (KillMode=process), включите параметр \"Разрешить перезапуск\" в настройках этого плагина.","restore":"Восстановить","restoreBootError":"Не удается загрузиться после восстановления:","restoreContinue":"Продолжить обновление","restoreFail":"Не удалось восстановить","restoreHint":"Это удалит локальную версию, переустановит версию из каталога и сохранит проверку обновлений. Это действие нельзя отменить — подтвердите ещё раз.","restoreNoCatalog":"Этот плагин отсутствует в курируемом каталоге, поэтому его нельзя восстановить. Удалите локальную копию или продолжайте разрабатывать её локально.","restoreUnportable":"указывает на абсолютный путь с другой машины, который здесь не существует — перенаправьте его локально или переустановите плагин","rollbackNow":"Откатить","rollingBack":"Откат изменений…","setCardDesc":"Версия маркета, обновление и удаление.","setChannel":"Канал обновлений","setChannelBeta":"Бета","setChannelBetaHint":"Ранний доступ к непроверенным версиям. Влияет только на рынок плагинов.","setChannelDev":"Разработка","setChannelDevHint":"Непроверенные сборки из ветки разработки. Не рекомендуются для общего использования.","setChannelStable":"Стабильный","setChannelStableHint":"Только выпущенные версии.","setChannelSwitch":"Переключиться на","setChannelSwitchHint":"Эта версия ниже установленной.","setRegion":"Скачать регион","setRegionAuto":"Выбрано на основе проверки сети. Можете изменить в любое время.","setRegionChina":"Китай, материковая часть","setRegionChinaHint":"Быстрее в материковом Китае. Изменяет маршрут загрузки, не источник.","setRegionGlobal":"Глобальный","setRegionGlobalHint":"Загрузки напрямую из npm и GitHub.","setSelfCancel":"Отмена","setSelfConfirm":"Удалить маркет плагинов? Поставить его заново можно будет только из командной строки.","setSelfFailed":"Операция не удалась","setSelfPurge":"Заодно стереть данные маркета","setSelfPurgeOff":"Данные маркета сохранятся. Учтите: плагины, которые он выключил, останутся выключенными, а интерфейса, чтобы вернуть их, после удаления не будет.","setSelfPurgeOn":"Будут удалены: список выключенных плагинов, свои группы и строки выключения, которые маркет записал в патч профиля, — выключенные им плагины снова заработают. Паролей и токенов это не касается: маркет их на диск не пишет.","setSelfRemove":"Удалить маркет плагинов","setSelfRemoveConfirm":"Удалить","setSelfRemoveHint":"Удаляет маркет из этого профиля. Остальные плагины не трогаются.","setSelfRemoved":"Удалён","setSelfRemovedHint":"Перезапустите DeepSeek Harness, чтобы завершить.","setSelfRestartAfter":"Перезапустить DeepSeek Harness сразу после удаления","setSelfRestartingHint":"Перезапуск DeepSeek Harness…","setSelfUpToDate":"Обновлений нет","setSelfUpToDateHint":"Актуально, обновление не требуется","setSelfUpdate":"Обновить","setSelfUpdateHint":"Обновление скачает новую версию; она заработает после перезапуска.","setSelfUpdateReady":"Доступна новая версия:","setSelfUpdatedHint":"Скачано. Перезапустите DeepSeek Harness, чтобы обновление вступило в силу: страница обновляется сразу, серверная половина — нет.","setSelfWorking":"Удаление…","shadowNameBanner":"Эта операция оставила одно имя плагина, определенное в двух слоях; после перезапуска загрузится только один:","snapCreate":"Создать снимок","snapCreateFail":"Не удалось создать снимок:","snapCreated":"Снимок создан","snapCreating":"Создание…","snapDelete":"Удалить","snapDeleteConfirm":"Подтвердить удаление","snapDeleteConfirmText":"Этот снимок нельзя будет восстановить после удаления.","snapDeleteFail":"Не удалось удалить снимок:","snapDeleted":"Снимок удалён","snapDeleting":"Удаление…","snapEmpty":"Снимков пока нет","snapFiles":"файлы","snapHint":"Снимки создаются автоматически перед применением изменений; вы также можете создать их вручную и откатиться в любой момент.","snapListFail":"Не удалось загрузить снимки:","snapRestore":"Восстановить","snapRestoreConfirm":"Подтвердите восстановление","snapRestoreConfirmText":"Восстановление перезаписывает текущий package.json профиля и конфигурацию из снимка; это действие нельзя отменить (создайте новый снимок, если не уверены).","snapRestoreFail":"Не удалось восстановить:","snapRestored":"Восстановлено — перезапустите для применения","snapRestoring":"Восстановление…","snapSection":"Снимки & Откат","sortDownloads":"npm загрузки (30д)","submitPlugin":"Хотите, чтобы ваш плагин был добавлен в список?","switchOnLabel":"Включено","tabAdvanced":"Дополнительно","themeExitFullscreen":"Выйти из полноэкранного режима","themeFullscreen":"Просмотр в полноэкранном режиме","themePreview":"Предпросмотр","themePreviewCount":"{0} предпросмотры","themePreviewLoading":"Поиск предварительного просмотра…","themePreviewMissing":"Предпросмотр недоступен","themeResultCount":"{0} темы","toastToggledOff":"теперь выключено — перестало работать сразу","toastToggledOn":"включён","versionHint":"Версия маркета плагинов — указывайте её при обращении"}}
|