@goodandready/dsh-russian-lang 0.3.19 → 0.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +4 -4
- package/lib/index.js +17 -8
- package/lib/locales/core.json +1 -1
- package/package.json +4 -4
package/lib/client.js
CHANGED
|
@@ -1132,7 +1132,7 @@ setTimeout(() => { copyKeyBtn.textContent = '📋' }, 1500)
|
|
|
1132
1132
|
}}
|
|
1133
1133
|
const copyReportBtn = modal.querySelector('.rl-copy-report-btn')
|
|
1134
1134
|
if (copyReportBtn) {copyReportBtn.onclick = () => {const snippet = typeof generateBugReportSnippet === 'function'
|
|
1135
|
-
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.
|
|
1135
|
+
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.21' })
|
|
1136
1136
|
: ('### Репорт: ' + (k || rawText) + '\n- Исходный: ' + (origText || rawText) + '\n- Перевод: ' + textarea.value.trim())
|
|
1137
1137
|
try { navigator.clipboard.writeText(snippet) } catch (err) { void err; }
|
|
1138
1138
|
copyReportBtn.textContent = '✓ Скопировано'
|
|
@@ -1420,7 +1420,7 @@ const [snap, setSnap] = React.useState(() => (scope && scope.getSnapshot ? scope
|
|
|
1420
1420
|
const [ruActive, setRuActive] = React.useState(() => { try { return runtime.getLocale().active === 'ru' } catch (e) { return false } })
|
|
1421
1421
|
const [typo, setTypoState] = React.useState(() =>
|
|
1422
1422
|
(snap.value && snap.value.typography) || {})
|
|
1423
|
-
const [upStatus, setUpStatus] = React.useState({currentVersion: '0.3.
|
|
1423
|
+
const [upStatus, setUpStatus] = React.useState({currentVersion: '0.3.21',latestVersion: undefined,updateAvailable: false
|
|
1424
1424
|
})
|
|
1425
1425
|
const [upLoading, setUpLoading] = React.useState(false)
|
|
1426
1426
|
const [upMsg, setUpMsg] = React.useState(null)
|
|
@@ -1513,7 +1513,7 @@ scope.set('agentPromptPreset', val)
|
|
|
1513
1513
|
} catch (err) { console.warn('dsh-russian-lang: set agentPromptPreset failed', err) }}},React.createElement('option', { value: 'technical_expert' }, t('presetExpert')),React.createElement('option', { value: 'tech_writer' }, t('presetWriter')),React.createElement('option', { value: 'concise' }, t('presetConcise')),React.createElement('option', { value: 'code_reviewer' }, t('presetReviewer')),React.createElement('option', { value: 'architect' }, t('presetArchitect')),React.createElement('option', { value: 'tutor' }, t('presetTutor')))),presetInfo ? React.createElement('div', { className: 'rl-preview-box' },React.createElement('div', { style: { fontWeight: 600, marginBottom: '4px', color: 'var(--dsw-alias-label-primary)' } }, '💬 ' + presetInfo.label + ':'),presetInfo.text
|
|
1514
1514
|
) : null
|
|
1515
1515
|
) : null
|
|
1516
|
-
),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secUpdater')),React.createElement('span', { className: 'rl-badge ' + (upStatus.updateAvailable ? 'rl-badge-warn' : 'rl-badge-ok') },upStatus.updateAvailable ? t('badgeUpdateAvailable') : t('badgeUpToDate'))),React.createElement('div', { className: 'rl-section-desc' }, t('secUpdaterDesc')),React.createElement('div', { className: 'rl-item-card' },React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap', gap: '8px' } },React.createElement('div', null,React.createElement('div', { style: { fontWeight: 600, color: 'var(--dsw-alias-label-primary)' } },t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.
|
|
1516
|
+
),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secUpdater')),React.createElement('span', { className: 'rl-badge ' + (upStatus.updateAvailable ? 'rl-badge-warn' : 'rl-badge-ok') },upStatus.updateAvailable ? t('badgeUpdateAvailable') : t('badgeUpToDate'))),React.createElement('div', { className: 'rl-section-desc' }, t('secUpdaterDesc')),React.createElement('div', { className: 'rl-item-card' },React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap', gap: '8px' } },React.createElement('div', null,React.createElement('div', { style: { fontWeight: 600, color: 'var(--dsw-alias-label-primary)' } },t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.21')),upStatus.updateAvailable
|
|
1517
1517
|
? React.createElement('div', { style: { color: 'var(--dsw-alias-state-warning-primary)', marginTop: '2px', fontWeight: 500 } },t('updaterLatest').replace('{version}', upStatus.latestVersion || ''))
|
|
1518
1518
|
: React.createElement('div', { style: { color: 'var(--dsw-alias-label-secondary)', marginTop: '2px' } },t('updaterUpToDate'))),upStatus.updateAvailable
|
|
1519
1519
|
? React.createElement('button', {type: 'button',className: 'rl-btn rl-btn-primary',disabled: upLoading,onClick: triggerUpdate,}, upLoading ? t('updaterUpdating') : t('updaterBtn').replace('{version}', upStatus.latestVersion || ''))
|
|
@@ -1551,7 +1551,7 @@ if (!input) return
|
|
|
1551
1551
|
try {const parsed = JSON.parse(input)
|
|
1552
1552
|
if (parsed && typeof parsed === 'object') {const merged = Object.assign({}, overrides, parsed)
|
|
1553
1553
|
scope.set('overrides', merged)
|
|
1554
|
-
}} catch (err) { alert(t('overridesImportError') + (err && err.message || err)) }}}, t('importJsonBtn')))),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secSupport')),React.createElement('span', { className: 'rl-badge rl-badge-ok' }, '🟢 100.0%')),React.createElement('div', { className: 'rl-section-desc' }, t('secSupportDesc')),React.createElement('div', { className: 'rl-grid-3' },React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '113'),React.createElement('div', { className: 'rl-stat-label' }, t('statNamespaces'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '1 225'),React.createElement('div', { className: 'rl-stat-label' }, t('statCoreKeys'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '5 924'),React.createElement('div', { className: 'rl-stat-label' }, t('statPluginKeys')))),React.createElement('div', { className: 'rl-actions-row' },React.createElement('a', {href: makeIssueUrl({}, '0.3.
|
|
1554
|
+
}} catch (err) { alert(t('overridesImportError') + (err && err.message || err)) }}}, t('importJsonBtn')))),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secSupport')),React.createElement('span', { className: 'rl-badge rl-badge-ok' }, '🟢 100.0%')),React.createElement('div', { className: 'rl-section-desc' }, t('secSupportDesc')),React.createElement('div', { className: 'rl-grid-3' },React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '113'),React.createElement('div', { className: 'rl-stat-label' }, t('statNamespaces'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '1 225'),React.createElement('div', { className: 'rl-stat-label' }, t('statCoreKeys'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '5 924'),React.createElement('div', { className: 'rl-stat-label' }, t('statPluginKeys')))),React.createElement('div', { className: 'rl-actions-row' },React.createElement('a', {href: makeIssueUrl({}, '0.3.21'),target: '_blank',rel: 'noopener noreferrer',className: 'rl-btn rl-btn-primary'
|
|
1555
1555
|
}, '💬 ' + t('reportIssue')),React.createElement('div', { className: 'rl-hint-text', style: { flex: 1 } },t('exportMdHint')))))))
|
|
1556
1556
|
}
|
|
1557
1557
|
const RL_CSS = ['.rl-modal-mask{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--dsw-alias-bg-mask);display:flex;align-items:center;justify-content:center;z-index:99999;backdrop-filter:blur(2px)}.rl-modal-box{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;width:calc(100vw - 40px);max-width:500px;box-shadow:var(--dsw-alias-shadow-l3);display:flex;flex-direction:column;gap:12px;padding:18px}.rl-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;list-style:none;overflow:hidden;transition:border-color .15s ease}.rl-head{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;display:flex;align-items:center;gap:12px;padding:14px 18px}.rl-head:hover{background:var(--dsw-alias-bg-layer-2)}.rl-head-main{flex:1;display:flex;flex-direction:column;gap:4px}.rl-title{color:var(--dsw-alias-label-primary);font-size:16px;font-weight:600;line-height:1.4;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.rl-sub{color:var(--dsw-alias-label-secondary);font-size:13px}.rl-chev{margin-left:auto;flex:none;color:var(--dsw-alias-label-tertiary);display:inline-flex;transition:transform .16s}.rl-chev-open{transform:rotate(180deg)}.rl-body{border-top:1px solid var(--dsw-alias-border-l2);padding:18px}.rl-page{display:flex;flex-direction:column;gap:16px;max-width:960px}.rl-section-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.rl-section-title{font-size:14px;font-weight:600;color:var(--dsw-alias-label-primary);display:flex;align-items:center;justify-content:space-between;gap:8px}.rl-section-desc{font-size:12px;color:var(--dsw-alias-label-secondary);margin-top:-4px;line-height:1.4}.rl-grid-2{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:10px}.rl-grid-3{display:grid;grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:10px}.rl-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--dsw-alias-border-l2);display:inline-flex;align-items:center;gap:4px;font-weight:500}.rl-badge-ok{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent)}.rl-badge-warn{border-color:var(--dsw-alias-state-warning-primary);color:var(--dsw-alias-state-warning-primary);background:color-mix(in srgb, var(--dsw-alias-state-warning-primary) 8%, transparent)}.rl-badge-dim{border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-3)}.rl-item-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.rl-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rl-item-label{font-size:13px;font-weight:500;color:var(--dsw-alias-label-primary);display:flex;align-items:center;gap:8px;cursor:pointer}.rl-item-desc{font-size:11px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-stat-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.rl-stat-val{font-size:16px;font-weight:700;color:var(--dsw-alias-label-primary)}.rl-stat-label{font-size:11px;color:var(--dsw-alias-label-secondary);letter-spacing:0.3px}.rl-hotkey-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--dsw-alias-label-secondary);line-height:1.4;display:flex;align-items:flex-start;gap:10px}.rl-hotkey-tag{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);white-space:nowrap}.rl-preview-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-btn{appearance:none;font:inherit;cursor:pointer;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:6px 12px;font-size:12px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease;text-decoration:none}.rl-btn:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1);border-color:var(--dsw-alias-label-secondary)}.rl-btn-primary{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border-color:transparent}.rl-btn-primary:hover:not(:disabled){opacity:0.9}.rl-select{height:32px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);border-radius:6px;padding:0 8px;font-size:12px;outline:none;width:100%;max-width:380px}.rl-select:focus{border-color:var(--dsw-alias-state-brand-primary)}.rl-check{width:16px;height:16px;accent-color:var(--dsw-alias-label-primary);cursor:pointer;flex-shrink:0}.rl-hint-text{font-size:11px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:4px}.rl-lang-chip{appearance:none;cursor:pointer;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-secondary);font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;display:inline-flex;align-items:center;transition:all .15s;margin:0 4px}.rl-lang-chip:hover{border-color:var(--dsw-alias-label-primary);color:var(--dsw-alias-label-primary)}.rl-lang-chip-active{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.rl-action-btn{appearance:none;background:0 0;border:1px solid transparent;border-radius:4px;color:var(--dsw-alias-label-secondary);cursor:pointer;font-size:11px;padding:2px 5px;display:inline-flex;align-items:center;transition:all .15s}.rl-action-btn:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3)}.rl-action-btn-active{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-border-l2)}.rl-turn-translation{margin:8px 0;padding:10px 12px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:8px;font-size:13px;line-height:1.5}.rl-trans-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;border-bottom:1px solid var(--dsw-alias-border-l2);padding-bottom:4px}.rl-trans-title{font-size:11px;font-weight:600;color:var(--dsw-alias-label-secondary);text-transform:uppercase;letter-spacing:0.5px}.rl-trans-tools{display:flex;gap:4px}.rl-trans-btn{appearance:none;background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;padding:2px 7px;border-radius:4px;font-size:11px}.rl-trans-btn:hover{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.rl-trans-body{color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;user-select:text}.rl-export-md-btn{appearance:none;border:1px solid var(--dsw-alias-border-l2);height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;background:transparent;border-radius:18px;justify-content:center;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex;white-space:nowrap;margin-left:6px;transition:all .15s ease}.rl-export-md-btn:hover{background:var(--dsw-alias-interactive-bg-hover)}.rl-inspector-hover{position:absolute;pointer-events:none;border:2px solid var(--dsw-alias-state-brand-primary);border-radius:4px;background:color-mix(in srgb,var(--dsw-alias-state-brand-primary) 12%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--dsw-alias-state-brand-primary) 30%,transparent);z-index:99998;transition:all .06s ease;display:none}.rl-inspector-badge{position:absolute;bottom:calc(100% + 4px);left:0;background:var(--dsw-alias-state-brand-primary);color:var(--dsw-alias-label-inverse);font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;box-shadow:var(--dsw-alias-shadow-l2);pointer-events:none}.rl-inspector-pill{position:fixed;bottom:18px;right:18px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);border-radius:20px;padding:6px 12px;box-shadow:var(--dsw-alias-shadow-l3);display:none;align-items:center;gap:8px;font-size:12px;z-index:99990;user-select:none}.rl-inspector-pill-active{border-color:var(--dsw-alias-state-brand-primary);box-shadow:0 0 12px color-mix(in srgb,var(--dsw-alias-state-brand-primary) 35%,transparent)}'
|
package/lib/index.js
CHANGED
|
@@ -48,20 +48,29 @@ const NS = 'russian-lang'
|
|
|
48
48
|
// бросает TypeError на уровне модуля — поэтому только feature-detect.
|
|
49
49
|
const vol = (s) => (typeof s?.volatile === 'function' ? s.volatile() : s)
|
|
50
50
|
|
|
51
|
+
// Unwrap Volatile boxes before any caller reads a value. A volatile field holds a box
|
|
52
|
+
// rather than its value, and the Loader mutates those boxes in place.
|
|
53
|
+
export function plainConfig(value) {
|
|
54
|
+
if (value === null || typeof value !== 'object') return value
|
|
55
|
+
if (Array.isArray(value)) return value.map(plainConfig)
|
|
56
|
+
if (typeof value.get === 'function') return plainConfig(value.get())
|
|
57
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, plainConfig(v)]))
|
|
58
|
+
}
|
|
59
|
+
|
|
51
60
|
export const Config = z.object({
|
|
52
|
-
enabled: vol(z.boolean().required(false)),
|
|
53
|
-
overrides: vol(z.dict(z.string()).required(false)),
|
|
61
|
+
enabled: vol(z.boolean().required(false)).volatile(),
|
|
62
|
+
overrides: vol(z.dict(z.string()).required(false)).volatile(),
|
|
54
63
|
typography: vol(z.object({
|
|
55
64
|
enabled: z.boolean().required(false),
|
|
56
65
|
yo: z.boolean().required(false),
|
|
57
66
|
liveInput: z.boolean().required(false)
|
|
58
67
|
}).required(false)),
|
|
59
|
-
agentPrompt: vol(z.boolean().required(false)),
|
|
60
|
-
agentPromptPreset: vol(z.string().required(false)),
|
|
61
|
-
slashAliases: vol(z.boolean().required(false)),
|
|
62
|
-
quickSwitch: vol(z.boolean().required(false)),
|
|
63
|
-
translateEngine: vol(z.string().required(false)),
|
|
64
|
-
localApiUrl: vol(z.string().required(false))
|
|
68
|
+
agentPrompt: vol(z.boolean().required(false)).volatile(),
|
|
69
|
+
agentPromptPreset: vol(z.string().required(false)).volatile(),
|
|
70
|
+
slashAliases: vol(z.boolean().required(false)).volatile(),
|
|
71
|
+
quickSwitch: vol(z.boolean().required(false)).volatile(),
|
|
72
|
+
translateEngine: vol(z.string().required(false)).volatile(),
|
|
73
|
+
localApiUrl: vol(z.string().required(false)).volatile()
|
|
65
74
|
})
|
|
66
75
|
|
|
67
76
|
// Историческое имя схемы; сама схема — Config выше.
|
package/lib/locales/core.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"agent-team":{"blocked":"Заблокировано зависимостями","blockedBy":"Заблокировано","current":"Текущий чат","empty":"Общих задач пока нет","failure":"Некорректная сохранённая запись команды: {message}","loading":"Загрузка команды…","memberStatus.failed":"Ошибка","memberStatus.inactive":"Неактивен","memberStatus.provisioning":"Подготовка","memberStatus.running":"Выполняется","model":"Модель","open":"Открыть чат участника команды","owner":"Исполнитель","ready":"Готово к выполнению","roster":"Участники","status.completed":"Завершено","status.in_progress":"В работе","status.pending":"В очереди","task.collapse":"Показать меньше","task.expand":"Показать больше","tasks":"Общие задачи","trigger":"Команда агентов","unavailable":"Команда недоступна","unowned":"Без исполнителя","writeScopes":"Области записи"},"approval":{"allowOnce":"Разрешить один раз","detail.aria":"Сведения о подтверждении","escalation":"Инструмент {toolName} запрашивает привилегированное выполнение","reject":"Отклонить","waiting":"Ожидание подтверждения"},"chat":{"chat.deepDiving":"Глубокий анализ…","chat.deepDivingFor":"Глубокий анализ: {duration}...","chat.loadError":"Не удалось загрузить историю: {message} ({code})","chat.loadOlder":"Загрузить более ранние","chat.loadingHistory":"Загрузка истории…","chat.toBottom":"Вниз к началу","chat.turnNavigation.jump":"Перейти к шагу {turn}","chat.turnNavigation.jumpLoad":"Загрузить и перейти к шагу {turn}","chat.turnNavigation.label":"Навигация по шагам диалога","chat.turnNavigation.turn":"Шаг {turn}","clock.md":"{m}/{d}","clock.ymd":"{y}-{m}-{d}","command.done":"Завершено","command.failed":"Команда завершилась с ошибкой","command.running":"Выполняется…","command.title":"Команда","duration.compactMinutes":"{minutes}м {seconds}с","duration.compactSeconds":"{seconds}с","duration.hours":"{hours} ч {minutes} мин {seconds} с","duration.milliseconds":"{milliseconds}мс","duration.minutes":"{minutes}м {seconds}с","duration.seconds":"{seconds}с","fileOpen.title":"Не удалось открыть файл","fileOpen.unknown":"Не удалось открыть этот файл","image.close":"Закрыть просмотр изображения","image.dialog":"Просмотр изображения","image.failed":"Предпросмотр изображения недоступен","image.loading":"Загрузка изображения…","image.open":"Открыть исходное изображение","json.truncated":"… обрезано, всего {total} символов","message.accountStopped":"Задача остановлена","message.branch":"Ответвить в новый диалог","message.branchUnavailable":"Доступно только для последнего сообщения завершённого шага","message.compaction":"Контекст сжат","message.compaction.commandTitle":"сжатие","message.compaction.completed":"Сжато {items} элементов истории (~{tokens} токенов)","message.compaction.expand":"Посмотреть сводку сжатия","message.compaction.running":"Сжатие контекста…","message.compaction.unavailable":"Сводка сжатия недоступна","message.context.catalog.more":"… ещё {count}","message.context.catalog.replaced":"Заменяющий каталог","message.context.instructions.added":"добавлено","message.context.instructions.loaded":"загружено","message.context.instructions.removed":"удалено","message.context.instructions.updated":"обновлено","message.context.recall.counts":"сохранено {retained} • пропущено {omitted}","message.context.recall.truncated":"обрезано","message.context.relay.from":"Из сессии {session}","message.context.snapshot.supersedes":"Заменяет более ранние снимки","message.contextInjection":"Внедрение контекста","message.contextRecall":"Вспоминание сессии","message.extraBlock":"Дополнительный блок содержимого","message.failure.accountSignInRequired":"Войдите в DeepSeek и убедитесь, что целевой сервис поддерживает аутентификацию по аккаунту.","message.failure.accountSignedOut":"Остановлено, так как вы вышли из аккаунта DeepSeek.","message.failure.auth":"Недействительный ключ API","message.failure.quota":"Квота запросов исчерпана.","message.maxTokens":"Достигнут лимит токенов вывода","message.maxTokens.hint":"Ответ был прерван; предыдущий вывод сохранён в диалоге. Отправьте «продолжить», чтобы модель возобновила генерацию.","message.referenceSeparator":", ","message.referenceSummary":"Упомянутая сессия • {labels}","message.retry.active":"Повторный запрос к модели","message.retry.cancelled":"Повтор запроса к модели отменён","message.retry.delay":"Задержка перед повтором: ","message.retry.failure":"Причина сбоя: ","message.retry.scheduled":"Ожидание повторного запроса к модели","message.retry.started":"Повторный запрос к модели выполнен","message.retry.status":"{label} ({retry}/{maximum}) • {seconds}с","message.stepProcess.code":"Выполнение кода","message.stepProcess.comma":", ","message.stepProcess.commands":"Выполнение команд","message.stepProcess.done.code":"Код выполнен","message.stepProcess.done.commands":"Команды выполнены","message.stepProcess.done.edit":"Файлы отредактированы","message.stepProcess.done.plan":"План обновлён","message.stepProcess.done.questions":"Заданы вопросы","message.stepProcess.done.read":"Файлы прочитаны","message.stepProcess.done.readImage":"Изображения прочитаны","message.stepProcess.done.search":"Поиск по коду завершён","message.stepProcess.done.subagents":"Координация субагентов завершена","message.stepProcess.done.thinking":"Анализ завершён","message.stepProcess.done.tools":"Инструменты вызваны","message.stepProcess.done.webFetch":"Веб-страницы просмотрены","message.stepProcess.done.webSearch":"Поиск в сети завершён","message.stepProcess.done.write":"Файлы записаны","message.stepProcess.edit":"Редактирование файлов","message.stepProcess.joinTwo":"{first} и {second}","message.stepProcess.more":"{title} и др.","message.stepProcess.plan":"Обновление плана","message.stepProcess.prepare.code":"Подготовка к выполнению кода","message.stepProcess.prepare.commands":"Подготовка к выполнению команд","message.stepProcess.prepare.edit":"Подготовка к редактированию файлов","message.stepProcess.prepare.plan":"Подготовка к обновлению плана","message.stepProcess.prepare.questions":"Подготовка вопросов","message.stepProcess.prepare.read":"Подготовка к чтению файлов","message.stepProcess.prepare.readImage":"Подготовка к чтению изображений","message.stepProcess.prepare.search":"Подготовка к поиску в коде","message.stepProcess.prepare.subagents":"Подготовка к координации субагентов","message.stepProcess.prepare.tools":"Подготовка к вызову инструментов","message.stepProcess.prepare.webFetch":"Подготовка к загрузке веб-страниц","message.stepProcess.prepare.webSearch":"Подготовка к поиску в интернете","message.stepProcess.prepare.write":"Подготовка к записи файлов","message.stepProcess.questions":"Ожидание ваших действий","message.stepProcess.read":"Чтение файлов","message.stepProcess.readImage":"Чтение изображений","message.stepProcess.search":"Поиск по коду","message.stepProcess.sharedPrefix":"","message.stepProcess.subagents":"Координация субагентов","message.stepProcess.thinking":"Анализ запроса","message.stepProcess.tools":"Вызов инструментов","message.stepProcess.webFetch":"Загрузка веб-страниц","message.stepProcess.webSearch":"Поиск в сети","message.stepProcess.write":"Запись файлов","message.stopped":"Остановлено","message.systemPrompt":"Системный промпт","message.systemPromptUpdate":"Обновление системного промпта","message.think":"Рассуждения","message.tokensPerSecond":"{tps} ток./с","message.toolAdded":"Инструмент добавлен: {name}","message.toolRemoved":"Инструмент удален: {name}","message.toolsAdded":"Добавлено: {names}","message.toolsAddedCount":"Добавлено: {count}","message.toolsChanged":"Добавлено: {added}, удалено: {removed}","message.toolsRemoved":"Удалено: {names}","message.toolsRemovedCount":"Удалено: {count}","message.toolsUpdated":"Инструменты обновлены","message.trigger.agent":"Получено сообщение задачи","message.trigger.explanation":"Это уведомление вызвало данный ответ.","message.trigger.github":"Получено событие GitHub","message.trigger.goal":"Продолжение цели","message.trigger.job":"Фоновая задача обновлена","message.trigger.plugin":"Статус плагина обновлён","message.trigger.request":"Запрошено выполнение","message.trigger.schedule":"Запланированная задача","message.trigger.subagent":"Статус подзадачи обновлён","message.trigger.team":"Получено командное сообщение","message.trigger.webhook":"Получено внешнее событие","message.turnError":"Этот шаг завершился с ошибкой","message.turnProcess.failed":"Сбой","message.turnProcess.messages.one":"{count} сообщение","message.turnProcess.messages.other":"{count} сообщений","message.turnProcess.separator":" • ","message.turnProcess.subagents.one":"{count} субагент","message.turnProcess.subagents.other":"{count} субагентов","message.turnProcess.thoughtForAWhile":"Рассуждал некоторое время","message.turnProcess.took":"Заняло {duration}","message.turnProcess.toolCalls.one":"{count} вызов инструмента","message.turnProcess.toolCalls.other":"{count} вызовов инструментов","message.turnProcess.worked":"Выполнено","message.turnUsage.cacheHit":"Попадание в кэш","message.turnUsage.cacheRead":"Вход из кэша","message.turnUsage.cacheWrite":"Запись в кэш","message.turnUsage.consumed":"Использовано {total}","message.turnUsage.count":"{count} ток.","message.turnUsage.input":"Вход без кэша","message.turnUsage.model":"Провайдер / модель","message.turnUsage.output":"Вывод","message.turnUsage.reasoning":" ({tokens} рассуждения)","message.turnUsage.title":"Расход токенов на шаг","message.unknownBlock":"Неизвестный блок содержимого","message.unknownSurface":"Неизвестное событие интерфейса: {type}","number.groupSeparator":" ","row.failed":"Ошибка","row.running":"Выполняется","settings.links.description":"Выберите, где открывать ссылки HTTP(S) из чата","settings.links.newTab":"Новая вкладка браузера","settings.links.sidebar":"Встроенный браузер","settings.links.title":"Открывать ссылки из чата в","settings.performance.compact":"Компактный","settings.performance.description":"Выберите объём отображаемой информации о производительности и использовании","settings.performance.detailed":"Подробный","settings.performance.title":"Производительность и использование","settings.transcript.compact":"Компактный","settings.transcript.description":"Сколько подробностей работы агента показывать: рассуждения и вызовы инструментов","settings.transcript.detailed":"Подробный","settings.transcript.standard":"Стандартный","settings.transcript.title":"Детали работы","settings.transcript.verbose":"Полностью развёрнутый","stats.cacheHit":"Кэш {percent}%","stats.counts":"{turns} шагов • {steps} действий","stats.dialog.llmTime":"Время LLM","stats.dialog.speed":"Токенов в секунду (TPS)","stats.dialog.title":"Статистика сессии","stats.dialog.toolTime":"Время инструментов","stats.dialog.ttft":"Среднее время до первого токена (TTFT)","stats.dialog.usageTitle":"Использование токенов","view.chat":"Чат"},"command":{"description.compact":"Сжать раннюю историю диалога","description.export":"Скачать журнал сессии в формате ZIP-архива","description.feedback":"Оставить отзыв о текущей сессии","description.goal":"Установить или просмотреть цель для длительной задачи","description.permission":"Переключить пресет разрешений (режим песочницы и политики подтверждений)","description.plan":"Войти или выйти из режима планирования","label.compact":"Сжатие","label.export":"Экспорт","label.feedback":"Обратная связь","label.goal":"Цель","label.permission":"Режим доступа","label.plan":"План","listbox.aria":"Совпадения /{command}","notice.attachmentsUnsupported":"/{command} не принимает вложения; сначала удалите их","overlay.aria":"Параметры /{command}","search.aria":"Фильтр параметров","search.placeholder":"Поиск…","section.add":"Добавить","section.commands":"Команды","status.applying":"Применение…","status.empty":"Нет параметров","status.loading":"Загрузка параметров…","token.compact":"сжатие","token.export":"экспорт","token.feedback":"отзыв","token.goal":"цель","token.permission":"доступ","token.plan":"план"},"common":{"back":"Назад","brand.localBuild":"Локальная сборка DSH","cancel":"Отмена","close":"Закрыть","codeBlock.title":"Блок кода","codeBlock.unwrap":"Не переносить строки","codeBlock.wrap":"Переносить строки","collapse":"Свернуть","copied":"Скопировано","copy":"Копировать","copy.compactJson":"Копировать компактный JSON","copy.failed":"Не удалось скопировать","copy.json":"Копировать JSON","copy.optionsHint":"{action}; правый клик для вариантов копирования","copy.path":"Копировать путь к свойству","copy.prettyJson":"Копировать форматированный JSON","copy.value":"Копировать значение","delete":"Удалить","edit":"Изменить","expand":"Развернуть","json.label":"JSON","load.failed":"Не удалось загрузить","loading":"Загрузка…","markdown.footnotes":"Сноски","markdown.truncatedCharacters":"… обрезано на {total} символах","more":"Ещё","next":"Дальше","none":"Нет","number.million":"{value}M","number.thousand":"{value}K","ok":"ОК","previous":"Назад","retry":"Повторить","save":"Сохранить","search":"Поиск","skip":"Пропустить","submit":"Отправить","submitting":"Отправка…","truncated":"Обрезано","unknown":"Неизвестно","workspace.defaultName":"Рабочее пространство по умолчанию"},"conversation":{"ask.answered":"{answered}/{total} отвечено","ask.cancelled":"отменено","ask.cancelledDetail":"Этот набор вопросов был отменён до отправки ответов.","ask.interrupted":"прервано","ask.interruptedDetail":"Этот набор вопросов был прерван до отправки ответов.","ask.rowTitle":"Вопрос","ask.skipped":"Без ответа","ask.waiting":"ожидание","attachment.directoryDesktopOnly":"Папки можно добавлять только в приложении для рабочего стола; в браузере добавляйте отдельные файлы","attachment.dropBlocked":"В настоящий момент добавление файлов и изображений заблокировано","attachment.dropDesc":"Лимит изображений: до {count} шт., до {size} каждое","attachment.dropTitle":"Перетащите файлы или изображения сюда для добавления","attachment.pathUnavailable":"Не удалось получить путь к папке; перетащите её снова","attachment.pathUnsupported":"Путь содержит символы, которые нельзя использовать в ссылке; переименуйте и попробуйте снова","attachment.pending":"Ожидающие вложения","attachment.scrollLeft":"Прокрутить вложения влево","attachment.scrollRight":"Прокрутить вложения вправо","bash.failed":"Ошибка","bash.running":"Выполняется","bash.stopped":"Остановлено","command.attachmentsUnsupported":"/{command} не принимает вложения; сначала удалите их","context.aria":"{percent} контекста занято","context.messages":"Сообщения","context.system":"Системный промпт","context.tools":"Инструменты","context.used":"контекста занято","detail.agent.reply":"Ответ агента","detail.agents.count":"{count} агентов","detail.days":"{count} д","detail.empty":"Нет результатов","detail.event.neighbors":"Соседние события","detail.field.agent":"ID агента","detail.field.agents":"Запущенные агенты","detail.field.availability":"Доступность","detail.field.bestMatch":"Лучшее совпадение","detail.field.callId":"ID вызова","detail.field.content":"Содержимое","detail.field.context":"Контекст","detail.field.currentPackage":"Текущий пакет","detail.field.data":"Данные","detail.field.dependencies":"Зависимости","detail.field.depth":"Глубина","detail.field.diagnostics":"Диагностика","detail.field.exitCode":"Код завершения","detail.field.id":"ID","detail.field.inputSchema":"Входная схема","detail.field.job":"ID задачи","detail.field.latestRun":"Последний запуск","detail.field.message":"Сообщение","detail.field.messageId":"ID сообщения","detail.field.methods":"Методы","detail.field.model":"Модель","detail.field.nextPackage":"Следующий пакет","detail.field.outputSchema":"Выходная схема","detail.field.owner":"Владелец","detail.field.packages":"Пакеты","detail.field.parent":"Родитель","detail.field.pid":"ID процесса (PID)","detail.field.platform":"Платформа","detail.field.previousStatus":"Предыдущий статус","detail.field.processGroup":"Группа процессов","detail.field.props":"Свойства (Props)","detail.field.provider":"Провайдер","detail.field.ready":"Готов","detail.field.registrations":"Регистрации","detail.field.result":"Результат","detail.field.revision":"Ревизия","detail.field.role":"Роль","detail.field.root":"Корень","detail.field.seq":"Порядковый номер события","detail.field.signal":"Сигнал","detail.field.source":"Источник","detail.field.step":"Шаг","detail.field.surface":"Статус записи","detail.field.target":"Целевое событие","detail.field.task":"Задача","detail.field.time":"Время","detail.field.turn":"Ход","detail.field.type":"Тип","detail.field.warnings":"Предупреждения","detail.field.writeScopes":"Области записи","detail.goal.active":"Активна","detail.goal.blocked":"Заблокирована","detail.goal.complete":"Завершена","detail.goal.disarmed":"Ожидание продолжения","detail.goal.empty":"Нет цели","detail.goal.paused":"Приостановлена","detail.goal.reason":"Блокирующий фактор","detail.goal.rounds":"Раунды","detail.hours":"{count} ч","detail.jobs.count":"{count} фоновых задач","detail.location":"Строка {line}, столбец {column}","detail.locations.count":"{count} расположений","detail.matches.capped":"Достигнут предел результатов; уточните поиск для большего числа","detail.matches.count":"{count} совпадений","detail.minutes":"{count} мин","detail.models.title":"Доступные модели","detail.moreInInspect":"Ещё {count} элементов доступно в Инспекторе","detail.no":"Нет","detail.none":"Нет","detail.output.lines":"Строки {begin}–{end} из {total}","detail.output.truncated":"Вывод усечён","detail.plugins.count":"{count} динамических плагинов","detail.providers.count":"{count} провайдеров инспекции","detail.ralph.limit":"Достигнут предел раундов","detail.ralph.reportedBlocker":"Исполнитель сообщил о блокировке","detail.ralph.reportedComplete":"Исполнитель сообщил о завершении","detail.receipt.alreadyFinished":"Уже завершено","detail.receipt.cancel":"Запрошена отмена","detail.receipt.closed":"Закрыто","detail.receipt.closing":"Закрытие","detail.receipt.delivered":"Сообщение доставлено","detail.receipt.interrupt":"Запрошено прерывание","detail.receipt.signal":"Сигнал доставлен","detail.receipt.started":"Запущено","detail.recordedResult":"Зафиксированный результат","detail.report.nextSteps":"Оставшаяся работа","detail.schedule.count":"{count} напоминаний","detail.schedule.cron":"Cron {expression} ({zone})","detail.schedule.daily":"Каждый день в {time} ({zone})","detail.schedule.deleted":"Удалено","detail.schedule.empty":"Нет напоминаний","detail.schedule.every":"Каждые {interval}","detail.schedule.frequency":"Повтор","detail.schedule.once":"Однократно","detail.schedule.overdue":"Просрочено, ожидание возобновления сессии","detail.schedule.scheduled":"Запланировано","detail.schedule.weekly":"Еженедельно ({days}) в {time} ({zone})","detail.schedule.when":"Запланировано на","detail.seconds":"{count} с","detail.state":"Статус","detail.status.accepted":"Принято","detail.status.completed":"Завершено","detail.status.deleted":"Удалено","detail.status.exited":"Завершился","detail.status.failed":"Сбой","detail.status.idle":"Ожидание","detail.status.inactive":"Неактивен","detail.status.killed":"Отменено","detail.status.provisioning":"Подготовка","detail.status.queued":"В очереди","detail.status.ready":"Готов","detail.status.running":"Выполняется","detail.tasks.count":"{count} задач команды","detail.tasks.nextPage":"Доступно больше задач; следующий курсор: {cursor}","detail.terminals.count":"{count} терминалов","detail.todo.completed":"Завершено","detail.todo.empty":"Список задач пуст","detail.todo.in_progress":"В процессе","detail.todo.pending":"Ожидает","detail.trace.ancestors":"Сессии-предки","detail.trace.derived":"Производные события","detail.trace.descendants":"Сессии-потомки","detail.trace.replacedBy":"Заменено на","detail.trace.replacementChain":"Цепочка замен","detail.trace.replaces":"Заменяет события","detail.trace.sources":"Исходные события","detail.wait.changed":"Обнаружено изменение","detail.wait.noProgress":"Нет активных участников команды","detail.wait.timeout":"Время ожидания истекло","detail.wait.title":"Активность участников команды","detail.weekday.1":"Пн","detail.weekday.2":"Вт","detail.weekday.3":"Ср","detail.weekday.4":"Чт","detail.weekday.5":"Пт","detail.weekday.6":"Сб","detail.weekday.7":"Вс","detail.weekday.join":", ","detail.workflow.script":"Скрипт рабочего процесса","detail.yes":"Да","details.running":"Выполняется…","diff.collapseAria":"Свернуть diff","diff.expandAria":"Развернуть ещё {count} строк diff","diff.expandRest":"… ещё {count} строк","error.sessionInUse":"Эта сессия уже используется другим запущенным экземпляром DSH (например, dsh web или десктопным приложением). Завершите другие экземпляры DSH и повторите попытку.","file.label":"Файл","file.notStaged":"Загрузка файла не завершена; прикрепите заново и повторите попытку","file.pending":"Ожидающие файлы","file.remove":"Удалить файл {name}","file.retry":"Повторить загрузку {name}","file.sessionUnavailable":"Сессия недоступна; загрузка файлов невозможна","file.stillUploading":"Файлы всё ещё загружаются; отправьте сообщение после завершения загрузки","file.uploadFailed":"Сбой загрузки; нажмите для повтора","file.uploading":"Загрузка…","hero.chooseWorkspace":"Выбрать рабочую папку","hero.headline":"Навстречу неизвестному","hero.preview":"Предпросмотр","hint.goal":"опишите цель длительной задачи","hint.goal.active":"цель активна — изменить / пауза / продолжить / снять","image.closePreview":"Закрыть просмотр оригинала","image.dimensionTooLarge":"Стороны изображения не больше {size}px — уменьшите его и попробуйте снова","image.fileTooLarge":"Каждое изображение должно быть меньше {size}","image.label":"Изображение","image.loadFailed":"Изображение не загрузилось, нажмите для повтора","image.loading":"Загрузка изображения…","image.modelUnsupported":"Текущая модель не принимает изображения; выберите подходящую","image.openOriginal":"Открыть оригинал","image.openOriginalLabel":"{label}, нажмите, чтобы открыть оригинал","image.original":"Оригинал","image.pending":"Изображения к отправке","image.preview":"Просмотр оригинала","image.remove":"Убрать изображение {name}","image.sendFailed":"Не удалось отправить изображения ({reason}); добавьте заново и повторите","image.tooMany":"В одно сообщение помещается до {count} изображений","image.tooManyPixels":"Слишком большое разрешение; сожмите изображение и повторите","image.totalTooLarge":"Изображения весят больше {size}; уберите часть и повторите","image.unsupportedType":"Поддерживаются только PNG, JPG, WebP и GIF","input.commands":"Команды","input.file":"Файл","input.send":"Отправить сообщение","input.send.queue":"Поставить в очередь","input.send.steer":"Направить сообщение","input.stop":"Остановить генерацию","placeholder.default":"Напишите агенту","placeholder.hero":"Опишите, что хотите сделать","placeholder.parentOffline":"Родительская сессия офлайн: отправка недоступна, но остановить выполнение можно","placeholder.steerQueue":"Cmd/Ctrl+Enter направит все сообщения из очереди","placeholder.unavailable":"Сессия недоступна","placeholder.workspace":"Выберите рабочую папку, чтобы начать","queue.cancelEdit":"Отменить правку","queue.count":"Сообщений в очереди: {n}","queue.edit":"Изменить сообщение в очереди","queue.edit.unsupported":"Содержит не только текст; правка пока не поддерживается","queue.editFailed":"Не удалось изменить: сообщение, возможно, уже отправляется.","queue.file":"Файл в очереди: {name}","queue.image":"Изображение сообщения в очереди","queue.remove":"Убрать из очереди","queue.removeFailed":"Не удалось убрать: сообщение, возможно, уже отправляется.","queue.save":"Сохранить сообщение","queue.sending":"Отправка…","queue.steer":"Направить сообщение","queue.steer.unavailable":"Направлять можно только пока агент работает","queue.steerFailed":"Не удалось направить. Попробуйте ещё раз.","read.collapseAria":"Свернуть содержимое","read.expandAria":"Развернуть ещё {count} строк","read.expandRest":"… ещё {count} строк","read.window":"Показано {shown} из {total} строк","row.failed":"Ошибка","row.input":"ВХОД","row.inspect":"Инспектировать","row.output":"ВЫХОД","row.preparing":"Подготовка вызова инструмента","row.running":"Выполняется","row.stopped":"Остановлено","search.collapseAria":"Свернуть результаты","search.expandAria":"Развернуть ещё {count} строк результатов","search.expandRest":"… ещё {count} строк","search.matches":"{shown} совпадений • {files} файлов","search.matches.truncated":"Показано {shown} из {total} совпадений • {files} файлов","search.noResults":"Нет результатов","search.paths":"{shown} путей","search.paths.truncated":"Показано {shown} из {total} путей","session.hierarchy":"Иерархия сессий","settings.enter.description":"Только когда агент занят; Cmd/Ctrl+Enter даёт другое поведение","settings.enter.queue":"В очередь","settings.enter.steer":"Направить","settings.enter.title":"Enter, когда агент занят","shortcut.complementary":"Использовать вспомогательное действие: Очередь / Направить","shortcut.mention":"Открыть меню ссылок","shortcut.newline":"Новая строка","shortcut.slash":"Открыть меню команд","terminal.collapseAria":"Свернуть вывод","terminal.done":"Готово","terminal.exitCode":"код возврата {code}","terminal.expandAria":"Показать оставшиеся строки вывода: {n}","terminal.expandRest":"… ещё строк: {n}","terminal.failed":"Ошибка","terminal.noExitCode":"код завершения отсутствует","terminal.noOutput":"Вывода нет","terminal.running":"Выполняется","terminal.sendInput":"(отправить ввод)","terminal.session":"Терминал {sessionId}","terminal.signal":"сигнал {signal}","todo.completed":"{done}/{total} выполнено","todo.diff.added":"Добавлено {count}","todo.diff.addedItem":"Добавлено","todo.diff.compare":"Изменения относительно предыдущего списка","todo.diff.initial":"Начальный список","todo.diff.movedItem":"Порядок изменён","todo.diff.noChanges":"В списке нет изменений","todo.diff.removed":"Удалено {count}","todo.diff.removedItem":"Удалено","todo.diff.unavailable":"Предыдущий список недоступен","todo.diff.unchanged":"Без изменений: {count}","todo.diff.updated":"Обновлено {count}","todo.diff.updatedItem":"Статус изменён","todo.progress.active":"{active} в работе","todo.progress.done":"{done} выполнено","todo.progress.pending":"{pending} в очереди","todo.rowTitle":"Обновить список задач","todo.status.completed":"Завершено","todo.status.inProgress":"В процессе","todo.status.pending":"Ожидает","todo.title":"Задачи","tool.autoReviewNotExecuted":"Инструмент не был выполнен. Причина: {reason}","tool.autoReviewReasonFallback":"Автопроверка не разрешила это действие","tool.autoReviewRejected":"Отклонено автопроверкой","tool.preparing.content":"Подготовка содержимого ({kilobytes} КБ)","tool.title.bash":"Bash","tool.title.closeTerminal":"Закрыть терминал","tool.title.code":"Код","tool.title.createGoal":"Создать цель","tool.title.createSchedule":"Создать напоминание","tool.title.createTeamTask":"Создать задачу команды","tool.title.deleteSchedule":"Удалить напоминание","tool.title.edit":"Правка","tool.title.findDefinition":"Найти определение","tool.title.findImplementation":"Найти реализацию","tool.title.findReferences":"Найти ссылки","tool.title.generic":"Вызов инструмента","tool.title.getGoal":"Просмотреть цель","tool.title.getTeamTask":"Прочитать задачу команды","tool.title.glob":"Поиск по маске (Glob)","tool.title.grep":"Поиск текста (Grep)","tool.title.hoverSymbol":"Инспектировать символ","tool.title.inspect":"Инспектировать","tool.title.inspectPlugins":"Инспектировать плагины","tool.title.inspectProviders":"Инспектировать провайдеров","tool.title.interruptAgent":"Прервать агента","tool.title.killJob":"Отменить фоновую задачу","tool.title.listAgents":"Список агентов","tool.title.listJobs":"Список фоновых задач","tool.title.listModels":"Список моделей","tool.title.listSchedules":"Список напоминаний","tool.title.listTeamTasks":"Список задач команды","tool.title.listTerminals":"Список терминалов","tool.title.lsp":"Запрос символов кода","tool.title.openTerminal":"Открыть терминал","tool.title.pwsh":"Pwsh","tool.title.queryRuntime":"Запрос среды выполнения","tool.title.ralph":"Запустить Ralph","tool.title.read":"Чтение","tool.title.readEvent":"Прочитать событие","tool.title.readImage":"Просмотр изображения","tool.title.readJob":"Прочитать вывод задачи","tool.title.readTerminal":"Прочитать терминал","tool.title.removeCordis":"Удалить плагин Cordis","tool.title.runCordis":"Запустить плагин Cordis","tool.title.search":"Поиск","tool.title.searchEvents":"Поиск событий","tool.title.searchSessions":"Поиск сессий","tool.title.sendMessage":"Отправить сообщение","tool.title.signalTerminal":"Отправить сигнал терминалу","tool.title.spawnTeammate":"Создать участника команды","tool.title.stopCordis":"Остановить плагин Cordis","tool.title.subagent":"Делегировать задачу","tool.title.traceEvent":"Трассировка события","tool.title.traceSession":"Трассировка сессии","tool.title.updateGoal":"Обновить цель","tool.title.updateSchedule":"Обновить напоминание","tool.title.updateTeamTask":"Обновить задачу команды","tool.title.waitAgent":"Ожидать участников команды","tool.title.webFetch":"Загрузка страницы","tool.title.webSearch":"Поиск в вебе","tool.title.workflow":"Запустить рабочий процесс","tool.title.write":"Запись","web.contentTruncated":"Содержимое обрезано","web.http":"HTTP","web.noResults":"Ничего не найдено","web.sourcesTruncated":"Список источников обрезан"},"cordis":{"a11y.defining":"Определение плагина","a11y.failed":"Определить не удалось","a11y.preparing":"Подготовка вызова инструмента Cordis","a11y.stopped":"Определение прервано","action.approve":"Разрешить","action.approveOnce":"Разрешить только эту версию","action.approvePlugin":"Разрешить будущие версии этого плагина","action.decline":"Отклонить","action.inspect":"Инспектировать","action.remove":"Удалить","action.retry":"Повторить","action.rollback":"Откатить","action.run":"Запустить","action.stop":"Остановить","body.clientCode":"Клиент","body.copied":"Скопировано","body.copy":"Копировать","body.hostCode":"Хост","body.output":"Результат","body.source":"Исходник плагина","panel.approvals.aria":"Подтверждения Cordis","panel.current":"Текущая: {packageId}","panel.empty":"Плагинов пока нет","panel.group.current":"Эта сессия","panel.group.others":"Другие сессии","panel.hint":"Управление запуском — в панели Cordis над настройками","panel.loading":"Чтение…","panel.next":"Следующая: {packageId}","panel.plugins.aria":"Плагины Cordis","panel.readFailed":"Не удалось прочитать список плагинов: {message}","panel.runningCount":"работает: {count}","panel.title":"Плагины Cordis","panel.trigger":"Плагин Cordis","panel.version":"Версия","purpose.missing":"(назначение не указано)","render.failedAbdicated":"Отрисовка в {slot} не удалась, вернули стандартный интерфейс:","render.failedHeld":"Отрисовка в {slot} не удалась:","row.defineTitle":"Зарегистрировать плагин Cordis","row.removeTitle":"Удалить плагин Cordis","row.runTitle":"Запустить плагин Cordis","row.stopTitle":"Остановить плагин Cordis","row.updateTitle":"Обновить плагин Cordis","run.removed":"Этого пакета больше нет","run.superseded":"Ниже есть более свежая карточка запуска","status.awaitingApproval":"Ждёт подтверждения","status.clientPending":"Клиент готов к активации","status.failed":"Запуск не удался","status.idle":"Готов","status.removed":"Удалён","status.running":"Работает","status.superseded":"Есть более свежий запуск"},"deliverables":{"changes.added":"+{count}","changes.all":"Все {count} файлов","changes.binary":"бинарный","changes.collapse":"Свернуть","changes.collapseAria":"Свернуть изменённые файлы","changes.deleted":"-{count}","changes.expandAria":"Показать все {count} изменённых файлов","changes.openReview":"Просмотреть изменения этого шага в боковой панели","changes.oversized":"слишком большой","changes.singleTitle":"Изменено: {name}","changes.title":"Изменено файлов: {count}","changes.viewDiff":"Посмотреть изменения в {name}","diff.binary":"Бинарный файл; отображение изменений недоступно","diff.coarse":"Превышено время построчного сравнения; файл показан как полная замена","diff.created":"Создан на этом шаге","diff.deleted":"Удалён на этом шаге","diff.error":"Не удалось прочитать изменения","diff.loading":"Чтение изменений…","diff.missing":"Содержимое изменений этого шага больше недоступно","diff.oversized":"Файл слишком велик; отображение изменений недоступно","diff.truncated":"Показаны первые {count} строк","diff.unchanged":"Обе стороны содержат одинаковые строки","presented.all":"Все {count} файлов","presented.collapse":"Свернуть","presented.collapseAria":"Свернуть файлы результатов","presented.directoryError":"Не удалось открыть папку с файлом. Попробуйте снова.","presented.directoryOpened":"Запрошено открытие папки с файлом","presented.directoryOpening":"Открытие папки с файлом…","presented.error":"Не удалось открыть. Нажмите для повтора.","presented.expandAria":"Показать все {count} файлов результатов","presented.file":"Файл","presented.hostError":"Не удалось прочитать сведения о рабочем столе хоста","presented.nativeUnavailable":"Для этого файла нет доступного пути на хосте. Просмотрите его на боковой панели.","presented.opened":"Открыто в приложении по умолчанию","presented.opening":"Открытие…","presented.preview":"Предпросмотр на боковой панели","presented.previewButton":"Открыть {name} на боковой панели","presented.previewCard":"Предпросмотр {name} на боковой панели","presented.retry":"Повторить","presented.revealError":"Не удалось показать в файловом менеджере. Попробуйте снова.","presented.revealed":"Запрошен показ в файловом менеджере","presented.revealing":"Отображение в файловом менеджере…","presented.unavailable":"На этом хосте нет доступного рабочего стола для открытия файлов или папок","review.nowrap":"Отключить перенос строк","review.openFile":"Открыть файл целиком в боковой панели","review.openFileAria":"Открыть {name} в боковой панели","review.selectFile":"Выберите файл для ревью","review.split":"Переключить на раздельный вид","review.splitAria":"Раздельный вид","review.title":"Ревью · шаг {turn}","review.unified":"Переключить на объединённый вид","review.wrap":"Включить перенос строк","review.wrapAria":"Перенос строк","row.error":"Сбой создания результатов","row.inspect":"Инспектировать вызов","row.ok":"Результаты подготовлены","row.preparing":"Подготовка результатов работы","row.running":"Подготовка результатов","row.stopped":"Прервано","row.title":"Предоставление файлов"},"directory-browser":{"browser.cancel":"Отмена","browser.create":"Создать","browser.createIn":"Новая папка в «{name}»","browser.editPath":"Изменить путь","browser.folderName":"Имя папки","browser.home":"Домашняя папка","browser.loading":"Загрузка…","browser.newFolder":"Новая папка","browser.open":"Открыть","browser.showHidden":"Показывать скрытые файлы","browser.title":"Выбор рабочей папки","browser.truncated":"Слишком много папок; показано только начало.","browser.untitledFolder":"Без имени"},"documentHtml":{"failed":"Не удалось отобразить предпросмотр этого HTML-документа.","frame":"Предпросмотр HTML-документа","loading":"Подготовка предпросмотра HTML…","title":"HTML"},"documentMarkdown":{"code.copied":"Скопировано","code.copy":"Копировать","footnotes":"Сноски","viewer.label":"Markdown"},"feedback":{"action.dislike":"Плохой ответ","action.dislikeActive":"Убрать оценку","action.like":"Хороший ответ","action.likeActive":"Убрать оценку","category.instruction-following":"Понимание и следование инструкциям","category.other":"Другое","category.product-interaction":"Возможности продукта и взаимодействие","category.resource-cost":"Использование ресурсов и стоимость","category.security-privacy-permission":"Безопасность, конфиденциальность и разрешения","category.service-stability":"Стабильность работы сервиса","category.task-result":"Результат выполнения задачи","dialog.categories":"Категория отзыва","dialog.detail":"Подробности отзыва","dialog.hint":"Добавьте детали, чтобы помочь нам стать лучше. Ваше сообщение будет включать журнал текущей беседы.","dialog.title":"Отправить отзыв","error.conflict":"Эту оценку изменили в другом месте; показано актуальное состояние","error.generic":"Не удалось сохранить оценку","error.load":"Не удалось загрузить оценку","error.noteTooLarge":"Описание слишком длинное; сократите его и отправьте снова","toast.recorded":"Спасибо за ваш отзыв"},"goal":{"action.cancel":"Отменить правку","action.clear":"Снять цель","action.edit":"Изменить цель","action.pause":"Приостановить цель","action.resume":"Продолжить цель","action.save":"Сохранить цель","commandInput.aria":"Ввод команды","objective.aria":"Формулировка цели","phase.active":"Цель в работе","phase.active.disarmed":"Неактивная цель","phase.blocked":"Цель заблокирована","phase.paused":"Цель на паузе"},"job":{"count.idle.one":"{count} фоновая задача","count.idle.other":"{count} фоновых задач","count.live.one":"{count} фоновая задача выполняется","count.live.other":"{count} фоновых задач выполняется","duration.hours":"{hours} ч {minutes} мин","duration.minutes":"{minutes} мин {seconds} с","duration.seconds":"{seconds} с","duration.title.done":"Заняло {duration}","duration.title.live":"Выполняется {duration}","kill.confirm":"Нажмите снова для подтверждения","kill.confirmAction":"Подтвердить остановку","kill.failed":"Сбой остановки","kill.stop":"Остановить задачу {label}","list.aria":"Фоновые задачи","output.error":"поток вывода в реальном времени прерван: {error}","output.gap":"… более ранний вывод пропущен …","row.collapseAria":"Скрыть вывод задачи {label}","row.expandAria":"Показать вывод задачи {label}","section.clear":"Очистить","section.live":"Выполняются","section.settledCount":"Завершено {count}","status.completed":"завершена","status.failed":"ошибка","status.killed":"отменена","status.running":"выполняется","status.stopping":"останавливается","terminal.collapse":"Свернуть","terminal.collapseAria":"Свернуть вывод","terminal.copied":"Скопировано","terminal.copy":"Копировать","terminal.done":"завершено","terminal.exitCode":"код завершения {code}","terminal.expand":"Показать ещё {n} строк","terminal.expandAria":"Развернуть {n} скрытых строк вывода","terminal.failed":"сбой","terminal.noExitCode":"нет кода завершения","terminal.noOutput":"(нет вывода)","terminal.running":"выполняется","terminal.signal":"сигнал {signal}"},"model":{"action.reload":"Обновить","command.description":"Выбрать модель для этого диалога","command.label":"Модель","effort.providerDefault":"По умолчанию","empty.efforts":"У этой модели нет уровней рассуждения.","empty.models":"Доступных моделей нет.","error.action":"Операция с моделью не удалась: {message}","error.sessionInUse":"Эта сессия уже используется другим запущенным экземпляром DSH (например, dsh web или десктопным приложением). Завершите другие экземпляры DSH и повторите попытку.","menu.aria":"Модель и уровень рассуждения","menu.effort":"Уровень рассуждений","menu.model":"Модель","option.deepseekV4Flash.description":"Быстрая, эффективная и экономичная; отлично подходит для сфокусированных, рутинных или параллельных задач.","option.deepseekV4Pro.description":"Максимальное качество рассуждений, глубокий анализ кода и решение сложных задач повышенной трудности.","option.loadError":"Каталог не загрузился: {message}","provider.account":"Аккаунт DeepSeek","status.loading":"Обновление списка моделей…","trigger.aria":"Выбор модели, сейчас {model}","trigger.ariaEffort":"Выбор модели, сейчас {model}, уровень рассуждения {effort}","trigger.fallback":"Выбрать модель","trigger.loading":"Загрузка моделей…","trigger.selectAria":"Выбрать модель","warning.groupLoad":"{name} не загрузился: {message}"},"open-in-app":{"app.explorer":"Проводник Windows","app.filemanager":"Файлы","app.finder":"Finder","app.terminal":"Терминал","open.title":"Открыть рабочую область в {app}","open.tooltip":"Открыть локально","path.appDefault":"{app} (по умолчанию)","path.appsError":"Не удалось загрузить приложения","path.more":"Другие способы открытия","path.open":"Открыть","path.openError":"Не удалось открыть. Повторите попытку.","path.reveal":"Показать расположение файла","path.revealError":"Не удалось показать расположение файла. Повторите попытку.","shortcut.busy":"Открытие рабочего пространства","shortcut.unavailable":"Текущее рабочее пространство или локальное приложение недоступно"},"permission.access":{"auto.badge":"EXP","auto.confirm.acknowledge":"Я понимаю риски и хочу продолжить","auto.confirm.description":"Автопроверка работает без изолированной песочницы. Перед каждым вызовом нативного инструмента и внутренним вызовом PTC та же модель рецензирует действие. Функция экспериментальная, может ошибочно блокировать или пропускать действия и расходует токены.","auto.confirm.enable":"Включить автопроверку","auto.confirm.title":"Включить автопроверку (экспериментально)?","auto.description":"Работа без песочницы с экспериментальной проверкой каждого вызова инструментов той же моделью.","auto.label":"Автопроверка","close":"Закрыть","confirm.acknowledge":"Я понимаю риски и хочу продолжить","confirm.cancel":"Отмена","confirm.description":"Полный доступ убирает часть подтверждений и позволяет агенту действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете текущей задаче.","confirm.enable":"Включить полный доступ","confirm.title":"Включить полный доступ?","mode":"Режим доступа, текущий: {name}","preset.fullAccess":"Полный доступ","preset.readOnly":"Только чтение","preset.workspaceWrite":"Запись в рабочую папку"},"plan":{"chip.exitFailed":"Не удалось выйти из режима планирования","chip.label":"План","chip.on.aria":"Режим плана включён, нажмите, чтобы выключить","chip.on.title":"Режим плана включён — нажмите, чтобы выключить (/plan off)","preview.action":"Открыть","preview.document":"План · Markdown","preview.expired":"Срок действия временного предпросмотра плана истёк. Откройте его повторно из карточки ожидания ревью.","preview.failed":"Не удалось загрузить план","preview.full":"Посмотреть весь план","preview.historyUnavailable":"История сессии недоступна","preview.invalidAddress":"Неверный адрес плана","preview.loading":"Загрузка плана…","preview.notFound":"План не найден","preview.open":"Открыть план в боковой панели","preview.openNamed":"Открыть план: {title}","preview.title":"План","preview.unavailable":"Предпросмотр плана недоступен"},"pluginManager":{"addPlugin":"Добавить плагин","backToList":"Назад к списку плагинов","backToPackage":"Назад к {name}","bundlesTitle":"Установленные","cancel":"Отмена","close":"Закрыть","configureRow":"Настроить {name}","confirmUninstall":"Удалить","confirmUninstallDescription":"Все возможности, предоставляемые плагином, станут недоступны после его удаления.","confirmUninstallTitle":"Удалить «{name}»?","crumbRoot":"Плагины","empty":"Плагины пока не установлены.","enableToggle":"Включить {name}","error":"Плагины временно недоступны.","failedDisable":"Не удалось отключить: {reason}","failedEnable":"Не удалось включить: {reason}","failedRowDisable":"Не удалось отключить компонент: {reason}","failedRowEnable":"Не удалось включить компонент: {reason}","failedUninstall":"Не удалось удалить: {reason}","infoDescription":"Настраивайте официальные плагины, устанавливайте и управляйте сторонними расширениями. Список встроенных плагинов и статус их работы доступны в Настройки → Встроенные плагины.","infoLabel":"О плагинах","installApplying":"Применение конфигурации, пожалуйста, подождите…","installApplyingCancellationError":"Отмена не была подтверждена. Установка применяется; дождитесь завершения. {reason}","installApprovalCaution":"Разрешайте скрипты только для доверенных пакетов.","installApprovalConsequence":"После разрешения скрипты выполнятся с вашими правами, а выбор сохранится в этом профиле.","installApprovalDescription":"Эти пакеты содержат скрипты установки, которые pnpm не стал запускать автоматически.","installApprovalTitle":"Скриптам установки требуется разрешение","installApproveAndRetry":"Разрешить эти скрипты и повторить","installAttempt":"{previous} не может предоставить пакет; повторная попытка через {registry} (реестр {index} из {total})","installAttemptBadge":"Попытка {index} · {registry}","installAwaitingAcceptance":"Ожидание подтверждения установки хостом. Отмена повторится автоматически после подтверждения.","installBackgroundApplying":"Установка применяется и не может быть отменена. Посмотреть ход установки.","installBackgroundDone":"Установка завершена. Посмотреть сведения об установке.","installBackgroundFailed":"Сбой установки. Посмотреть сведения об установке.","installBackgroundUnconfirmed":"Статус установки не подтверждён. Откройте сведения об установке.","installBackgroundUnknown":"Результат установки недоступен. Проверьте список плагинов.","installCancel":"Отменить установку","installCancelAndEdit":"Отменить установку и вернуться к редактированию","installCancelUnconfirmed":"Остановка установки не подтверждена. Повторите отмену или дождитесь завершения установки. {reason}","installCancelled":"Установка отменена; плагин не включён, загруженные файлы могут остаться","installCancelledShort":"Отменено","installCancelling":"Остановка установки…","installChangeRegistry":"Сменить реестр","installChecking":"Проверка…","installClose":"Готово","installCloseCancels":"Отменить установку и закрыть","installDescription":"Введите имя пакета плагина, адрес репозитория GitHub или путь к локальному каталогу.","installDetailsHide":"Скрыть подробности установки","installDetailsShow":"Показать подробности установки","installDoneApproved":"Скрипты установки разрешены для {names}","installDoneNothing":"Установка завершена без добавления новых зависимостей.","installDoneRestart":"Установлено; загрузится при следующем запуске.","installEdit":"Изменить","installEditAria":"Вернуться к редактированию","installEnableNow":"Включить сейчас","installFailedTitle":"Не удалось установить плагин","installFailureBuildBlocked":"Сборочные скрипты зависимостей требуют вашего разрешения для продолжения установки","installFailureBuildBlockedManual":"pnpm заблокировал скрипты установки; разрешите их в allowBuilds файла pnpm-workspace.yaml и повторите попытку","installFailureDiskFull":"Диск заполнен; установка остановлена","installFailureGeneric":"Во время установки произошла ошибка; подробности указаны в отчёте","installFailureIntegrity":"Загруженный пакет не прошёл проверку целостности","installFailureNetwork":"Сбой сетевого подключения","installFailureNetworkAll":"Ни один реестр недоступен (попытки: {registries}). Проверьте сетевое подключение или настройки прокси, либо смените реестр и повторите попытку.","installFailureNetworkHost":"Не удалось подключиться к {host}. Адреса GitHub и ссылки на .tgz загружаются не через реестр: эта машина должна иметь прямой доступ к ним или через прокси. Если плагин также опубликован в npm, укажите имя его пакета.","installFailureNoMatchingVersion":"Нет версии, соответствующей запросу","installFailureNotFound":"Плагин не найден","installFailurePermission":"Нет прав на запись; установка плагина невозможна","installFailurePnpmMissing":"pnpm не найден, установка невозможна","installFailureTimeout":"Превышено время ожидания установки","installGitTemplateHint":"Замените на фактический адрес Git-репозитория.","installGithubFailedDescription":"Попробуйте другой источник установки.","installGithubFailedTitle":"Нет доступа к GitHub","installGithubTimeoutTitle":"Превышено время ожидания ответа GitHub","installGuideExampleLabel":"Пример: ","installGuideFill":"Использовать пример","installGuideFillAria":"Использовать пример {example}","installGuideGitHint":"Адрес открытого репозитория плагина на GitHub (другие Git-хостинги также поддерживаются).","installGuideGitTitle":"Адрес репозитория GitHub","installGuideHide":"Скрыть справку","installGuideIdExample":"@deepseek-ai/dsh-experimental-auto-review","installGuideIdHint":"Часть команды после dsh plugin add или pnpm add в инструкции по установке.","installGuideIdTitle":"Имя пакета","installGuidePathHint":"Абсолютный путь к каталогу плагина на этой машине (разрабатываемому или загруженному).","installGuidePathTitle":"Локальный каталог плагина","installGuideSafety":"Устанавливайте только доверенные плагины: они выполняются с вашими правами и могут повредить DeepSeek Harness или раскрыть данные.","installGuideToggle":"Не знаете, что ввести?","installLocation":"Устанавливается в {dir}","installPackageLabel":"Имя пакета плагина","installPathTemplateHint":"Замените на фактический путь к каталогу плагина на диске.","installProblemInstalled":"Этот плагин уже установлен","installProblemInvalid":"Не является допустимым именем пакета или адресом для установки: {reason}","installProblemNetwork":"Не удалось связаться с реестром плагинов; проверьте сеть и повторите попытку","installProblemNetworkAll":"Ни один реестр недоступен (попытки: {registries}); проверьте сетевое подключение, настройки прокси или смените реестр","installProblemNotBundle":"Этот пакет не объявляет бандл и не может быть установлен как плагин: {reason}","installProblemNotFound":"Плагин не найден","installProblemNotPackage":"Путь не существует или не является корректным пакетом плагина","installProblemUnknown":"Не удалось найти плагин: {reason}","installReconcile":"Проверить статус установки","installResultUnconfirmed":"Результат установки не получен. Проверьте статус установки. {reason}","installRetry":"Повторить","installRun":"Установить","installSpecLabel":"Имя пакета или адрес","installSpecPlaceholder":"например @deepseek-ai/dsh-experimental-auto-review","installStarting":"Подготовка установки…","installSubjectGit":"Репозиторий Git","installSubjectPath":"Локальный каталог","installSubjectTarball":"Архив Tarball","installTitle":"Добавить плагин","installTryAnotherWay":"Попробовать другой способ","installUnconfirmedTitle":"Статус установки не подтверждён","installUnknownDescription":"На хосте нет активной установки с этим ID запроса. Проверьте список плагинов перед повторной попыткой.","installUnknownTitle":"Результат установки недоступен","installUseGithubMirror":"Использовать зеркало в континентальном Китае","installVersion":"Версия {version}","installViewTask":"Посмотреть установку","installedTitle":"Установлен","installingTitle":"Установка плагина…","intro":"Добавление и управление плагинами","loading":"Чтение плагинов…","metadataError":"Ошибка метаданных пакета: {error}","officialTitle":"Официальные","openDetail":"Просмотр {name}","overriddenNotice":"Плагин «{name}» сохранён, но переопределён конфигурацией с более высоким приоритетом и не действует","panel":"Плагины","partOff":"Откл.","partToggle":"Включить компонент {name}","partsCountFailed":"с ошибкой {count}","partsCountOff":"отключено {count}","partsCountRunning":"работает {count}","partsCountTotal":"всего {count}","partsEmpty":"Этот пакет плагина не содержит компонентов.","partsFilter":"Фильтр компонентов","partsFilterEmpty":"Нет совпадающих компонентов.","partsLabel":"Компоненты","reasonAmbiguousInstall":"Невозможно определить установленный пакет по изменению зависимостей.","reasonBundleInUse":"Другие конфигурации используют компоненты этого бандла; сначала отключите их.","reasonIncompatibleVersion":"{plugin} несовместим с DSH {runtime} (требует {peers}); запуск может вызвать сбои или потерю данных. Установите версию плагина, совместимую с этой версией DSH.","reasonIncompatibleVersionUnnamed":"Этот плагин несовместим с текущей версией DSH; запуск может вызвать сбои или потерю данных.","reasonInvalidSpec":"Введите корректное имя пакета или адрес.","reasonLabel":"Причина","reasonManagementRequired":"Требуется для управления плагинами; отключение или удаление невозможно.","reasonNotBundle":"Этот пакет не объявляет бандл и не может управляться как плагин.","reasonNotRemovable":"Пакет не принадлежит профилю либо требуется для управления плагинами.","reasonOperationError":"Хост сообщил об ошибке.","reasonStaleApproval":"Список ожидающих подтверждения скриптов изменился; повторите установку для обновления.","reasonStopProfile":"Этот профиль работает без HMR; остановите его и удалите пакет через dsh plugin.","reasonUnaddressable":"Патч профиля не может однозначно адресовать этот элемент.","reasonUnknownPlugin":"Плагин не найден.","refresh":"Обновить","refreshError":"Не удалось обновить список. Повторите попытку.","registryCustom":"Пользовательский адрес","registryCustomHint":"Корпоративный или частный реестр npm; для авторизации сохраните учётные данные в ~/.npmrc на этой машине","registryCustomInvalid":"Введите адрес, начинающийся с http:// или https://","registryCustomPlaceholder":"https://npm.example.com/","registryDefault":"Реестр по умолчанию","registryLegend":"Реестр npm, из которого загружается плагин","registryListSeparator":", ","registryNpmmirror":"Зеркало для материкового Китая (npmmirror)","registryOfficial":"Официальный реестр npm","registryToggle":"Реестр","restartNotice":"Изменения вступят в силу при следующем запуске","retry":"Повторить","rowPhaseActive":"Работает","rowPhaseFailed":"Проблема","rowPhaseLoading":"Загрузка","rowPhasePending":"Ожидание зависимостей","rowPhaseUnloading":"Выгрузка","rowStateIdle":"Не запущен","statusBeta":"Бета","statusProblem":"Проблема","terminalCollapse":"Свернуть","terminalCollapseAria":"Свернуть вывод","terminalCopied":"Скопировано","terminalCopy":"Копировать","terminalDone":"Готово","terminalExitCode":"код завершения {code}","terminalExpand":"… ещё {n} строк","terminalExpandAria":"Развернуть оставшиеся {n} строк вывода","terminalFailed":"Ошибка","terminalNoExitCode":"код завершения отсутствует","terminalNoOutput":"Вывод отсутствует","terminalRunning":"Выполняется","terminalSignal":"сигнал {signal}","title":"Плагины","unavailable":"Эта среда развёрнута без управляемого профиля, поэтому установка и переключение плагинов здесь недоступны.","uninstall":"Удалить","uninstallLabel":"Удалить {name}","versionTag":"v{version}"},"question":{"action.next":"Дальше","action.skip":"Пропустить вопрос","custom.placeholder":"Впишите свой ответ","error.incomplete":"Сначала ответьте на этот вопрос.","error.unanswered":"Выберите вариант или впишите свой ответ.","nav.cancel":"Закрыть все вопросы","nav.maximize":"Развернуть карточку вопроса","nav.minimize":"Свернуть карточку вопроса","nav.next":"Следующий вопрос","nav.prev":"Предыдущий вопрос","option.recommended":"Рекомендуем","plan.approve":"Утвердить","plan.decline":"Отклонить","plan.discuss":"Обсудить","plan.header":"Проверка плана"},"reference":{"candidate.noCwd":"(нет cwd)","crumb.root":"Рабочее пространство","section.files":"Файлы и папки","section.sessions":"Диалоги сессий","section.subagents":"Субагенты","time.days":"{n} дн.","time.hours":"{n} ч.","time.minutes":"{n} мин.","time.months":"{n} мес.","time.now":"сейчас","time.years":"{n} г."},"schedule.catalog":{"delete.action":"Удалить","delete.label":"Удалить напоминание: {title}","delete.pending":"Удаление…","frequency.every":"Каждые {value} {unit}","frequency.once":"Однократно","hover.more":"Еще {count}","list.aria":"Активные напоминания","list.error":"Не удалось загрузить напоминания.","list.loading":"Загрузка напоминаний…","list.nextRun":"Следующий запуск","list.open":"Открыть сведения о напоминании: {title}","list.retry":"Повторить","mark.aria":"Запланированных задач: {count}","trigger.label":"Напоминания","trigger.one":"{count} напоминание","trigger.other":"{count} напоминаний"},"schedule.manager":{"card.deleted":"Удалена","card.open":"Открыть","card.openLabel":"Открыть сведения о задаче: {title}","cronForm.atMinute":"В минуту","cronForm.daily":"Каждый день","cronForm.dateOption":"Число {day}","cronForm.dates":"По числам","cronForm.frequency":"Периодичность","cronForm.minuteDecrease":"Уменьшить минуту","cronForm.minuteIncrease":"Увеличить минуту","cronForm.monthly":"Ежемесячно","cronForm.weekly":"Еженедельно","delete.action":"Удалить задачу","delete.cancel":"Отмена","delete.close":"Закрыть подтверждение удаления","delete.confirm":"Удалить","delete.description":"Это остановит запуск задачи и удалит ее вместе с сохраненными записями о доставке. Исходная сессия и ее сообщения сохранятся; сообщения в очереди не отменяются.","delete.pending":"Удаление…","delete.title":"Удалить эту задачу?","delivery.collapse":"Свернуть","delivery.cursorError":"Записи были обновлены.","delivery.empty":"Нет записей о доставке","delivery.error":"Не удалось загрузить записи о доставке.","delivery.expand":"Развернуть","delivery.label":"Сохраненная запись о доставке","delivery.loadMore":"Загрузить еще","delivery.loading":"Загрузка записей о доставке…","delivery.notFound":"Эта задача больше недоступна.","delivery.pruned":"Более ранние записи о доставке были удалены","delivery.refresh":"Обновить","delivery.retention":"Правила хранения","delivery.retentionBounds":"Каждая задача сохраняет до {records} записей о доставке за последние {days} дн.","delivery.retentionExplanation":"При сохранении новой записи устаревшие записи за пределами этих лимитов удаляются автоматически. Очистка записей не останавливает выполнение задачи.","delivery.retry":"Повторить","detail.close":"Закрыть сведения","detail.frequency":"Периодичность","detail.id":"ID задачи","detail.instruction":"Инструкция для задачи","detail.label":"Сведения о задаче","detail.missing":"Задача недоступна. Возможно, она была удалена.","detail.more":"Действия с задачей","detail.name":"Название задачи","detail.next":"Следующий запуск","detail.nextRun":"Следующий запуск","detail.openSession":"Связанная сессия: открыть исходную сессию","detail.openSessionTitle":"Связанная сессия {title}: открыть исходную сессию","detail.records":"Записи о доставке","detail.rule":"Правила","detail.session":"Связанная сессия","detail.sessionArchived":"Исходная сессия заархивирована.","detail.sessionLoading":"Загрузка информации об исходной сессии.","detail.sessionUnavailable":"Исходная сессия недоступна.","detail.status":"Статус","detail.tabs":"Вкладки сведений о задаче","empty.action":"Новая задача автоматизации","frequency.every":"Каждые {value} {unit}","frequency.once":"Один раз","list.empty":"Задач пока нет. Созданные в сессиях задачи появятся здесь.","list.emptyInactive":"Нет неактивных задач автоматизации","list.error":"Не удалось загрузить задачи.","list.label":"Каталог задач","list.loading":"Загрузка задач…","list.nextPrefix":"Следующий запуск: ","list.noMatches":"Задачи не найдены","list.retry":"Повторить","new.action":"Создать","panel":"Задачи автоматизации","rule.cancel":"Отмена","rule.cron":"Свое расписание","rule.cronInvalid":"Введите выражение cron из пяти полей, например 0 9 * * 1-5.","rule.cronLabel":"Cron-выражение","rule.daily":"Каждый день","rule.error.conflict":"Эта задача изменилась до сохранения обновления. В строке показано сохраненное правило; попробуйте еще раз.","rule.error.notFound":"Эта задача больше недоступна.","rule.error.unknown":"Не удалось подтвердить обновление правила. В строке показано сохраненное правило.","rule.everyHours":"Каждые N часов","rule.everyMinutes":"Каждые N минут","rule.everySeconds":"Каждые N секунд","rule.invalidPrompt":"Введите инструкцию для задачи.","rule.invalidTitle":"Введите название задачи (не более 120 символов).","rule.once":"Один раз","rule.repeat":"Повтор","rule.save":"Сохранить изменения","rule.saving":"Сохранение…","rule.title":"Время запуска","rule.unsaved":"Несохраненные изменения","rule.weekday":"День недели","rule.weekdayOption":"День недели {weekday}","rule.weekdays":"С понедельника по пятницу","rule.weekly":"Еженедельно","rule.zone.system":" (системный)","search.clear":"Очистить поиск","search.label":"Поиск задач","search.placeholder":"Поиск задач автоматизации","status.active":"Включена","status.inactive":"Неактивна","statusFilter.all":"Все","statusFilter.label":"Статус задачи","timing.conflict":"Эта задача изменилась во время редактирования. Ваш черновик сохранен. Отмените, обновите и откройте снова для редактирования актуального правила.","timing.date":"Дата","timing.error":"Не удалось подтвердить обновление расписания. Ваш черновик сохранен. Проверьте задачу перед повторной попыткой.","timing.hour":"Час","timing.inactive":"Неактивные задачи доступны только для чтения. Их расписание нельзя изменить.","timing.interval":"Повторять каждые","timing.intervalDecrease":"Уменьшить интервал","timing.intervalHint.hour":"Не менее 1 часа. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalHint.minute":"Не менее 1 минуты. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalHint.second":"Не менее 60 секунд. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalIncrease":"Увеличить интервал","timing.invalid":"Введите корректные дату и время или проверьте поля расписания.","timing.invalidInterval":"Укажите интервал не менее 1 минуты.","timing.invalidInterval.hour":"Укажите интервал не менее 1 часа.","timing.invalidInterval.minute":"Укажите интервал не менее 1 минуты.","timing.invalidInterval.second":"Укажите интервал не менее 60 секунд.","timing.invalidZone":"Введите корректный часовой пояс IANA, например Europe/Moscow или Asia/Shanghai.","timing.minute":"Минута","timing.nextMonth":"Следующий месяц","timing.notFound":"Эта задача больше недоступна. Ваш черновик сохранен; нажмите «Отмена», чтобы закрыть редактор.","timing.notFuture":"Выберите дату и время в будущем.","timing.prevMonth":"Предыдущий месяц","timing.second":"Секунда","timing.time":"Время","timing.unit.hour":"ч.","timing.unit.minute":"мин.","timing.unit.second":"сек.","timing.zone":"Часовой пояс","timing.zoneNoResults":"Часовые пояса не найдены","timing.zoneNoStored":"Для разовой задачи сохраняется только целевой момент времени, а не часовой пояс. Дата и время интерпретируются в выбранном поясе.","timing.zoneSearch":"Поиск по смещению UTC, ID IANA или городу","title":"Задачи автоматизации","toast.deleteFailed":"Не удалось удалить задачу.","toast.deleted":"Задача удалена.","tool.invoked":"Вызван: {name}"},"session-log-download":{"dialog.close":"Закрыть","dialog.commandFailed":"Не удалось запустить экспорт сессии.","dialog.errorTitle":"Экспорт сессии не удался","dialog.preparingDescription":"Готовится ZIP с этой сессией, её подсессиями и вложениями.","dialog.preparingTitle":"Экспорт сессии","dialog.successDescription":"Браузер загружает ZIP с сессией.","dialog.successTitle":"Загрузка сессии началась","header.more":"Другие действия","menu.download":"Скачать журнал сессии","menu.feedback":"Обратная связь"},"settings":{"close":"Закрыть","connection.connected":"Подключено","connection.connecting":"Подключение","connection.error":"Отключено","connection.reconnect":"Отключено, переподключиться сейчас","connection.restart":"Подключение, перезапустить сейчас","desktop.update.available":"Обновление","desktop.update.checkFailed":"Не удалось проверить обновления. Повторите попытку позже.","desktop.update.checkNetworkFailed":"Не удалось проверить обновления. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.checking":"Проверка обновлений…","desktop.update.downloadDetail":"Загрузка обновления: {percent}%\nЦелевая версия: V{version}","desktop.update.downloadFailed":"Не удалось загрузить обновление. Повторите попытку.","desktop.update.downloadNetworkFailed":"Не удалось загрузить обновление. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.installFailed":"Не удалось установить обновление. Повторите попытку позже.","desktop.update.installNetworkFailed":"Не удалось установить обновление. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.installing":"Подготовка к перезапуску…","desktop.update.progress":"{percent}%…","desktop.update.ready":"Установить и перезапустить","desktop.update.retry":"Повторить обновление","desktop.update.stopFailed":"Не удалось безопасно остановить задачи. Обновление не установлено. Повторите попытку позже.","desktop.update.tasksChanged":"Запущены новые задачи. Проверьте подтверждение обновления ещё раз.","desktop.update.tasksUnavailable":"Статус задач недоступен. Повторите обновление, когда рабочая область будет готова.","desktop.update.verifying":"Проверка файлов обновления…","desktop.update.versionDetail":"{label} — V{version}","developerTools.description":"Инструменты и сведения для отладки и устранения неполадок","developerTools.error":"Не удалось сохранить. Пожалуйста, повторите попытку.","developerTools.title":"Инструменты разработчика","general.currentVersion":"Текущая версия: {version}","general.nav":"Общие","openDocument":"Открыть файл настроек","openDocument.error":"Не удалось открыть файл настроек","shortcut.open":"Открыть настройки","title":"Настройки","trigger":"Настройки"},"settings.account":{"accountInfo":"Подробная информация об аккаунте","addApiKey":"Добавить API-ключ","backToHarness":"Назад в DeepSeek Harness","balance":"Баланс пополнения","balanceSignedOut":"Войдите для просмотра","balanceUnavailable":"Просмотр на платформе","bonusBalance":"Бонусный баланс","bonusEmpty":"Нет доступных бонусов","bonusNoticeTitle":"Бонус начислен","browserDescription":", затем откройте её в браузере для завершения входа.","browserPrompt":"Страница не открылась автоматически? ","browserTitle":"Ожидание входа","cancel":"Отмена","close":"Закрыть","completing":"Завершение входа…","contactUs":"Связаться с нами","copiedLink":"Ссылка скопирована","copyFailed":"Не удалось скопировать","copyLink":"Скопировать ссылку для входа","expired":"Срок действия входа истёк. Повторите попытку.","failed":"Не удалось выполнить операцию. Повторите попытку.","failureTitle":"Не удалось войти","initializing":"Инициализация входа…","loading":"Загрузка…","loginDescription":"Войдите, чтобы создавать, редактировать и делиться дизайн-проектами. Всё сохраняется локально.","loginTitle":"Начать создание","menu":"Меню аккаунта","modelSignInRequired":"Модель недоступна. Пожалуйста, войдите в аккаунт и повторите попытку.","more":"Ещё","nav":"Аккаунт","onboardingArtworkLocale":"ru","onboardingBack":"Назад","onboardingBrand":"DeepSeek Harness","onboardingCompact":"Только результаты","onboardingCompactDescription":"Только результаты в лаконичном и простом интерфейсе","onboardingContinue":"Продолжить","onboardingCredit":"Пополнить баланс","onboardingCreditDescription":"DeepSeek Harness списывает кредиты на основе токенов, потребляемых моделями и инструментами. Пополните баланс заранее, чтобы ваши задачи выполнялись без перерывов. Баланс расходуется только тогда, когда агент выполняет задачу.","onboardingDetailed":"Полные детали","onboardingDetailedDescription":"Полный ход процесса для удобной отладки и поиска причин","onboardingDevelopment":"Программирование и разработка","onboardingDevelopmentDescription":"Редактирование кода, отладка, выполнение команд, управление файлами проекта и другое","onboardingEnter":"Открыть приложение","onboardingFundedTopUp":"Пополнить баланс","onboardingGoTopUp":"Пополнить баланс","onboardingIntroduction":"DeepSeek Harness работает в локальной папке и использует инструменты для чтения и записи файлов на вашем компьютере. Он помогает исследовать и структурировать информацию, создавать документы и таблицы, писать код, устранять неполадки и многое другое.","onboardingKeepSetting":"Продолжить настройку","onboardingLater":"Далее","onboardingLoading":"Загрузка настроек…","onboardingNoCreditDescription":"DeepSeek Harness не может запускать новые задачи без кредитов на балансе. Вы сможете пополнить его позже в профиле → Аккаунты.","onboardingNoCreditTitle":"Пропустить пополнение баланса?","onboardingOffice":"Офисная и творческая работа","onboardingOfficeDescription":"Редактирование документов, организация данных, подготовка презентаций и другое","onboardingProcess":"Какой уровень детализации вам подходит?","onboardingProcessDescription":"Это влияет только на отображение процесса, а не на возможности DeepSeek Harness.","onboardingPurposeDescription":"Мы настроим интерфейс и инструменты под ваш рабочий процесс.","onboardingPurposePrefix":"С чем вам должен помочь","onboardingPurposeSuffix":"?","onboardingRetry":"Повторить","onboardingSaveFailed":"Не удалось сохранить настройки. Попробуйте еще раз.","onboardingSkip":"Пропустить","onboardingSkipDescription":"Вы можете изменить отображение прогресса, производительности и расхода, а также включить инструменты разработки в любое время в профиле → Основные настройки.","onboardingSkipTitle":"Пропустить настройку?","onboardingStandard":"Ключевые детали","onboardingStandardDescription":"Фокус на результатах с отображением самых важных шагов и действий","onboardingStart":"Начать работу","onboardingTopUp":"Пополнить баланс","onboardingUnderstood":"Понятно","onboardingWelcome":"Добро пожаловать в","open":"Открыть браузер","platformFailed":"Не удалось выполнить операцию. Повторите попытку.","platformRetry":"Повторить попытку","profileUnavailable":"Данные аккаунта пока недоступны.","quotaDescription":"DeepSeek Harness не может запустить новую задачу с этим аккаунтом при нулевом балансе. Хотите пополнить баланс? Вы также можете сделать это позже в разделе Настройки → Аккаунт.","quotaTitle":"Нет доступного баланса","quotaTopUp":"Пополнить баланс","retry":"Войти снова","sessionExpired":"Вы вышли из учетной записи, пожалуйста, выполните вход снова.","settings":"Настройки","settingsSignedOutDescription":"Войдите в DeepSeek Harness для получения персонального API-ключа","settingsSignedOutTitle":"Вы не вошли в DeepSeek Harness","signIn":"Войти","signInDescription":"Используйте ваш аккаунт DeepSeek для начала работы.","signOut":"Выйти","signOutDescription":"Выход из аккаунта не приведет к удалению данных. Вы сможете снова войти в этот аккаунт.","signOutRunningDescription":"В данный момент выполняются задачи. Выход из аккаунта прервет их. Выйти сейчас?","signOutUnknownDescription":"Не удалось проверить выполняемые задачи. Выход из аккаунта может прервать задачи, использующие эту учетную запись. Выйти сейчас?","signedIn":"Выполнен вход в DeepSeek","signedOut":"Вход не выполнен","timeoutDescription":"Войдите снова для продолжения.","timeoutTitle":"Время ожидания входа истекло","topUp":"Пополнить","usage":"Просмотр использования","waiting":"Продолжите в браузере"},"settings.agentLoop":{"description":"Управление диспетчеризацией вызовов инструментов агентом.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxParallel":"Параллельные вызовы инструментов","maxParallelHint":"Верхний предел параллельно исполняемых безопасных вызовов в рамках одного шага.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","title":"Цикл агента","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.agentPreset":{"brokenBadge":"Не загрузился","builtInGroup":"Встроенные","close":"Закрыть","creatorDraft":"Набросать свой пресет в режиме «Конструктор»","customGroup":"Свои","enableDevToolsToCreate":"Включите инструменты разработки в основных настройках, чтобы запустить режим создания","enableDevToolsToSetDefault":"Включите инструменты разработки в основных настройках, чтобы выбрать значение по умолчанию","headerHint":"Пресет агента, на котором идёт сессия; зафиксирован при запуске","inUse":"Используется","nav":"Пресеты агента","noDescription":"Без описания.","presetCordisDescription":"Для создания своих пресетов: всё из обычного режима плюс инспекция рантайма, опыты с плагинами и подсказки по авторству пресетов.","presetCordisName":"Конструктор","presetMinimalDescription":"Агент из двух инструментов: постоянный bash и str_replace_editor.","presetMinimalName":"Минимальный режим","presetPtcDescription":"Полноценный агент разработки без инструмента рабочих процессов; остальные инструменты доступны через SDK режима PTC, что позволяет модели объединять многоэтапные операции в одну программу TypeScript.","presetPtcName":"Режим PTC","presetStandardDescription":"Полноценный кодинг-агент: правка файлов, консоль, поиск по файлам и в вебе, скиллы, планирование, цели, субагенты и воркфлоу.","presetStandardName":"Обычный режим","seatHint":"Пресет агента для сессии, которую вы собираетесь запустить","sectionIntro":"Пресет — это состав плагинов, на котором работает агент сессии: его инструменты, промпт и возможности. Скопируйте готовый и допилите под себя или попросите агента набросать свой в режиме «Конструктор».","setDefault":"Сделать основным","switchRefused":"Не удалось переключиться на {name}: {reason}","view":"Посмотреть"},"settings.archivedSessions":{"empty":"Нет архивных сессий.","emptySearch":"Нет подходящих сессий.","loading":"Чтение сессий…","nav":"Архив сессий","search":"Поиск по архивным сессиям","time.days":"{n} дн","time.hours":"{n} ч","time.minutes":"{n} мин","time.months":"{n} мес","time.now":"сейчас","time.years":"{n} г","unarchive":"Разархивировать","unarchiveNamed":"Разархивировать «{title}»","unavailable":"Здесь нет архивных сессий, доступных для восстановления.","ungrouped":"Без группы"},"settings.locale":{"language.title":"Язык"},"settings.models":{"add":"Добавить провайдера","addCatalog":"Сторонний провайдер моделей","addCatalogExhausted":"Все провайдеры из каталога уже настроены.","addCatalogHint":"Выберите OpenAI, Anthropic, Kimi или другого провайдера из встроенного каталога и введите его API-ключ.","addCustom":"Пользовательский API модели","addCustomHint":"Подключите ретранслятор, собственный сервер или любой совместимый с OpenAI или Anthropic эндпоинт по базовому URL, протоколу и списку моделей.","addCustomUnavailable":"Нет доступных API-протоколов для добавления.","addMode":"Способ добавления","addModel":"Добавить модель","advancedHint":"Остальные поля живут в settings.yaml — правьте этот раздел напрямую.","apply":"Применить","applying":"Применение…","baseUrl":"Базовый URL","baseUrlDefault":"По умолчанию у провайдера","cancel":"Отмена","close":"Закрыть","conflict":"Пока карточка была открыта, настройки изменил кто-то ещё. Закройте и откройте заново, чтобы править актуальные значения.","contextWindow":"Окно контекста","contextWindowPlaceholder":"Как у провайдера по умолчанию","create":"Создать провайдера","creating":"Создание…","credentialConfigured":"API-ключ задан","credentialMissing":"API-ключ не задан","customAnthropicBaseUrlPlaceholder":"https://gateway.example","customApi":"Протокол API","customApiUnset":"Не выбран","customBaseUrlInvalid":"Введите корректный URL (HTTP или HTTPS).","customBaseUrlPlaceholder":"https://gateway.example/v1","customDisplayName":"Отображаемое имя","customNeedsBaseUrl":"Своему провайдеру нужен базовый URL.","customNeedsModels":"Своему провайдеру нужна хотя бы одна модель.","customRoute":"Идентификатор провайдера","customRouteHint":"Идентификатор в нижнем регистре, начинается с буквы. По нему провайдер адресуется в запросах, и так же называется его ключ.","customRouteInvalid":"Начните со строчной буквы, дальше строчные буквы, цифры и дефисы.","customRouteTaken":"Такой идентификатор уже занят другим провайдером.","customTag":"Свой","customized":"Настройки изменены","deepSeekAccount":"Аккаунт DeepSeek","deepSeekBaseUrl":"https://api.deepseek.com/anthropic","deepSeekEndpointHint":"Используйте эндпоинт, совместимый с настроенным подключением.","deleteConfirm":"Удалить {provider}","deleteDescription":"Удаление {provider} убирает его настройки. Ключ, которым он пользовался, хранится отдельно и останется.","deleteDescriptionWithCredential":"Удаление {provider} убирает его настройки и сохранённый API-ключ.","deleteTitle":"Удалить {provider}?","deleting":"Удаление {provider}…","edit":"Изменить","editProvider":"Изменить {provider}","fetchAdopt":"Добавить выбранные","fetchDescription":"Вот модели, доступные у этого провайдера. Отметьте те, что нужно добавить.","fetchDeselectAll":"Снять выбор","fetchEmpty":"Провайдер не вернул ни одной модели. Добавьте их вручную.","fetchModels":"Запросить список моделей","fetchNeedsBaseUrl":"Сначала укажите базовый URL, потом запрашивайте.","fetchNoMatches":"Нет подходящих моделей.","fetchSearch":"Поиск моделей","fetchSelectAll":"Выбрать все","fetchTitle":"Выберите модели","fetching":"Запрос к провайдеру…","intro":"Введите свои API-ключи, чтобы пользоваться моделями этих провайдеров.","keyBlank":"Введите API-ключ или оставьте поле пустым, чтобы сохранить прежний.","keyBlankNew":"Введите API-ключ или оставьте поле пустым, если провайдер авторизуется иначе.","keyEnvLocked":"Задан переменной окружения (только чтение)","keyIllegalCharacters":"Ключ в недопустимом формате. Проверьте его.","keyInput":"API-ключ","keyPlaceholder":"Введите API-ключ","keyPlaceholderNative":"Введите API-ключ или оставьте пустым для авторизации из окружения","keyRequired":"Чтобы продолжить, введите API-ключ.","keyStored":"Задан — введите новое значение, чтобы заменить","loadFailed":"Не удалось загрузить список провайдеров","maxTokens":"Максимум выходных токенов","maxTokensPlaceholder":"Как у провайдера по умолчанию","model":"Модель","modelAdvanced":"Ёмкости","modelCapacityInvalid":"Ёмкость задаётся числом, можно с суффиксом K или M.","modelContextInvalid":"Окно контекста — положительное число, например 131072, 256K или 1M.","modelDuplicate":"Каждый идентификатор модели встречается один раз.","modelId":"Идентификатор модели","modelIdDuplicate":"Идентификатор модели должен быть уникальным.","modelIdRequired":"Нужен идентификатор модели.","modelInputImage":"Изображение","modelInputText":"Текст","modelInputTypes":"Типы входных данных","modelMaxTokensInvalid":"Максимум выходных токенов — положительное число, например 8192, 64K или 1M.","modelName":"Отображаемое имя","modelNameInvalid":"Отображаемое имя не может быть пустым.","modelNamePlaceholder":"Пусто — возьмётся идентификатор модели","models":"Модели","modelsCustomized":"Каталог моделей изменён","modelsEmpty":"В выборе моделей не будет ничего. Неуказанные идентификаторы всё равно можно отправлять напрямую.","modelsInherited":"По умолчанию, как в адаптере","nav":"Модели","onboardingDescription":"Настройте официального провайдера DeepSeek, чтобы начать.","onboardingLater":"Настроить позже","onboardingSave":"Сохранить и продолжить","onboardingSaving":"Сохранение…","onboardingTitle":"Добавьте API-ключ, чтобы начать","protocolAnthropicMessages":"Anthropic Messages","protocolOpenAiCompletions":"OpenAI Chat Completions","protocolOpenAiResponses":"OpenAI Responses","provider":"Провайдер","readOnly":"В этой установке файл настроек доступен только для чтения.","remove":"Удалить","removeModel":"Удалить модель","removeProvider":"Удалить {provider}","resetModels":"Вернуть значения по умолчанию","retry":"Повторить","savedProvider":"{provider} сохранён.","settingsPathUnresolvable":"неразрешимый путь настроек","title":"Модели","welcomeBody":"DeepSeek Harness 0.1 находится на стадии тестирования для разработчиков Harness. Многие компоненты требуют дальнейшего улучшения, и мы приветствуем обратную связь от сообщества. Базовые плагины и системные API DeepSeek Harness продолжат активно развиваться в ближайшие месяцы.\n\nМы с нетерпением ждём возможности исследовать границы искусственного интеллекта вместе с разработчиками по всему миру на базе открытой, модульной и повторно используемой инфраструктуры. Приглашаем разработчиков присоединиться к экосистеме плагинов DSH.","welcomeContinue":"Продолжить","welcomeError":"Не удалось сохранить подтверждение. Попробуйте ещё раз.","welcomeTitle":"Уведомление о внутреннем тестировании"},"settings.permission":{"confirm.acknowledge":"Я понимаю риски и хочу продолжить","confirm.cancel":"Отмена","confirm.description":"Полный доступ позволяет новым сессиям реже спрашивать подтверждение и действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете будущим задачам.","confirm.enable":"Включить полный доступ","confirm.title":"Включить полный доступ?","description":"Режим разрешений по умолчанию для новых сессий","loading":"Загрузка","preset.fullAccess":"Полный доступ","preset.readOnly":"Только чтение","preset.workspaceWrite":"Запись в рабочую папку","title":"Разрешения","unavailable":"Недоступно"},"settings.pluginInventory":{"active":"Подключён","clientSyncFailed":"Не удалось синхронизировать некоторые плагины на этой странице. Состояние включения на хосте не изменилось.","clientSyncRetry":"Повторить на этой странице","clientSyncing":"Синхронизация плагинов на этой странице…","condition":"Отключено, когда","conditionalTag":"Условный","configuration":"Настройки","countUnit":"плагинов","disabledTag":"Выключен","empty":"Плагинов нет.","emptySearch":"Подходящих плагинов нет.","enabledIn":"Включено в","enabledTag":"Включён","error":"Плагины временно недоступны.","failed":"Не удалось подключить","failedCountLabel":"с ошибкой","failedTag":"Ошибка","fromPreset":"Из","globalSubtitle":"Общие для системы и каждой сессии","globalTitle":"Глобальные плагины","loading":"Чтение плагинов…","loadingPhase":"Загрузка","matchesInOtherPresets":"ещё {count} совпадений в других пресетах: ","metadataError":"Ошибка метаданных пакета: {error}","moduleLabel":"Модуль","pending":"Ожидает зависимости","presetEnabledTag":"Включено через пресеты","presetOptionBroken":"{name} (не удалось загрузить)","presetOptionDefault":"{name} (по умолчанию)","presetProvidedDetail":"Отключено глобально; предоставляется пресетами агента для каждой сессии","presetSubtitle":"Формируются для каждой сессии пресетами агента","presetTitle":"Плагины сессии","retry":"Повторить","runtime":"Статус","search":"Поиск плагинов","switcherLabel":"Выберите пресет агента для просмотра","tab":"Список плагинов","unloading":"Выгружается","unobserved":"Не подключён","viewInPreset":"Посмотреть в группе пресетов"},"settings.plugins":{"empty":"В этой установке настройки плагинов не выведены.","intro":"Настройка и просмотр плагинов, установленных в этой сборке.","nav":"Плагины","tabs":"Разделы плагинов","title":"Плагины"},"settings.sessionLog":{"description":"Помогает улучшать модели и сервисы DeepSeek.","failed":"Не удалось сохранить настройки","saved":"Настройки сохранены","title":"Отправлять журнал сессий при использовании официального API моделей"},"settings.shell":{"description":"Ограничение времени выполнения команд и объёма их вывода.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxOutputBytes":"Лимит вывода на поток (байты)","maxOutputBytesHint":"Вывод сверх этого лимита сбрасывается во временный файл, чтобы не потеряться.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","timeoutMs":"Таймаут команды (мс)","timeoutMsHint":"Максимальное время выполнения одной команды до её принудительного завершения.","title":"Оболочка (Shell)","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.subagent":{"overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","subagentCapacityHelp":"Общее количество активных субагентов под управлением одного главного агента на всех уровнях рекурсии (главный агент не учитывается). При достижении лимита новые запросы на запуск отклоняются.","subagentCapacityHelpLabel":"О лимите параллелизма субагентов","subagentCapacityInvalid":"Введите целое число от 1 или больше.","subagentDepthHelp":"Ограничивает количество уровней субагентов, которые может создавать агент.","subagentDepthHelpLabel":"О максимальной глубине рекурсии","subagentDepthInvalid":"Введите целое число от 0 или больше.","subagentDepthOne":"Только главный агент может создавать субагентов","subagentDepthOverride":"Если инструмент определяет собственную максимальную глубину рекурсии, приоритет имеет его настройка.","subagentDepthZero":"Отключить субагентов","subagentDescription":"Настройка глубины рекурсии, количества и моделей субагентов.","subagentLimitsTitle":"Ограничения","subagentMaxActive":"Лимит параллельных субагентов","subagentMaxDepth":"Максимальная глубина рекурсии","subagentModelSelectionAllowed":"Модели, доступные агентам для выбора","subagentModelSelectionChoose":"Если включено, агенты могут выбирать провайдера, модель и уровень рассуждений для каждого субагента из списка разрешённых моделей ниже. Применяется только к новым сессиям.","subagentModelSelectionConflict":"Настройки были изменены в другом месте. Отмените черновик и попробуйте снова.","subagentModelSelectionEmpty":"В настоящее время ни один провайдер не предоставляет моделей.","subagentModelSelectionLoadFailed":"Не удалось загрузить модели.","subagentModelSelectionLoading":"Загрузка моделей…","subagentModelSelectionOff":"Субагенты используют настройки по умолчанию или наследуют модель родительского агента. Сохранённые варианты моделей сохраняются.","subagentModelSelectionPartial":"Некоторых провайдеров моделей не удалось загрузить; сохранённые варианты можно удалить.","subagentModelSelectionRequired":"Выберите хотя бы одну модель перед сохранением.","subagentModelSelectionRetry":"Повторить","subagentModelSelectionTitle":"Выбор модели","subagentModelSelectionToggle":"Разрешить агентам выбирать модели для субагентов","subagentModelSelectionUnavailable":"В настоящее время недоступно","subagentModelSelectionUnavailableGroup":"Сохранено, но сейчас недоступно","subagentTitle":"Субагент","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.theme":{"appearance.dark":"Тёмная","appearance.light":"Светлая","appearance.system":"Как в системе","appearance.title":"Оформление","fontSize.decrease":"Уменьшить размер шрифта","fontSize.description":"Влияет только на содержимое диалога","fontSize.increase":"Увеличить размер шрифта","fontSize.title":"Размер шрифта","fontSize.unit":"пкс"},"settings.webSearch":{"apiKey":"API-ключ","apiKeyHint":"Хранится отдельно от файла настроек. Оставьте пустым, чтобы сохранить текущий ключ.","apiKeySet":"Ключ настроен.","apiKeyUnset":"Ключ не настроен; поиск недоступен, пока ключ не указан.","baseUrl":"Конечная точка (Endpoint)","baseUrlHint":"Оставьте пустым для использования значения по умолчанию провайдера.","description":"Настройка поискового провайдера DeepSeek.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxUses":"Макс. поисков на запрос","maxUsesHint":"Сколько раз за один запрос допускается выполнять поиск до формирования ответа.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","title":"Веб-поиск","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"shortcuts":{"application":"Приложение","approval":"Область подтверждения","cancel":"Отмена","clear":"Удалить","clear-search":"Очистить поиск","close":"Закрыть горячие клавиши","close-confirmation":"Закрыть подтверждение","conflict":"Уже используется в «{commands}»","description":"Просмотр и редактирование доступных горячих клавиш и действий ввода","desktop-document":"userData/keybindings.json","desktop-reload":"перезапустите Harness","dismiss":"Закрыть меню или верхнее диалоговое окно","edit-label":"Изменить сочетание клавиш для: {command}","empty":"Сочетания клавиш не найдены","future":"Конфигурация горячих клавиш в {location} была создана более новой версией. Обновите Harness и повторите попытку.","global-hint":"Доступно отовсюду","input":"Поле ввода сообщений","invalid":"Конфигурация горячих клавиш в {location} повреждена. Создайте резервную копию и исправьте конфигурацию, затем выполните: {reload}.","macos-web-help":"Используйте Command+/, Command+,, Command+Backslash, Control+Backquote, Command+Option+клавиша или Command+Shift+клавиша. Также поддерживаются комбинации из 3–4 различных модификаторов. Браузерные или системные сочетания клавиш могут не доходить до страницы.","menus":"Меню и диалоговые окна","modified-count":"Изменено: {count}","modifier-required":"Комбинация должна содержать Command, Ctrl или Alt.","move":"Перемещение по меню","native-failed":"Не удалось включить перехват клавиш десктопа. Выйдите из режима записи и повторите попытку.","not-ready":"Горячие клавиши не готовы. Пожалуйста, попробуйте еще раз.","open":"Открыть горячие клавиши","read":"Не удалось прочитать {location}. Проверьте права доступа, затем выполните: {reload}.","record":"Нажмите сочетание клавиш","record-help":"Отпустите клавиши для сохранения. Tab — переключение между действиями; Esc — отмена.","reserved":"Эта комбинация зарезервирована для системных действий или редактирования текста.","reset":"По умолчанию","reset-all":"Сбросить все","reset-description":"Восстановить стандартные сочетания клавиш для этой платформы. Все измененные или удаленные сочетания будут сброшены до исходных. Настройки для других платформ не изменятся.","reset-failed":"Не удалось восстановить стандартные значения. Ваши горячие клавиши не изменились. Попробуйте еще раз.","reset-saved":"Стандартные сочетания клавиш восстановлены","reset-title":"Сбросить все сочетания клавиш?","retry-save":"Повторить сохранение","review":"Я проверил актуальную конфигурацию","saved":"Изменено","search":"Поиск сочетаний клавиш","select":"Выбрать пункт меню","settings":"Горячие клавиши","stale":"Конфигурация сочетаний клавиш или доступные команды изменились. Проверьте актуальные привязки перед сохранением.","title":"Горячие клавиши","too-many-keys":"Удерживайте не более двух неклавишных модификаторов. Отпустите клавиши и попробуйте снова.","unbound":"Нет сочетания","unsupported-browser":"Этот браузер пока не поддерживает данную комбинацию.","unsupported-key":"Эта клавиша не поддерживается.","using-accepted":"Остаются активными последние успешно прочитанные привязки.","using-defaults":"Используются стандартные привязки.","view":"Изменить сочетания клавиш","web-document":"запись dsh.keybindings.v1 в localStorage этого сайта","web-help":"Комбинации в браузере: Mod+/, Mod+Shift+,, Mod+Shift+.. Mod — это Command на Mac и Ctrl в других системах.","web-reload":"перезагрузите страницу","windows-web-help":"Используйте Ctrl+/, Ctrl+,, Ctrl+Alt+клавиша или Ctrl+Shift+клавиша. Также поддерживаются комбинации из 3–4 различных модификаторов. Браузерные или системные сочетания клавиш могут не доходить до страницы.","write-failed":"Не удалось сохранить. Ваши прежние сочетания клавиш и текущий черновик сохранены. Попробуйте еще раз."},"shortcuts.layout":{"toggle":"Переключить левую боковую панель"},"sidebar":{"panels.label":"Глобальные панели","session.new":"Новая сессия","session.new.label":"Новая сессия","toggle.collapse":"Свернуть панель","toggle.open":"Открыть панель"},"sidebarBrowser":{"address.changed":"URL изменён","address.placeholder":"Введите адрес HTTP(S)","address.unknown":"Страница перешла по адресу; текущий компонент не может прочитать новый URL.","back":"Назад","error.application-origin":"Встроенный браузер не может открывать само приложение DSH.","error.credentials":"Адрес не может содержать имя пользователя или пароль.","error.empty":"Введите адрес.","error.invalid":"Адрес недействителен или слишком длинен.","error.protocol":"Поддерживаются только адреса HTTP и HTTPS; для локальных файлов используйте предпросмотр документов.","external":"Открыть в системном браузере","forward":"Вперёд","go":"Перейти","guide.description":"Просмотр страниц HTTP(S)","guide.title":"Браузер","load.failed":"Не удалось загрузить страницу; обновите её или откройте в системном браузере.","load.failed.detail":"Сбой загрузки страницы ({code}): {description}","loading":"Открытие…","reload":"Обновить","restore.action":"Восстановить страницу","restore.previous":"Ранее открытая","sandbox.disable":"Отключить ограничения песочницы","sandbox.enable":"Включить ограничения песочницы","sandbox.warning":"Ограничения песочницы отключены; страница может управлять верхнеуровневым приложением, выполнять скачивания, открывать модальные окна и блокировать ввод.","shortcut.noSession":"Сначала откройте сессию","start":"Введите адрес HTTP(S) для начала работы","type.label":"Браузер"},"sidebarCodePreview":{"copied":"Скопировано","copy":"Копировать","title":"Код"},"sidebarDocumentPreview":{"autoRefresh":"Автообновление","autoRefresh.disable":"Отключить автообновление","autoRefresh.enable":"Включить автообновление","changed":"Файл изменился, показано предыдущее содержимое.","error.notFound":"Файл не найден. Возможно, он был перемещён или удалён.","error.notRegularFile":"Не является обычным файлом, нечего отобразить.","error.notText":"Не текстовый файл, предпросмотр пока недоступен.","error.tooLarge":"Размер страницы превышает лимит {limit} и не может быть прочитан.","error.unavailable":"Сбой чтения: {message}","loadMore":"Загрузить ещё","loading":"Чтение…","openWith":"Открыть с помощью","reload":"Перечитать файл","reloadNow":"Обновить","rendererUnavailable":"Предпросмотр {name} недоступен.","resourceUnavailable":"Служба файловых ресурсов недоступна.","retry":"Повторить","unsupportedFile":"Предпросмотр для этого типа файлов пока недоступен.","viewer.text":"Простой текст","wrap.aria":"Перенос строк","wrap.disable":"Отключить перенос строк","wrap.enable":"Включить перенос строк"},"sidebarExcel":{"charts":"диаграммы","conditionalFormatting":"условное форматирование","encoding":"Не удалось прочитать кодировку текста. Сохраните файл как UTF-8 или UTF-16 с BOM и повторите попытку.","featureSeparator":", ","formulaWarning":"Эта книга содержит формулы. Отображаемые результаты могут отсутствовать или быть неточными.","images":"изображения","invalid":"Не удалось открыть электронную таблицу. Проверьте формат, содержимое или защиту паролем.","language":"ru","loading":"Открытие электронной таблицы…","retry":"Повторить","shapes":"фигуры","timeout":"Истекло время ожидания открытия книги. Попробуйте файл меньшего размера.","title":"Электронная таблица","tooLarge":"Размер книги превышает лимит предварительного просмотра.","unsupportedNotice":"Этот просмотрщик не поддерживает {features} в данной книге. Откройте её в системном приложении для полного доступа."},"sidebarFiles":{"autoRefresh":"Автообновление","autoRefresh.disable":"Отключить автообновление","autoRefresh.enable":"Включить автообновление","empty":"Файлы не найдены","entry.other":"Не является файлом или папкой и не может быть открыт.","error.notDirectory":"Указанный путь не является каталогом.","error.notFound":"Каталог больше не существует. Возможно, он был перемещён или удалён.","error.outsideWorkspace":"Каталог находится за пределами рабочей области, чтение заблокировано.","error.unavailable":"Ошибка чтения: {message}","guide.description":"Просматривайте файлы в рабочей области сессии и открывайте любой из них.","guide.title":"Файлы","loading":"Чтение…","noWorkspace":"У этой сессии нет каталога рабочей области.","reload":"Перезагрузить","shortcut.noSession":"Сначала выберите сессию","truncated":"Слишком много записей; показана только часть.","type.label":"Файлы"},"sidebarImage":{"failed":"Не удалось отобразить изображение.","loading":"Открытие изображения…","preview":"Предпросмотр изображения: {name}","title":"Изображение","unsupported":"Для предпросмотра изображения требуется полное содержимое файла."},"sidebarOffice":{"busy":"Служба предпросмотра занята. Повторите попытку позже.","changed":"Файл изменился во время чтения. Откройте предпросмотр заново.","closeDetails":"Скрыть сведения о шрифтах","failed":"Конвертация документа не создала пригодный PDF. Проверьте файл и повторите попытку.","invalid":"Предпросмотр этого офисного файла невозможен. Файл повреждён, защищён паролем или имеет неверное расширение.","loading":"Чтение…","missingFontsCount":"Шрифтов: {count}","missingFontsDescription":"Эти шрифты недоступны для предпросмотра. Текст и верстка могут отличаться от исходного документа.","missingFontsTitle":"Отсутствующие шрифты","retry":"Повторить","timeout":"Превышено время ожидания конвертации документа. Повторите попытку.","title":"Офисный документ","tooLarge":"Размер файла или сконвертированного PDF превышает лимит предпросмотра. Уменьшите размер файла или скорректируйте настройки.","unavailable":"Предпросмотр офисных документов недоступен. Включите службу предпросмотра документов на компьютере, где запущен DeepSeek Harness.","viewMissingFonts":"Отсутствующие шрифты: {count}. Нажмите для просмотра."},"sidebarPdf":{"failed":"Не удалось отобразить PDF: {message}","loading":"Открытие PDF…","pageImage":"Страница PDF {page}","password":"Этот PDF защищён паролем; предпросмотр документов с паролем не поддерживается.","rendering":"Рендеринг страницы…","retry":"Повторить","title":"PDF","unsupported":"Для предпросмотра PDF требуется полное содержимое файла.","workerFailed":"Процесс рендеринга PDF не смог продолжить работу. Попробуйте снова."},"sidebarRight":{"chrome.collapse":"Свернуть панель","chrome.collapseAria":"Свернуть правую боковую панель","chrome.exitFullscreen":"Выйти из полноэкранного режима","chrome.expand":"Развернуть панель","chrome.expandAria":"Открыть правую боковую панель","chrome.toFullscreen":"На весь экран","command.budget":"Максимальное количество панелей: две","command.close":"Закрыть текущую страницу или окно","command.collapsed":"Сначала разверните правую панель","command.empty":"Сначала откройте страницу","command.float":"Это действие недоступно в плавающей панели","command.fullscreen":"На весь экран","command.noFocus":"Сначала активируйте панель правой боковой панели","command.noRefresh":"Эту страницу нельзя обновить","command.noSession":"Сначала выберите сессию","command.refresh":"Обновить текущую страницу","command.stale":"Страница изменилась; активируйте ее снова","command.toggle":"Переключить правую панель","command.width":"Недостаточно ширины для разделения, расширьте боковую панель","dock.addTab":"Добавить вкладку","dock.closeFloat":"Закрыть плавающее окно","dock.closeTab":"Закрыть вкладку","dock.dockFloat":"Закрепить в панели","dock.drop.bottom":"Разделить по горизонтали снизу","dock.drop.center":"Переместить сюда","dock.drop.left":"Разделить по вертикали слева","dock.drop.right":"Разделить по вертикали справа","dock.drop.top":"Разделить по горизонтали сверху","dock.emptyPane":"Пустая панель","dock.splitPane":"Разделить вправо","dock.splitPaneDisabled":"Максимум две панели","dock.splitPaneNarrow":"Недостаточно ширины для разделения; увеличьте боковую панель","tab.guide.title":"Начало","tab.unavailable":"Пока нет средств для отображения данного типа содержимого."},"sidebarTerminal":{"attachmentEnded":"Подключение к терминалу завершено. Переподключитесь для продолжения.","cleanupFailed":"Не удалось завершить терминал «{title}»: {message}","closed":"Терминал закрыт.","connecting":"Подключение…","control":"Перехватить управление","creating":"Запуск…","description":"Выполнение команд в рабочей области сессии","disconnected":"Отключено.","exited":"Процесс завершился с кодом {code}","failed":"Ошибка терминала: {message}","inputFull":"Буфер ввода переполнен. Переподключитесь и повторите попытку.","invalidOutput":"Не удалось получить экран терминала. Переподключитесь для восстановления.","loading":"Чтение окружения терминала…","missingTerminal":"Этот терминал больше не существует. Откройте новый терминал.","new":"Новый терминал","readonly":"Этот вид доступен только для чтения.","reconnect":"Переподключиться","recoveryFailed":"Не удалось восстановить терминал: {message}","rename":"Название терминала","retry":"Повторить","retryRecovery":"Повторить восстановление терминала","shell":"Выбрать командную оболочку","shellEmpty":"Нет доступных оболочек","shellLoading":"Загрузка оболочек…","shortcut.noSession":"Сначала выберите сессию","terminalLimit":"Достигнут лимит терминалов. Закройте неиспользуемые терминалы и повторите попытку. Завершённые терминалы также учитываются в лимите.","title":"Терминал","unavailable":"Недоступно"},"sidebarTextpreview":{"changed":"Изменено","error.notFound":"Файл не найден на диске","error.notRegularFile":"Объект не является обычным файлом","error.notText":"Двоичный файл не может быть отображён как текст","error.outsideWorkspace":"Файл находится за пределами рабочей области","error.tooLarge":"Файл слишком велик; боковая панель не читает файлы более {limit}.","error.unavailable":"Ошибка чтения: {message}","loadMore":"Загрузить больше строк","loading":"Загрузка предпросмотра…","readonly":"Только чтение","reload":"Перечитать файл","reloadNow":"Перезагрузить","retry":"Повторить","title":"Предпросмотр файла","truncated":"Показаны первые {lines} строк из {total}","wrap":"Перенос строк"},"skill":{"menu.userOnly":"только вручную","row.failed":"Не удалось загрузить скилл","row.inspect":"Инспектировать","row.instructions":"Инструкции","row.preparing":"Подготовка к загрузке навыка","row.running":"Загрузка скилла","row.stopped":"Загрузка скилла остановлена","row.title":"Навык"},"slash.menu":{"command":"Команды","crumbs.aria":"Навигация по папкам","drill.aria":"Открыть папку","drill.hint":"Открыть папку","drill.key":"Tab","loading":"Загрузка…","skill":"Скиллы","subagent":"Субагенты","suggestions.aria":"Подсказки по вводу"},"subagent":{"activity.completed":"завершено","activity.inactive":"не работает","activity.running":"работает","branch.collapse":"Свернуть потомков {label}","branch.expand":"Развернуть потомков {label}","count.running.one":"{count} субагент работает","count.running.other":"{count} субагентов работает","count.total.one":"{count} субагент","count.total.other":"{count} субагентов","duration.days":"{days} дн","duration.daysHours":"{days} дн {hours} ч","duration.exactDays":"{days} дн {hours} ч {minutes} мин {seconds} с","duration.exactTitle":"Всего активного времени: {duration}","duration.hours":"{hours} ч {minutes} мин {seconds} с","duration.minutes":"{minutes} мин {seconds} с","duration.months":"~{months} мес","duration.monthsDays":"~{months} мес {days} дн","duration.seconds":"{seconds} с","duration.years":"~{years} г","duration.yearsMonths":"~{years} г {months} мес","load.error":"Не удалось загрузить субагентов","loading.label":"Загрузка субагентов…","mode.continuable":"с продолжением","mode.oneShot":"разовый","mode.unknown":"неизвестный режим","open.sidebar":"Открыть в боковой панели","open.sidebar.aria":"Открыть «{label}» на боковой панели","readonly.body":"Родительская сессия офлайн; откройте её заново, чтобы продолжить переписку.","readonly.oneShot.body":"Разовые задачи не принимают продолжения; здесь можно изучить полную запись выполнения.","readonly.oneShot.title":"Запись разового субагента","readonly.title":"Пока этот субагент доступен только для чтения","readonly.unknown.body":"Прочитайте дочернюю сессию, чтобы определить, можно ли её продолжить.","retry":"Повторить","sidebar.chat":"Чат","switcher.aria":"Переключить субагента: {title}","tokens.million":"{value} млн","tokens.thousand":"{value} тыс.","tokens.total":"{value} токенов","tree.aria":"Сессии субагентов"},"trajectory":{"attachment.imageName":"Изображение {index}","attachment.list":"Вложения","block.label":"Блок #{index} {type}","block.openSummary":"Открыть сводку вызова инструментов блока #{index}","block.openSummaryTitle":"Открыть сводку вызова инструментов","code.copyOutput":"Копировать вывод","code.copySource":"Копировать код","code.originalJson":"Исходный JSON","code.output":"Вывод","code.running":"Выполняется…","code.source":"Код","column.input":"Входные данные","column.model":"Модель","column.output":"Результат","column.think":"Мысли","column.time":"Время","column.tools":"Инструменты","details.assistantMessage":"Assistant Message","details.close":"Close details","details.compacted":"Compacted","details.error":"Ошибка","details.event":"Event details","details.failure.auth":"API key is invalid","details.hierarchy":"Hierarchy","details.model":"Model","details.provider":"Provider","details.purpose":"Purpose","details.resize":"Resize event details","details.resizeTitle":"Drag to resize. Double-click to reset.","details.result":"Result","details.retry":"Retry","details.retryDelay":"Retry delay","details.scheduled":"Scheduled","details.source":"Source","details.status":"Status","details.subtoolCalls":"Subtool calls","details.toolCall":"Tool Call","details.toolCalls":"Tool calls","group.compaction":"Compaction {seq}","group.message":"Message","group.step":"Step {step}","history.clickToLoadEarlier":"Click to load earlier history","history.loadEarlier":"Load earlier history","history.loadingEarlier":"Загрузка…","history.loadingEarlierAria":"Загрузка…","history.loadingTrajectory":"Загрузка…","kind.assistant":"ASSISTANT","kind.compacted":"COMPACTED","kind.context":"CONTEXT","kind.message":"Message","kind.sub":"Sub","kind.subtool":"SUBTOOL","kind.system":"SYSTEM","kind.tool":"TOOL","kind.user":"USER","layout.compacted":"Context compacted","layout.compacting":"Compacting context…","layout.compactionFailed":"Compaction failed","layout.compactionInterrupted":"Compaction was interrupted before completion.","layout.fileAttachments":"Файлы ×{count}","layout.imageCount":"Изображений: ×{count}","layout.initialSystemPrompt":"Initial System Prompt","layout.systemPromptAndToolsUpdated":"System Prompt and Tools Updated","layout.systemPromptUpdated":"System Prompt Updated","layout.toolAdded":"Инструмент добавлен: {name}","layout.toolCallOnly":"Tool call only","layout.toolRemoved":"Инструмент удален: {name}","layout.toolUpdateNotice":"Инструменты обновлены","layout.toolsAdded":"Добавлено: {names}","layout.toolsAddedCount":"Добавлено: {count}","layout.toolsChanged":"Добавлено: {added}, удалено: {removed}","layout.toolsRemoved":"Удалено: {names}","layout.toolsRemovedCount":"Удалено: {count}","layout.toolsUpdated":"Tools Updated","options.json":"Request options JSON","options.notRecorded":"Options not recorded","record.json":"JSON","record.namedParametersJson":"{name} parameters JSON","record.noContent":"No content","record.noOutput":"No output","record.noPayload":"No payload captured","record.noResult":"No result captured","record.outputJson":"Result JSON","record.parameters":"Parameters","record.parametersJson":"parameters JSON","record.payloadJson":"Payload JSON","record.resultJson":"Result JSON","record.schemaUnavailable":"Schema unavailable","record.systemPrompt":"System Prompt","record.systemPromptMissing":"No system prompt in this request","record.thinking":"Thinking","record.toolCallOnly":"(tool call only)","record.tools":"Tools","record.toolsMissing":"No tools in this request","record.wrapLines":"Wrap lines","request.collapsedAssistant":"assistant","request.collapsedSummary":"Collapsed {kind} summary, {summary}","request.collapsedTurn":"turn","request.compaction":"Compaction · {section}","request.compactionPurpose":"Compaction","request.label":"Request #{request}","request.labelCompaction":"Request #{request} · Compaction","request.noContent":"no content","request.retryProgress":"{retry} of {maximum}","request.rowAria":"{request}{kind}, {content}","request.rowAriaCompaction":"Request {request}, compaction","request.rowPrefix":"Request {request}, ","section.betweenTurns":"Between turns","source.goal":"Goal","source.goalRound":"Goal · Round {round}","source.messageJson":"Message source JSON","source.notRecorded":"Source not recorded","source.plugin":"Plugin","source.pluginNamed":"Plugin · {plugin}","source.unknown":"Unknown","source.user":"User","status.completed":"Завершено","status.failed":"Ошибка","status.pending":"Pending","summary.steps.one":"{count} step","summary.steps.other":"{count} steps","summary.toolCalls.one":"{count} tool call","summary.toolCalls.other":"{count} tool calls","tab.diff":"Diff","tab.options":"Options","tab.payload":"Payload","tab.preview":"Preview","tab.raw":"Raw","tab.rawOutput":"Raw Output","tab.result":"Result","tab.schema":"Schema","tab.source":"Source","tab.summary":"Summary","tab.systemPrompt":"System Prompt","tab.timing":"Timing","tab.tools":"Tools","tab.usage":"Usage","timeline.aria":"Trajectory timeline","timeline.noTimingData":"No timing data","timeline.overviewAria":"Timeline overview; drag horizontally to focus events","timeline.started":"Started {time}","timeline.total":"Total {duration}","timeline.ttftDecoding":"TTFT {ttft} · Decoding {decoding}","timing.duration":"Длительность","timing.durationTooShort":"Слишком малое время","timing.firstTokenUnavailable":"First token unavailable","timing.generation":"Generation","timing.notAvailable":"Not available","timing.notRecorded":"Not recorded","timing.outputTokensUnavailable":"Output токенов unavailable","timing.request":"Request Timing","timing.sessionTimestamps":"Session timestamps","timing.sessionTimestampsRunning":"Session timestamps (running)","timing.showLocalTime":"Show local time","timing.showUnixTimestamp":"Show Unix timestamp","timing.source":"Timing source","timing.started":"Started","timing.stepStartUnavailable":"Step start unavailable","timing.throughput":"Throughput","timing.totalDuration":"Общая длительность","timing.ttft":"TTFT","timing.usageUnavailable":"Usage unavailable","toolbar.actualTime":"Actual time","toolbar.aria":"Trajectory toolbar","toolbar.calls":"Calls","toolbar.collapseCalls":"Collapse calls","toolbar.collapseTurns":"Collapse turns","toolbar.duration":"Длительность","toolbar.expandCalls":"Expand calls","toolbar.expandTurns":"Expand turns","toolbar.search":"Search trajectory","toolbar.searchPlaceholder":"Search","toolbar.turns":"Turns","toolbar.useActualDuration":"Фактическая длительность","toolbar.useEqualWidth":"Use equal-width operations","turn.label":"Turn {turn}","unit.milliseconds":"{value} ms","unit.seconds":"{value} s","unit.tokens":"{value} tok","unit.tokensPerSecond":"{value} tok/s","usage.cacheCreated":"Cache created","usage.cached":"Cached","usage.content":"Content","usage.input":"Input","usage.notReported":"Usage not reported","usage.other":"Other","usage.output":"Output","usage.reasoning":"Reasoning","usage.sessionCumulative":"Session cumulative","usage.thisRequest":"This request","usage.tokens":"Токены","view.trajectory":"Trajectory"},"voice-input":{"auto":"Определять автоматически","cancel":"Отмена","cancelPrepare":"Отменить подготовку","cancelled":"Голосовой ввод отменён.","cloud":"Аудиозапись будет отправлена в выбранный облачный сервис.","cloudReady":"Облачное распознавание речи готово к работе.","conflict":"Ваш черновик изменился. Распознанный текст сохранён и может быть вставлен в текущую позицию курсора.","dictate":"Диктовка","discard":"Удалить расшифровку","download.certificate":"Не удалось скачать {resource}: сбой проверки сертификата.","download.dns":"Не удалось скачать {resource}: не удалось разрешить адрес загрузки.","download.http":"Не удалось скачать {resource}: служба загрузки вернула HTTP {status}.","download.integrity":"Загрузка {resource} не завершена или не прошла проверку целостности.","download.network":"Не удалось скачать {resource}: сбой подключения к службе загрузки.","download.storage":"Не удалось сохранить {resource}: недостаточно места на диске или нет прав на запись.","download.timeout":"Превышено время ожидания загрузки {resource}.","download.unknown":"Не удалось подготовить {resource}.","downloadAdvice.certificate":"Проверьте системные часы, доверенные сертификаты и настройки прокси на машине с DSH, затем повторите попытку.","downloadAdvice.dns":"Проверьте настройки DNS и прокси на машине с DSH. Убедитесь, что домен источника загрузки разрешается, затем повторите попытку.","downloadAdvice.http":"Убедитесь, что адрес загрузки доступен и прокси имеет доступ к службе загрузки, либо повторите попытку позже.","downloadAdvice.integrity":"Повторите загрузку. Другие завершённые и проверенные файлы будут сохранены.","downloadAdvice.network":"Убедитесь, что машина с DSH имеет доступ к источнику загрузки и сервисам загрузки моделей. При необходимости настройте прокси на этой машине, затем повторите попытку.","downloadAdvice.storage":"Проверьте свободное место на диске и права на запись в каталог моделей на машине с DSH, затем повторите попытку.","downloadAdvice.timeout":"Проверьте сетевое подключение или прокси на машине с DSH, затем повторите попытку позже. Проверенные скачанные файлы сохранены.","downloadAdvice.unknown":"Проверьте сеть, свободное место на диске и права доступа к каталогу моделей на машине с DSH, затем повторите попытку.","downloadBytes":"Загрузка: {completed} / {total} МБ, {percent}%","downloadCode":"Код ошибки: {code}","downloadProgress":"Ход загрузки","downloadSource":"Источник загрузки: {source}","downloadUnknown":"Загружено {completed} МБ","elapsed":"Ожидание {seconds} с","empty":"Речь не распознана","failed":"Сбой распознавания речи: {message}","insert":"Вставить текст","interrupted":"Запись была прервана. Пожалуйста, повторите попытку.","ja":"Японский","ko":"Корейский","language":"Язык распознавания","loading":"Загрузка служб распознавания…","local":"Аудио распознаётся локально на машине с DSH. При первой настройке модели по умолчанию скачиваются с Hugging Face, поэтому машина должна иметь доступ к Hugging Face и его сервисам загрузки моделей. Если требуется прокси, настройте его на этой машине.","permission":"Доступ к микрофону отключён. Разрешите его в настройках браузера и системы.","preparation.cancelled":"Подготовка отменена. Завершённые загрузки сохранены.","preparation.cancelling":"Отмена подготовки…","preparation.checking":"Проверка локальных ресурсов…","preparation.loading":"Загрузка {name}…","preparation.ready":"Локальное распознавание речи готово к работе.","preparation.standby":"Локальные ресурсы подготовлены. Начало записи активирует распознавание.","preparation.unprepared":"При первом использовании будут загружены локальные модели распознавания.","preparation.waking":"Активация локального распознавания речи…","preparationFailed":"Сбой подготовки: {message}","preparationSteps":"Этапы подготовки","prepare":"Скачать и подготовить","provider":"Сервис распознавания","reconnecting":"Подключение к распознаванию речи…","recording":"Запись…","requesting":"Предоставьте доступ к микрофону для продолжения…","retryPrepare":"Повторить подготовку","retryRecording":"Записать снова","setup.disk":"Место на диске","setup.diskValue":"Требуется около {gb} ГБ для моделей, среды выполнения и кэша загрузок","setup.estimateNote":"Это ориентировочные значения; при медленном подключении может потребоваться больше времени. Загрузки используются повторно; неактивные модели по умолчанию освобождают память.","setup.local":"Локальные модели будут загружены на машину с DSH. Python или компилятор не требуются.","setup.memory":"Память","setup.memoryValue":"Около {gb} ГБ при загруженной модели; при распознавании может потребоваться больше","setup.time":"Первичная настройка","setup.timeValue":"Занимает примерно {min}–{max} мин в зависимости от сети и параметров машины","setupPrompt.body":"Голосовой ввод включён. При первом использовании требуется скачать и подготовить локальные модели распознавания. Откройте параметры плагина для оценки требуемого дискового пространства, памяти и времени перед началом настройки.","setupPrompt.details":"Открыть настройки плагина голосового ввода","setupPrompt.later":"Позже","setupPrompt.open":"Перейти к настройке","setupPrompt.title":"Настройте голосовой ввод перед записью","setupPrompt.trigger":"Настроить голосовой ввод","setupPrompt.unavailableBody":"Откройте сведения о плагине голосового ввода, чтобы проверить статус распознавания речи, ход подготовки или ошибки.","setupPrompt.unavailableTitle":"Распознавание речи не готово","short.downloading":"Загрузка","short.failed":"Сбой настройки","sourceAuto":"Автоматически (рекомендуется)","sourceAutoHelp":"Использовать первый ответивший источник и переключаться на другой при сбое загрузки.","sourceChoice":"Источник загрузки моделей","sourceHuggingFace":"Hugging Face","sourceManualHelp":"Загружать только из выбранного источника. Проверенные ранее загруженные файлы используются повторно.","sourceMirror":"HF-Mirror (зеркало в Китае)","start":"Начать запись","step.check":"Проверка локальных ресурсов","step.load":"Загрузка {name}","step.model":"Подготовка модели распознавания","step.vad":"Подготовка модели обнаружения голоса","step.verify":"Проверка файлов модели","stepStatus.cancelled":"Отменено","stepStatus.complete":"Завершено","stepStatus.failed":"Сбой","stepStatus.pending":"Не начато","stepStatus.running":"Выполняется","stop":"Остановить и расшифровать","tooLarge":"Запись превышает ограничение службы. Попробуйте сделать более короткую запись.","transcribingShort":"Расшифровка…","unavailable":"Этот браузер не поддерживает запись аудио. Используйте браузер с поддержкой микрофона.","wakingShort":"Активация…","yue":"Кантонский"},"workflowRun":{"member.empty":"Пустое имя участника","member.open":"Открыть {name}","phase.empty":"Пустое имя фазы","phase.unassigned":"Вне фаз","run.empty":"Ни один участник не запущен","run.members.one":"{count} участник","run.members.other":"{count} участников","run.title":"{name}","status.cancelled":"Отменено","status.completed":"Завершено","status.failed":"Ошибка","status.interrupted":"Прервано","status.running":"Работает","statusCount.cancelled":"Отменено: {count}","statusCount.completed":"Завершено: {count}","statusCount.failed":"Ошибок: {count}","statusCount.interrupted":"Прервано: {count}","statusCount.running":"Работает: {count}"},"workspace":{"actions.archive":"Архивировать","actions.newSession":"Новая сессия","actions.newSession.aria":"Новая сессия в {name}","actions.pin":"Закрепить","actions.session.aria":"Действия с сессией {name}","actions.unarchive":"Разархивировать","actions.unpin":"Открепить","actions.workspace.aria":"Действия с рабочей папкой {name}","archive.confirm.action":"Остановить и архивировать","archive.confirm.activity":"Работа, которая будет остановлена","archive.confirm.desc":"В «{title}» всё ещё выполняется работа. При архивации она будет остановлена; вы сможете восстановить сессию позже через «Показать архив» в боковой панели, но остановленные задачи не возобновятся автоматически.","archive.confirm.jobs.one":"{n} фоновая задача: {names}","archive.confirm.jobs.other":"{n} фоновых задач: {names}","archive.confirm.listSeparator":", ","archive.confirm.other.one":"{n} другой элемент работы ({kind})","archive.confirm.other.other":"{n} других элементов работы ({kind})","archive.confirm.pending":"Остановка и архивация…","archive.confirm.schedules.one":"{n} запланированное напоминание: {names}","archive.confirm.schedules.other":"{n} запланированных напоминаний: {names}","archive.confirm.subagents.one":"{n} запущенный субагент: {names}","archive.confirm.subagents.other":"{n} запущенных субагентов: {names}","archive.confirm.title":"Остановить и архивировать эту сессию?","archive.confirm.turn":"Текущий ход выполнения","conflict.named":"Рабочая папка «{name}» уже есть.","date.ymd":"{d}.{m}.{y}","defaultWorkspace.failed":"Не удалось создать рабочую область по умолчанию. Используйте «Выбрать рабочую область» для выбора папки.","delete.desc":"Уберёт «{name}» из списка рабочих папок. Сама папка и журналы сессий останутся, а её сессии переедут в «Без папки».","delete.pending":"Удаление рабочей папки…","delete.workspace":"Удалить рабочую папку","empty.noMatches":"Ничего не найдено","empty.none":"Сессий пока нет","empty.noneArchived":"Архивированных сессий пока нет","empty.viewOthers":"Просмотреть другие сессии","field.sessionName":"Название сессии","field.workspaceName":"Название рабочей папки","filterBy.label":"Фильтр сессий","folderError.retry":"Выбрать снова","folderError.title":"Не удалось открыть папку","group.ungrouped":"Без папки","groupBy.flat":"Одним списком","groupBy.label":"Группировать","groupBy.workspace":"По рабочим папкам","groupBy.workspaceTree":"Дерево рабочей области","hover.copied":"Скопировано","hover.created":"Создано {time}","menu.addWorkspace":"Добавить рабочую папку…","menu.archiveSession":"Убрать сессию в архив","menu.fork":"Ответвить сессию","menu.pinSession":"Закрепить сессию","menu.unarchiveSession":"Разархивировать сессию","menu.unpinSession":"Открепить сессию","orderBy.label":"Сортировать","orderBy.manual":"Вручную","orderBy.updated":"По изменению","picker.loading":"Загрузка рабочих папок…","rename":"Переименовать","rename.session.title":"Переименовать сессию","rename.workspace.title":"Переименовать рабочую папку","row.archived":"В архиве","row.pinned":"Закреплено","search.clear":"Очистить поиск","search.hasMore":"Показаны первые {n} результатов. Уточните запрос.","search.hasMore.few":"Показаны первые {n} результата. Уточните запрос.","search.noMatches":"Подходящих сессий нет","search.pending":"Поиск по истории сессий…","search.placeholder":"Поиск по сессиям...","search.results.aria":"Результаты поиска","search.sessions.aria":"Поиск сессий","section.sessions":"Сессии","section.workspaces":"Рабочие папки","session.new":"Новая сессия","session.untitled":"Новый чат","sessions.collapse":"Показать меньше","sessions.count.one":"{n} сессия","sessions.count.other":"{n} сессий","sessions.expand":"Показать ещё {n}","shortcut.directoryBusy":"Выбор или добавление рабочего пространства","shortcut.forkFailed":"Не удалось ответвить сессию. Попробуйте еще раз.","shortcut.noCompletedTurn":"В этой сессии нет завершенных ответов","shortcut.noPicker":"Диалог выбора папки недоступен","shortcut.noSession":"Сначала выберите сессию","status.compact.answer":"Ответ","status.compact.approval":"Подтверждение","status.compact.planReview":"Проверка плана","status.completed":"Завершено","status.idle":"Простаивает","status.planReview":"План ждёт проверки","status.running":"Работает","status.subagentsRunning.one":"{n} субагент работает","status.subagentsRunning.other":"{n} субагентов работает","status.waitingAnswer":"Ждёт ответа","status.waitingApproval":"Ждёт подтверждения","time.ago":"{t} назад","time.days":"{n} дн","time.hours":"{n} ч","time.minutes":"{n} мин","time.months":"{n} мес","time.now":"только что","time.years":"{n} г","toast.archived":"Сессия архивирована. Вы можете ","toast.archivedFilter":"фильтровать архивные сессии","toast.archivedNotOpenable":"Архивные сессии нельзя открыть. Разархивируйте для просмотра.","toast.archivedOr":" или ","toast.archivedUndo":"отменить","toast.createFailed":"Не удалось создать новую сессию: {message}","toast.pinFailed":"Не удалось закрепить. Попробуйте позже.","toast.stoppedAndArchived":"Сессия остановлена и архивирована. Вы можете ","toast.unpinFailed":"Не удалось открепить. Попробуйте позже.","viewOptions.hideArchived":"Скрыть архивированные","viewOptions.label":"Параметры отображения","viewOptions.onlyArchived":"Только архивные","viewOptions.showArchived":"Показать архив","workspace.add":"Добавить рабочую папку"}}
|
|
1
|
+
{"agent-team":{"blocked":"Заблокировано зависимостями","blockedBy":"Заблокировано","current":"Текущий чат","empty":"Общих задач пока нет","failure":"Некорректная сохранённая запись команды: {message}","loading":"Загрузка команды…","memberStatus.failed":"Ошибка","memberStatus.inactive":"Неактивен","memberStatus.provisioning":"Подготовка","memberStatus.running":"Выполняется","model":"Модель","open":"Открыть чат участника команды","owner":"Исполнитель","ready":"Готово к выполнению","roster":"Участники","status.completed":"Завершено","status.in_progress":"В работе","status.pending":"В очереди","task.collapse":"Показать меньше","task.expand":"Показать больше","tasks":"Общие задачи","trigger":"Команда агентов","unavailable":"Команда недоступна","unowned":"Без исполнителя","writeScopes":"Области записи"},"approval":{"allowOnce":"Разрешить один раз","detail.aria":"Сведения о подтверждении","escalation":"Инструмент {toolName} запрашивает привилегированное выполнение","reject":"Отклонить","waiting":"Ожидание подтверждения"},"chat":{"chat.deepDiving":"Глубокий анализ…","chat.deepDivingFor":"Глубокий анализ: {duration}...","chat.loadError":"Не удалось загрузить историю: {message} ({code})","chat.loadOlder":"Загрузить более ранние","chat.loadingHistory":"Загрузка истории…","chat.toBottom":"Вниз к началу","chat.turnNavigation.jump":"Перейти к шагу {turn}","chat.turnNavigation.jumpLoad":"Загрузить и перейти к шагу {turn}","chat.turnNavigation.label":"Навигация по шагам диалога","chat.turnNavigation.turn":"Шаг {turn}","clock.md":"{m}/{d}","clock.ymd":"{y}-{m}-{d}","command.done":"Завершено","command.failed":"Команда завершилась с ошибкой","command.running":"Выполняется…","command.title":"Команда","duration.compactMinutes":"{minutes}м {seconds}с","duration.compactSeconds":"{seconds}с","duration.hours":"{hours} ч {minutes} мин {seconds} с","duration.milliseconds":"{milliseconds}мс","duration.minutes":"{minutes}м {seconds}с","duration.seconds":"{seconds}с","fileOpen.title":"Не удалось открыть файл","fileOpen.unknown":"Не удалось открыть этот файл","image.close":"Закрыть просмотр изображения","image.dialog":"Просмотр изображения","image.failed":"Предпросмотр изображения недоступен","image.loading":"Загрузка изображения…","image.open":"Открыть исходное изображение","json.truncated":"… обрезано, всего {total} символов","message.accountStopped":"Задача остановлена","message.branch":"Ответвить в новый диалог","message.branchUnavailable":"Доступно только для последнего сообщения завершённого шага","message.compaction":"Контекст сжат","message.compaction.commandTitle":"сжатие","message.compaction.completed":"Сжато {items} элементов истории (~{tokens} токенов)","message.compaction.expand":"Посмотреть сводку сжатия","message.compaction.running":"Сжатие контекста…","message.compaction.unavailable":"Сводка сжатия недоступна","message.context.catalog.more":"… ещё {count}","message.context.catalog.replaced":"Заменяющий каталог","message.context.instructions.added":"добавлено","message.context.instructions.loaded":"загружено","message.context.instructions.removed":"удалено","message.context.instructions.updated":"обновлено","message.context.recall.counts":"сохранено {retained} • пропущено {omitted}","message.context.recall.truncated":"обрезано","message.context.relay.from":"Из сессии {session}","message.context.snapshot.supersedes":"Заменяет более ранние снимки","message.contextInjection":"Внедрение контекста","message.contextRecall":"Вспоминание сессии","message.extraBlock":"Дополнительный блок содержимого","message.failure.accountSignInRequired":"Войдите в DeepSeek и убедитесь, что целевой сервис поддерживает аутентификацию по аккаунту.","message.failure.accountSignedOut":"Остановлено, так как вы вышли из аккаунта DeepSeek.","message.failure.auth":"Недействительный ключ API","message.failure.quota":"Квота запросов исчерпана.","message.maxTokens":"Достигнут лимит токенов вывода","message.maxTokens.hint":"Ответ был прерван; предыдущий вывод сохранён в диалоге. Отправьте «продолжить», чтобы модель возобновила генерацию.","message.referenceSeparator":", ","message.referenceSummary":"Упомянутая сессия • {labels}","message.retry.active":"Повторный запрос к модели","message.retry.cancelled":"Повтор запроса к модели отменён","message.retry.delay":"Задержка перед повтором: ","message.retry.failure":"Причина сбоя: ","message.retry.scheduled":"Ожидание повторного запроса к модели","message.retry.started":"Повторный запрос к модели выполнен","message.retry.status":"{label} ({retry}/{maximum}) • {seconds}с","message.stepProcess.code":"Выполнение кода","message.stepProcess.comma":", ","message.stepProcess.commands":"Выполнение команд","message.stepProcess.done.code":"Код выполнен","message.stepProcess.done.commands":"Команды выполнены","message.stepProcess.done.edit":"Файлы отредактированы","message.stepProcess.done.plan":"План обновлён","message.stepProcess.done.questions":"Заданы вопросы","message.stepProcess.done.read":"Файлы прочитаны","message.stepProcess.done.readImage":"Изображения прочитаны","message.stepProcess.done.search":"Поиск по коду завершён","message.stepProcess.done.subagents":"Координация субагентов завершена","message.stepProcess.done.thinking":"Анализ завершён","message.stepProcess.done.tools":"Инструменты вызваны","message.stepProcess.done.webFetch":"Веб-страницы просмотрены","message.stepProcess.done.webSearch":"Поиск в сети завершён","message.stepProcess.done.write":"Файлы записаны","message.stepProcess.edit":"Редактирование файлов","message.stepProcess.joinTwo":"{first} и {second}","message.stepProcess.more":"{title} и др.","message.stepProcess.plan":"Обновление плана","message.stepProcess.prepare.code":"Подготовка к выполнению кода","message.stepProcess.prepare.commands":"Подготовка к выполнению команд","message.stepProcess.prepare.edit":"Подготовка к редактированию файлов","message.stepProcess.prepare.plan":"Подготовка к обновлению плана","message.stepProcess.prepare.questions":"Подготовка вопросов","message.stepProcess.prepare.read":"Подготовка к чтению файлов","message.stepProcess.prepare.readImage":"Подготовка к чтению изображений","message.stepProcess.prepare.search":"Подготовка к поиску в коде","message.stepProcess.prepare.subagents":"Подготовка к координации субагентов","message.stepProcess.prepare.tools":"Подготовка к вызову инструментов","message.stepProcess.prepare.webFetch":"Подготовка к загрузке веб-страниц","message.stepProcess.prepare.webSearch":"Подготовка к поиску в интернете","message.stepProcess.prepare.write":"Подготовка к записи файлов","message.stepProcess.questions":"Ожидание ваших действий","message.stepProcess.read":"Чтение файлов","message.stepProcess.readImage":"Чтение изображений","message.stepProcess.search":"Поиск по коду","message.stepProcess.sharedPrefix":"","message.stepProcess.subagents":"Координация субагентов","message.stepProcess.thinking":"Анализ запроса","message.stepProcess.tools":"Вызов инструментов","message.stepProcess.webFetch":"Загрузка веб-страниц","message.stepProcess.webSearch":"Поиск в сети","message.stepProcess.write":"Запись файлов","message.stopped":"Остановлено","message.systemPrompt":"Системный промпт","message.systemPromptUpdate":"Обновление системного промпта","message.think":"Рассуждения","message.tokensPerSecond":"{tps} ток./с","message.toolAdded":"Инструмент добавлен: {name}","message.toolRemoved":"Инструмент удален: {name}","message.toolsAdded":"Добавлено: {names}","message.toolsAddedCount":"Добавлено: {count}","message.toolsChanged":"Добавлено: {added}, удалено: {removed}","message.toolsRemoved":"Удалено: {names}","message.toolsRemovedCount":"Удалено: {count}","message.toolsUpdated":"Инструменты обновлены","message.trigger.agent":"Получено сообщение задачи","message.trigger.explanation":"Это уведомление вызвало данный ответ.","message.trigger.github":"Получено событие GitHub","message.trigger.goal":"Продолжение цели","message.trigger.job":"Фоновая задача обновлена","message.trigger.plugin":"Статус плагина обновлён","message.trigger.request":"Запрошено выполнение","message.trigger.schedule":"Запланированная задача","message.trigger.subagent":"Статус подзадачи обновлён","message.trigger.team":"Получено командное сообщение","message.trigger.webhook":"Получено внешнее событие","message.turnError":"Этот шаг завершился с ошибкой","message.turnProcess.failed":"Сбой","message.turnProcess.messages.one":"{count} сообщение","message.turnProcess.messages.other":"{count} сообщений","message.turnProcess.separator":" • ","message.turnProcess.subagents.one":"{count} субагент","message.turnProcess.subagents.other":"{count} субагентов","message.turnProcess.thoughtForAWhile":"Рассуждал некоторое время","message.turnProcess.took":"Заняло {duration}","message.turnProcess.toolCalls.one":"{count} вызов инструмента","message.turnProcess.toolCalls.other":"{count} вызовов инструментов","message.turnProcess.worked":"Выполнено","message.turnUsage.cacheHit":"Попадание в кэш","message.turnUsage.cacheRead":"Вход из кэша","message.turnUsage.cacheWrite":"Запись в кэш","message.turnUsage.consumed":"Использовано {total}","message.turnUsage.count":"{count} ток.","message.turnUsage.input":"Вход без кэша","message.turnUsage.model":"Провайдер / модель","message.turnUsage.output":"Вывод","message.turnUsage.reasoning":" ({tokens} рассуждения)","message.turnUsage.title":"Расход токенов на шаг","message.unknownBlock":"Неизвестный блок содержимого","message.unknownSurface":"Неизвестное событие интерфейса: {type}","number.groupSeparator":" ","row.failed":"Ошибка","row.running":"Выполняется","settings.links.description":"Выберите, где открывать ссылки HTTP(S) из чата","settings.links.newTab":"Новая вкладка браузера","settings.links.sidebar":"Встроенный браузер","settings.links.title":"Открывать ссылки из чата в","settings.performance.compact":"Компактный","settings.performance.description":"Выберите объём отображаемой информации о производительности и использовании","settings.performance.detailed":"Подробный","settings.performance.title":"Производительность и использование","settings.transcript.compact":"Компактный","settings.transcript.description":"Сколько подробностей работы агента показывать: рассуждения и вызовы инструментов","settings.transcript.detailed":"Подробный","settings.transcript.standard":"Стандартный","settings.transcript.title":"Детали работы","settings.transcript.verbose":"Полностью развёрнутый","stats.cacheHit":"Кэш {percent}%","stats.counts":"{turns} шагов • {steps} действий","stats.dialog.llmTime":"Время LLM","stats.dialog.speed":"Токенов в секунду (TPS)","stats.dialog.title":"Статистика сессии","stats.dialog.toolTime":"Время инструментов","stats.dialog.ttft":"Среднее время до первого токена (TTFT)","stats.dialog.usageTitle":"Использование токенов","view.chat":"Чат"},"command":{"description.compact":"Сжать раннюю историю диалога","description.export":"Скачать журнал сессии в формате ZIP-архива","description.feedback":"Оставить отзыв о текущей сессии","description.goal":"Установить или просмотреть цель для длительной задачи","description.permission":"Переключить пресет разрешений (режим песочницы и политики подтверждений)","description.plan":"Войти или выйти из режима планирования","label.compact":"Сжатие","label.export":"Экспорт","label.feedback":"Обратная связь","label.goal":"Цель","label.permission":"Режим доступа","label.plan":"План","listbox.aria":"Совпадения /{command}","notice.attachmentsUnsupported":"/{command} не принимает вложения; сначала удалите их","overlay.aria":"Параметры /{command}","search.aria":"Фильтр параметров","search.placeholder":"Поиск…","section.add":"Добавить","section.commands":"Команды","status.applying":"Применение…","status.empty":"Нет параметров","status.loading":"Загрузка параметров…","token.compact":"сжатие","token.export":"экспорт","token.feedback":"отзыв","token.goal":"цель","token.permission":"доступ","token.plan":"план"},"common":{"back":"Назад","brand.localBuild":"Локальная сборка DSH","cancel":"Отмена","close":"Закрыть","codeBlock.title":"Блок кода","codeBlock.unwrap":"Не переносить строки","codeBlock.wrap":"Переносить строки","collapse":"Свернуть","copied":"Скопировано","copy":"Копировать","copy.compactJson":"Копировать компактный JSON","copy.failed":"Не удалось скопировать","copy.json":"Копировать JSON","copy.optionsHint":"{action}; правый клик для вариантов копирования","copy.path":"Копировать путь к свойству","copy.prettyJson":"Копировать форматированный JSON","copy.value":"Копировать значение","delete":"Удалить","edit":"Изменить","expand":"Развернуть","json.label":"JSON","load.failed":"Не удалось загрузить","loading":"Загрузка…","markdown.footnotes":"Сноски","markdown.truncatedCharacters":"… обрезано на {total} символах","more":"Ещё","next":"Дальше","none":"Нет","number.million":"{value}M","number.thousand":"{value}K","ok":"ОК","previous":"Назад","retry":"Повторить","save":"Сохранить","search":"Поиск","skip":"Пропустить","submit":"Отправить","submitting":"Отправка…","truncated":"Обрезано","unknown":"Неизвестно","workspace.defaultName":"Рабочее пространство по умолчанию"},"conversation":{"ask.answered":"{answered}/{total} отвечено","ask.cancelled":"отменено","ask.cancelledDetail":"Этот набор вопросов был отменён до отправки ответов.","ask.interrupted":"прервано","ask.interruptedDetail":"Этот набор вопросов был прерван до отправки ответов.","ask.rowTitle":"Вопрос","ask.skipped":"Без ответа","ask.waiting":"ожидание","attachment.directoryDesktopOnly":"Папки можно добавлять только в приложении для рабочего стола; в браузере добавляйте отдельные файлы","attachment.dropBlocked":"В настоящий момент добавление файлов и изображений заблокировано","attachment.dropDesc":"Лимит изображений: до {count} шт., до {size} каждое","attachment.dropTitle":"Перетащите файлы или изображения сюда для добавления","attachment.pathUnavailable":"Не удалось получить путь к папке; перетащите её снова","attachment.pathUnsupported":"Путь содержит символы, которые нельзя использовать в ссылке; переименуйте и попробуйте снова","attachment.pending":"Ожидающие вложения","attachment.scrollLeft":"Прокрутить вложения влево","attachment.scrollRight":"Прокрутить вложения вправо","bash.failed":"Ошибка","bash.running":"Выполняется","bash.stopped":"Остановлено","command.attachmentsUnsupported":"/{command} не принимает вложения; сначала удалите их","context.aria":"{percent} контекста занято","context.messages":"Сообщения","context.system":"Системный промпт","context.tools":"Инструменты","context.used":"контекста занято","detail.agent.reply":"Ответ агента","detail.agents.count":"{count} агентов","detail.days":"{count} д","detail.empty":"Нет результатов","detail.event.neighbors":"Соседние события","detail.field.agent":"ID агента","detail.field.agents":"Запущенные агенты","detail.field.availability":"Доступность","detail.field.bestMatch":"Лучшее совпадение","detail.field.callId":"ID вызова","detail.field.content":"Содержимое","detail.field.context":"Контекст","detail.field.currentPackage":"Текущий пакет","detail.field.data":"Данные","detail.field.dependencies":"Зависимости","detail.field.depth":"Глубина","detail.field.diagnostics":"Диагностика","detail.field.exitCode":"Код завершения","detail.field.id":"ID","detail.field.inputSchema":"Входная схема","detail.field.job":"ID задачи","detail.field.latestRun":"Последний запуск","detail.field.message":"Сообщение","detail.field.messageId":"ID сообщения","detail.field.methods":"Методы","detail.field.model":"Модель","detail.field.nextPackage":"Следующий пакет","detail.field.outputSchema":"Выходная схема","detail.field.owner":"Владелец","detail.field.packages":"Пакеты","detail.field.parent":"Родитель","detail.field.pid":"ID процесса (PID)","detail.field.platform":"Платформа","detail.field.previousStatus":"Предыдущий статус","detail.field.processGroup":"Группа процессов","detail.field.props":"Свойства (Props)","detail.field.provider":"Провайдер","detail.field.ready":"Готов","detail.field.registrations":"Регистрации","detail.field.result":"Результат","detail.field.revision":"Ревизия","detail.field.role":"Роль","detail.field.root":"Корень","detail.field.seq":"Порядковый номер события","detail.field.signal":"Сигнал","detail.field.source":"Источник","detail.field.step":"Шаг","detail.field.surface":"Статус записи","detail.field.target":"Целевое событие","detail.field.task":"Задача","detail.field.time":"Время","detail.field.turn":"Ход","detail.field.type":"Тип","detail.field.warnings":"Предупреждения","detail.field.writeScopes":"Области записи","detail.goal.active":"Активна","detail.goal.blocked":"Заблокирована","detail.goal.complete":"Завершена","detail.goal.disarmed":"Ожидание продолжения","detail.goal.empty":"Нет цели","detail.goal.paused":"Приостановлена","detail.goal.reason":"Блокирующий фактор","detail.goal.rounds":"Раунды","detail.hours":"{count} ч","detail.jobs.count":"{count} фоновых задач","detail.location":"Строка {line}, столбец {column}","detail.locations.count":"{count} расположений","detail.matches.capped":"Достигнут предел результатов; уточните поиск для большего числа","detail.matches.count":"{count} совпадений","detail.minutes":"{count} мин","detail.models.title":"Доступные модели","detail.moreInInspect":"Ещё {count} элементов доступно в Инспекторе","detail.no":"Нет","detail.none":"Нет","detail.output.lines":"Строки {begin}–{end} из {total}","detail.output.truncated":"Вывод усечён","detail.plugins.count":"{count} динамических плагинов","detail.providers.count":"{count} провайдеров инспекции","detail.ralph.limit":"Достигнут предел раундов","detail.ralph.reportedBlocker":"Исполнитель сообщил о блокировке","detail.ralph.reportedComplete":"Исполнитель сообщил о завершении","detail.receipt.alreadyFinished":"Уже завершено","detail.receipt.cancel":"Запрошена отмена","detail.receipt.closed":"Закрыто","detail.receipt.closing":"Закрытие","detail.receipt.delivered":"Сообщение доставлено","detail.receipt.interrupt":"Запрошено прерывание","detail.receipt.signal":"Сигнал доставлен","detail.receipt.started":"Запущено","detail.recordedResult":"Зафиксированный результат","detail.report.nextSteps":"Оставшаяся работа","detail.schedule.count":"{count} напоминаний","detail.schedule.cron":"Cron {expression} ({zone})","detail.schedule.daily":"Каждый день в {time} ({zone})","detail.schedule.deleted":"Удалено","detail.schedule.empty":"Нет напоминаний","detail.schedule.every":"Каждые {interval}","detail.schedule.frequency":"Повтор","detail.schedule.once":"Однократно","detail.schedule.overdue":"Просрочено, ожидание возобновления сессии","detail.schedule.scheduled":"Запланировано","detail.schedule.weekly":"Еженедельно ({days}) в {time} ({zone})","detail.schedule.when":"Запланировано на","detail.seconds":"{count} с","detail.state":"Статус","detail.status.accepted":"Принято","detail.status.completed":"Завершено","detail.status.deleted":"Удалено","detail.status.exited":"Завершился","detail.status.failed":"Сбой","detail.status.idle":"Ожидание","detail.status.inactive":"Неактивен","detail.status.killed":"Отменено","detail.status.provisioning":"Подготовка","detail.status.queued":"В очереди","detail.status.ready":"Готов","detail.status.running":"Выполняется","detail.tasks.count":"{count} задач команды","detail.tasks.nextPage":"Доступно больше задач; следующий курсор: {cursor}","detail.terminals.count":"{count} терминалов","detail.todo.completed":"Завершено","detail.todo.empty":"Список задач пуст","detail.todo.in_progress":"В процессе","detail.todo.pending":"Ожидает","detail.trace.ancestors":"Сессии-предки","detail.trace.derived":"Производные события","detail.trace.descendants":"Сессии-потомки","detail.trace.replacedBy":"Заменено на","detail.trace.replacementChain":"Цепочка замен","detail.trace.replaces":"Заменяет события","detail.trace.sources":"Исходные события","detail.wait.changed":"Обнаружено изменение","detail.wait.noProgress":"Нет активных участников команды","detail.wait.timeout":"Время ожидания истекло","detail.wait.title":"Активность участников команды","detail.weekday.1":"Пн","detail.weekday.2":"Вт","detail.weekday.3":"Ср","detail.weekday.4":"Чт","detail.weekday.5":"Пт","detail.weekday.6":"Сб","detail.weekday.7":"Вс","detail.weekday.join":", ","detail.workflow.script":"Скрипт рабочего процесса","detail.yes":"Да","details.running":"Выполняется…","diff.collapseAria":"Свернуть diff","diff.expandAria":"Развернуть ещё {count} строк diff","diff.expandRest":"… ещё {count} строк","error.sessionInUse":"Эта сессия уже используется другим запущенным экземпляром DSH (например, dsh web или десктопным приложением). Завершите другие экземпляры DSH и повторите попытку.","file.label":"Файл","file.notStaged":"Загрузка файла не завершена; прикрепите заново и повторите попытку","file.pending":"Ожидающие файлы","file.remove":"Удалить файл {name}","file.retry":"Повторить загрузку {name}","file.sessionUnavailable":"Сессия недоступна; загрузка файлов невозможна","file.stillUploading":"Файлы всё ещё загружаются; отправьте сообщение после завершения загрузки","file.uploadFailed":"Сбой загрузки; нажмите для повтора","file.uploading":"Загрузка…","hero.chooseWorkspace":"Выбрать рабочую папку","hero.headline":"Навстречу неизведанному","hero.preview":"Предпросмотр","hint.goal":"опишите цель длительной задачи","hint.goal.active":"цель активна — изменить / пауза / продолжить / снять","image.closePreview":"Закрыть просмотр оригинала","image.dimensionTooLarge":"Стороны изображения не больше {size}px — уменьшите его и попробуйте снова","image.fileTooLarge":"Каждое изображение должно быть меньше {size}","image.label":"Изображение","image.loadFailed":"Изображение не загрузилось, нажмите для повтора","image.loading":"Загрузка изображения…","image.modelUnsupported":"Текущая модель не принимает изображения; выберите подходящую","image.openOriginal":"Открыть оригинал","image.openOriginalLabel":"{label}, нажмите, чтобы открыть оригинал","image.original":"Оригинал","image.pending":"Изображения к отправке","image.preview":"Просмотр оригинала","image.remove":"Убрать изображение {name}","image.sendFailed":"Не удалось отправить изображения ({reason}); добавьте заново и повторите","image.tooMany":"В одно сообщение помещается до {count} изображений","image.tooManyPixels":"Слишком большое разрешение; сожмите изображение и повторите","image.totalTooLarge":"Изображения весят больше {size}; уберите часть и повторите","image.unsupportedType":"Поддерживаются только PNG, JPG, WebP и GIF","input.commands":"Команды","input.file":"Файл","input.send":"Отправить сообщение","input.send.queue":"Поставить в очередь","input.send.steer":"Направить сообщение","input.stop":"Остановить генерацию","placeholder.default":"Напишите агенту","placeholder.hero":"Опишите, что хотите сделать","placeholder.parentOffline":"Родительская сессия офлайн: отправка недоступна, но остановить выполнение можно","placeholder.steerQueue":"Cmd/Ctrl+Enter направит все сообщения из очереди","placeholder.unavailable":"Сессия недоступна","placeholder.workspace":"Выберите рабочую папку, чтобы начать","queue.cancelEdit":"Отменить правку","queue.count":"Сообщений в очереди: {n}","queue.edit":"Изменить сообщение в очереди","queue.edit.unsupported":"Содержит не только текст; правка пока не поддерживается","queue.editFailed":"Не удалось изменить: сообщение, возможно, уже отправляется.","queue.file":"Файл в очереди: {name}","queue.image":"Изображение сообщения в очереди","queue.remove":"Убрать из очереди","queue.removeFailed":"Не удалось убрать: сообщение, возможно, уже отправляется.","queue.save":"Сохранить сообщение","queue.sending":"Отправка…","queue.steer":"Направить сообщение","queue.steer.unavailable":"Направлять можно только пока агент работает","queue.steerFailed":"Не удалось направить. Попробуйте ещё раз.","read.collapseAria":"Свернуть содержимое","read.expandAria":"Развернуть ещё {count} строк","read.expandRest":"… ещё {count} строк","read.window":"Показано {shown} из {total} строк","row.failed":"Ошибка","row.input":"ВХОД","row.inspect":"Инспектировать","row.output":"ВЫХОД","row.preparing":"Подготовка вызова инструмента","row.running":"Выполняется","row.stopped":"Остановлено","search.collapseAria":"Свернуть результаты","search.expandAria":"Развернуть ещё {count} строк результатов","search.expandRest":"… ещё {count} строк","search.matches":"{shown} совпадений • {files} файлов","search.matches.truncated":"Показано {shown} из {total} совпадений • {files} файлов","search.noResults":"Нет результатов","search.paths":"{shown} путей","search.paths.truncated":"Показано {shown} из {total} путей","session.hierarchy":"Иерархия сессий","settings.enter.description":"Только когда агент занят; Cmd/Ctrl+Enter даёт другое поведение","settings.enter.queue":"В очередь","settings.enter.steer":"Направить","settings.enter.title":"Enter, когда агент занят","shortcut.complementary":"Использовать вспомогательное действие: Очередь / Направить","shortcut.mention":"Открыть меню ссылок","shortcut.newline":"Новая строка","shortcut.slash":"Открыть меню команд","terminal.collapseAria":"Свернуть вывод","terminal.done":"Готово","terminal.exitCode":"код возврата {code}","terminal.expandAria":"Показать оставшиеся строки вывода: {n}","terminal.expandRest":"… ещё строк: {n}","terminal.failed":"Ошибка","terminal.noExitCode":"код завершения отсутствует","terminal.noOutput":"Вывода нет","terminal.running":"Выполняется","terminal.sendInput":"(отправить ввод)","terminal.session":"Терминал {sessionId}","terminal.signal":"сигнал {signal}","todo.completed":"{done}/{total} выполнено","todo.diff.added":"Добавлено {count}","todo.diff.addedItem":"Добавлено","todo.diff.compare":"Изменения относительно предыдущего списка","todo.diff.initial":"Начальный список","todo.diff.movedItem":"Порядок изменён","todo.diff.noChanges":"В списке нет изменений","todo.diff.removed":"Удалено {count}","todo.diff.removedItem":"Удалено","todo.diff.unavailable":"Предыдущий список недоступен","todo.diff.unchanged":"Без изменений: {count}","todo.diff.updated":"Обновлено {count}","todo.diff.updatedItem":"Статус изменён","todo.progress.active":"{active} в работе","todo.progress.done":"{done} выполнено","todo.progress.pending":"{pending} в очереди","todo.rowTitle":"Обновить список задач","todo.status.completed":"Завершено","todo.status.inProgress":"В процессе","todo.status.pending":"Ожидает","todo.title":"Задачи","tool.autoReviewNotExecuted":"Инструмент не был выполнен. Причина: {reason}","tool.autoReviewReasonFallback":"Автопроверка не разрешила это действие","tool.autoReviewRejected":"Отклонено автопроверкой","tool.preparing.content":"Подготовка содержимого ({kilobytes} КБ)","tool.title.bash":"Bash","tool.title.closeTerminal":"Закрыть терминал","tool.title.code":"Код","tool.title.createGoal":"Создать цель","tool.title.createSchedule":"Создать напоминание","tool.title.createTeamTask":"Создать задачу команды","tool.title.deleteSchedule":"Удалить напоминание","tool.title.edit":"Правка","tool.title.findDefinition":"Найти определение","tool.title.findImplementation":"Найти реализацию","tool.title.findReferences":"Найти ссылки","tool.title.generic":"Вызов инструмента","tool.title.getGoal":"Просмотреть цель","tool.title.getTeamTask":"Прочитать задачу команды","tool.title.glob":"Поиск по маске (Glob)","tool.title.grep":"Поиск текста (Grep)","tool.title.hoverSymbol":"Инспектировать символ","tool.title.inspect":"Инспектировать","tool.title.inspectPlugins":"Инспектировать плагины","tool.title.inspectProviders":"Инспектировать провайдеров","tool.title.interruptAgent":"Прервать агента","tool.title.killJob":"Отменить фоновую задачу","tool.title.listAgents":"Список агентов","tool.title.listJobs":"Список фоновых задач","tool.title.listModels":"Список моделей","tool.title.listSchedules":"Список напоминаний","tool.title.listTeamTasks":"Список задач команды","tool.title.listTerminals":"Список терминалов","tool.title.lsp":"Запрос символов кода","tool.title.openTerminal":"Открыть терминал","tool.title.pwsh":"Pwsh","tool.title.queryRuntime":"Запрос среды выполнения","tool.title.ralph":"Запустить Ralph","tool.title.read":"Чтение","tool.title.readEvent":"Прочитать событие","tool.title.readImage":"Просмотр изображения","tool.title.readJob":"Прочитать вывод задачи","tool.title.readTerminal":"Прочитать терминал","tool.title.removeCordis":"Удалить плагин Cordis","tool.title.runCordis":"Запустить плагин Cordis","tool.title.search":"Поиск","tool.title.searchEvents":"Поиск событий","tool.title.searchSessions":"Поиск сессий","tool.title.sendMessage":"Отправить сообщение","tool.title.signalTerminal":"Отправить сигнал терминалу","tool.title.spawnTeammate":"Создать участника команды","tool.title.stopCordis":"Остановить плагин Cordis","tool.title.subagent":"Делегировать задачу","tool.title.traceEvent":"Трассировка события","tool.title.traceSession":"Трассировка сессии","tool.title.updateGoal":"Обновить цель","tool.title.updateSchedule":"Обновить напоминание","tool.title.updateTeamTask":"Обновить задачу команды","tool.title.waitAgent":"Ожидать участников команды","tool.title.webFetch":"Загрузка страницы","tool.title.webSearch":"Поиск в вебе","tool.title.workflow":"Запустить рабочий процесс","tool.title.write":"Запись","web.contentTruncated":"Содержимое обрезано","web.http":"HTTP","web.noResults":"Ничего не найдено","web.sourcesTruncated":"Список источников обрезан"},"cordis":{"a11y.defining":"Определение плагина","a11y.failed":"Определить не удалось","a11y.preparing":"Подготовка вызова инструмента Cordis","a11y.stopped":"Определение прервано","action.approve":"Разрешить","action.approveOnce":"Разрешить только эту версию","action.approvePlugin":"Разрешить будущие версии этого плагина","action.decline":"Отклонить","action.inspect":"Инспектировать","action.remove":"Удалить","action.retry":"Повторить","action.rollback":"Откатить","action.run":"Запустить","action.stop":"Остановить","body.clientCode":"Клиент","body.copied":"Скопировано","body.copy":"Копировать","body.hostCode":"Хост","body.output":"Результат","body.source":"Исходник плагина","panel.approvals.aria":"Подтверждения Cordis","panel.current":"Текущая: {packageId}","panel.empty":"Плагинов пока нет","panel.group.current":"Эта сессия","panel.group.others":"Другие сессии","panel.hint":"Управление запуском — в панели Cordis над настройками","panel.loading":"Чтение…","panel.next":"Следующая: {packageId}","panel.plugins.aria":"Плагины Cordis","panel.readFailed":"Не удалось прочитать список плагинов: {message}","panel.runningCount":"работает: {count}","panel.title":"Плагины Cordis","panel.trigger":"Плагин Cordis","panel.version":"Версия","purpose.missing":"(назначение не указано)","render.failedAbdicated":"Отрисовка в {slot} не удалась, вернули стандартный интерфейс:","render.failedHeld":"Отрисовка в {slot} не удалась:","row.defineTitle":"Зарегистрировать плагин Cordis","row.removeTitle":"Удалить плагин Cordis","row.runTitle":"Запустить плагин Cordis","row.stopTitle":"Остановить плагин Cordis","row.updateTitle":"Обновить плагин Cordis","run.removed":"Этого пакета больше нет","run.superseded":"Ниже есть более свежая карточка запуска","status.awaitingApproval":"Ждёт подтверждения","status.clientPending":"Клиент готов к активации","status.failed":"Запуск не удался","status.idle":"Готов","status.removed":"Удалён","status.running":"Работает","status.superseded":"Есть более свежий запуск"},"deliverables":{"changes.added":"+{count}","changes.all":"Все {count} файлов","changes.binary":"бинарный","changes.collapse":"Свернуть","changes.collapseAria":"Свернуть изменённые файлы","changes.deleted":"-{count}","changes.expandAria":"Показать все {count} изменённых файлов","changes.openReview":"Просмотреть изменения этого шага в боковой панели","changes.oversized":"слишком большой","changes.singleTitle":"Изменено: {name}","changes.title":"Изменено файлов: {count}","changes.viewDiff":"Посмотреть изменения в {name}","diff.binary":"Бинарный файл; отображение изменений недоступно","diff.coarse":"Превышено время построчного сравнения; файл показан как полная замена","diff.created":"Создан на этом шаге","diff.deleted":"Удалён на этом шаге","diff.error":"Не удалось прочитать изменения","diff.loading":"Чтение изменений…","diff.missing":"Содержимое изменений этого шага больше недоступно","diff.oversized":"Файл слишком велик; отображение изменений недоступно","diff.truncated":"Показаны первые {count} строк","diff.unchanged":"Обе стороны содержат одинаковые строки","presented.all":"Все {count} файлов","presented.collapse":"Свернуть","presented.collapseAria":"Свернуть файлы результатов","presented.directoryError":"Не удалось открыть папку с файлом. Попробуйте снова.","presented.directoryOpened":"Запрошено открытие папки с файлом","presented.directoryOpening":"Открытие папки с файлом…","presented.error":"Не удалось открыть. Нажмите для повтора.","presented.expandAria":"Показать все {count} файлов результатов","presented.file":"Файл","presented.hostError":"Не удалось прочитать сведения о рабочем столе хоста","presented.nativeUnavailable":"Для этого файла нет доступного пути на хосте. Просмотрите его на боковой панели.","presented.opened":"Открыто в приложении по умолчанию","presented.opening":"Открытие…","presented.preview":"Предпросмотр на боковой панели","presented.previewButton":"Открыть {name} на боковой панели","presented.previewCard":"Предпросмотр {name} на боковой панели","presented.retry":"Повторить","presented.revealError":"Не удалось показать в файловом менеджере. Попробуйте снова.","presented.revealed":"Запрошен показ в файловом менеджере","presented.revealing":"Отображение в файловом менеджере…","presented.unavailable":"На этом хосте нет доступного рабочего стола для открытия файлов или папок","review.nowrap":"Отключить перенос строк","review.openFile":"Открыть файл целиком в боковой панели","review.openFileAria":"Открыть {name} в боковой панели","review.selectFile":"Выберите файл для ревью","review.split":"Переключить на раздельный вид","review.splitAria":"Раздельный вид","review.title":"Ревью · шаг {turn}","review.unified":"Переключить на объединённый вид","review.wrap":"Включить перенос строк","review.wrapAria":"Перенос строк","row.error":"Сбой создания результатов","row.inspect":"Инспектировать вызов","row.ok":"Результаты подготовлены","row.preparing":"Подготовка результатов работы","row.running":"Подготовка результатов","row.stopped":"Прервано","row.title":"Предоставление файлов"},"directory-browser":{"browser.cancel":"Отмена","browser.create":"Создать","browser.createIn":"Новая папка в «{name}»","browser.editPath":"Изменить путь","browser.folderName":"Имя папки","browser.home":"Домашняя папка","browser.loading":"Загрузка…","browser.newFolder":"Новая папка","browser.open":"Открыть","browser.showHidden":"Показывать скрытые файлы","browser.title":"Выбор рабочей папки","browser.truncated":"Слишком много папок; показано только начало.","browser.untitledFolder":"Без имени"},"documentHtml":{"failed":"Не удалось отобразить предпросмотр этого HTML-документа.","frame":"Предпросмотр HTML-документа","loading":"Подготовка предпросмотра HTML…","title":"HTML"},"documentMarkdown":{"code.copied":"Скопировано","code.copy":"Копировать","footnotes":"Сноски","viewer.label":"Markdown"},"feedback":{"action.dislike":"Плохой ответ","action.dislikeActive":"Убрать оценку","action.like":"Хороший ответ","action.likeActive":"Убрать оценку","category.instruction-following":"Понимание и следование инструкциям","category.other":"Другое","category.product-interaction":"Возможности продукта и взаимодействие","category.resource-cost":"Использование ресурсов и стоимость","category.security-privacy-permission":"Безопасность, конфиденциальность и разрешения","category.service-stability":"Стабильность работы сервиса","category.task-result":"Результат выполнения задачи","dialog.categories":"Категория отзыва","dialog.detail":"Подробности отзыва","dialog.hint":"Добавьте детали, чтобы помочь нам стать лучше. Ваше сообщение будет включать журнал текущей беседы.","dialog.title":"Отправить отзыв","error.conflict":"Эту оценку изменили в другом месте; показано актуальное состояние","error.generic":"Не удалось сохранить оценку","error.load":"Не удалось загрузить оценку","error.noteTooLarge":"Описание слишком длинное; сократите его и отправьте снова","toast.recorded":"Спасибо за ваш отзыв"},"goal":{"action.cancel":"Отменить правку","action.clear":"Снять цель","action.edit":"Изменить цель","action.pause":"Приостановить цель","action.resume":"Продолжить цель","action.save":"Сохранить цель","commandInput.aria":"Ввод команды","objective.aria":"Формулировка цели","phase.active":"Цель в работе","phase.active.disarmed":"Неактивная цель","phase.blocked":"Цель заблокирована","phase.paused":"Цель на паузе"},"job":{"count.idle.one":"{count} фоновая задача","count.idle.other":"{count} фоновых задач","count.live.one":"{count} фоновая задача выполняется","count.live.other":"{count} фоновых задач выполняется","duration.hours":"{hours} ч {minutes} мин","duration.minutes":"{minutes} мин {seconds} с","duration.seconds":"{seconds} с","duration.title.done":"Заняло {duration}","duration.title.live":"Выполняется {duration}","kill.confirm":"Нажмите снова для подтверждения","kill.confirmAction":"Подтвердить остановку","kill.failed":"Сбой остановки","kill.stop":"Остановить задачу {label}","list.aria":"Фоновые задачи","output.error":"поток вывода в реальном времени прерван: {error}","output.gap":"… более ранний вывод пропущен …","row.collapseAria":"Скрыть вывод задачи {label}","row.expandAria":"Показать вывод задачи {label}","section.clear":"Очистить","section.live":"Выполняются","section.settledCount":"Завершено {count}","status.completed":"завершена","status.failed":"ошибка","status.killed":"отменена","status.running":"выполняется","status.stopping":"останавливается","terminal.collapse":"Свернуть","terminal.collapseAria":"Свернуть вывод","terminal.copied":"Скопировано","terminal.copy":"Копировать","terminal.done":"завершено","terminal.exitCode":"код завершения {code}","terminal.expand":"Показать ещё {n} строк","terminal.expandAria":"Развернуть {n} скрытых строк вывода","terminal.failed":"сбой","terminal.noExitCode":"нет кода завершения","terminal.noOutput":"(нет вывода)","terminal.running":"выполняется","terminal.signal":"сигнал {signal}"},"model":{"action.reload":"Обновить","command.description":"Выбрать модель для этого диалога","command.label":"Модель","effort.providerDefault":"По умолчанию","empty.efforts":"У этой модели нет уровней рассуждения.","empty.models":"Доступных моделей нет.","error.action":"Операция с моделью не удалась: {message}","error.sessionInUse":"Эта сессия уже используется другим запущенным экземпляром DSH (например, dsh web или десктопным приложением). Завершите другие экземпляры DSH и повторите попытку.","menu.aria":"Модель и уровень рассуждения","menu.effort":"Уровень рассуждений","menu.model":"Модель","option.deepseekV4Flash.description":"Быстрая, эффективная и экономичная; отлично подходит для сфокусированных, рутинных или параллельных задач.","option.deepseekV4Pro.description":"Максимальное качество рассуждений, глубокий анализ кода и решение сложных задач повышенной трудности.","option.loadError":"Каталог не загрузился: {message}","provider.account":"Аккаунт DeepSeek","status.loading":"Обновление списка моделей…","trigger.aria":"Выбор модели, сейчас {model}","trigger.ariaEffort":"Выбор модели, сейчас {model}, уровень рассуждения {effort}","trigger.fallback":"Выбрать модель","trigger.loading":"Загрузка моделей…","trigger.selectAria":"Выбрать модель","warning.groupLoad":"{name} не загрузился: {message}"},"open-in-app":{"app.explorer":"Проводник Windows","app.filemanager":"Файлы","app.finder":"Finder","app.terminal":"Терминал","open.title":"Открыть рабочую область в {app}","open.tooltip":"Открыть локально","path.appDefault":"{app} (по умолчанию)","path.appsError":"Не удалось загрузить приложения","path.more":"Другие способы открытия","path.open":"Открыть","path.openError":"Не удалось открыть. Повторите попытку.","path.reveal":"Показать расположение файла","path.revealError":"Не удалось показать расположение файла. Повторите попытку.","shortcut.busy":"Открытие рабочего пространства","shortcut.unavailable":"Текущее рабочее пространство или локальное приложение недоступно"},"permission.access":{"auto.badge":"EXP","auto.confirm.acknowledge":"Я понимаю риски и хочу продолжить","auto.confirm.description":"Автопроверка работает без изолированной песочницы. Перед каждым вызовом нативного инструмента и внутренним вызовом PTC та же модель рецензирует действие. Функция экспериментальная, может ошибочно блокировать или пропускать действия и расходует токены.","auto.confirm.enable":"Включить автопроверку","auto.confirm.title":"Включить автопроверку (экспериментально)?","auto.description":"Работа без песочницы с экспериментальной проверкой каждого вызова инструментов той же моделью.","auto.label":"Автопроверка","close":"Закрыть","confirm.acknowledge":"Я понимаю риски и хочу продолжить","confirm.cancel":"Отмена","confirm.description":"Полный доступ убирает часть подтверждений и позволяет агенту действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете текущей задаче.","confirm.enable":"Включить полный доступ","confirm.title":"Включить полный доступ?","mode":"Режим доступа, текущий: {name}","preset.fullAccess":"Полный доступ","preset.readOnly":"Только чтение","preset.workspaceWrite":"Запись в рабочую папку"},"plan":{"chip.exitFailed":"Не удалось выйти из режима планирования","chip.label":"План","chip.on.aria":"Режим плана включён, нажмите, чтобы выключить","chip.on.title":"Режим плана включён — нажмите, чтобы выключить (/plan off)","preview.action":"Открыть","preview.document":"План · Markdown","preview.expired":"Срок действия временного предпросмотра плана истёк. Откройте его повторно из карточки ожидания ревью.","preview.failed":"Не удалось загрузить план","preview.full":"Посмотреть весь план","preview.historyUnavailable":"История сессии недоступна","preview.invalidAddress":"Неверный адрес плана","preview.loading":"Загрузка плана…","preview.notFound":"План не найден","preview.open":"Открыть план в боковой панели","preview.openNamed":"Открыть план: {title}","preview.title":"План","preview.unavailable":"Предпросмотр плана недоступен"},"pluginManager":{"addPlugin":"Добавить плагин","backToList":"Назад к списку плагинов","backToPackage":"Назад к {name}","bundlesTitle":"Установленные","cancel":"Отмена","close":"Закрыть","configureRow":"Настроить {name}","confirmUninstall":"Удалить","confirmUninstallDescription":"Все возможности, предоставляемые плагином, станут недоступны после его удаления.","confirmUninstallTitle":"Удалить «{name}»?","crumbRoot":"Плагины","empty":"Плагины пока не установлены.","enableToggle":"Включить {name}","error":"Плагины временно недоступны.","failedDisable":"Не удалось отключить: {reason}","failedEnable":"Не удалось включить: {reason}","failedRowDisable":"Не удалось отключить компонент: {reason}","failedRowEnable":"Не удалось включить компонент: {reason}","failedUninstall":"Не удалось удалить: {reason}","infoDescription":"Настраивайте официальные плагины, устанавливайте и управляйте сторонними расширениями. Список встроенных плагинов и статус их работы доступны в Настройки → Встроенные плагины.","infoLabel":"О плагинах","installApplying":"Применение конфигурации, пожалуйста, подождите…","installApplyingCancellationError":"Отмена не была подтверждена. Установка применяется; дождитесь завершения. {reason}","installApprovalCaution":"Разрешайте скрипты только для доверенных пакетов.","installApprovalConsequence":"После разрешения скрипты выполнятся с вашими правами, а выбор сохранится в этом профиле.","installApprovalDescription":"Эти пакеты содержат скрипты установки, которые pnpm не стал запускать автоматически.","installApprovalTitle":"Скриптам установки требуется разрешение","installApproveAndRetry":"Разрешить эти скрипты и повторить","installAttempt":"{previous} не может предоставить пакет; повторная попытка через {registry} (реестр {index} из {total})","installAttemptBadge":"Попытка {index} · {registry}","installAwaitingAcceptance":"Ожидание подтверждения установки хостом. Отмена повторится автоматически после подтверждения.","installBackgroundApplying":"Установка применяется и не может быть отменена. Посмотреть ход установки.","installBackgroundDone":"Установка завершена. Посмотреть сведения об установке.","installBackgroundFailed":"Сбой установки. Посмотреть сведения об установке.","installBackgroundUnconfirmed":"Статус установки не подтверждён. Откройте сведения об установке.","installBackgroundUnknown":"Результат установки недоступен. Проверьте список плагинов.","installCancel":"Отменить установку","installCancelAndEdit":"Отменить установку и вернуться к редактированию","installCancelUnconfirmed":"Остановка установки не подтверждена. Повторите отмену или дождитесь завершения установки. {reason}","installCancelled":"Установка отменена; плагин не включён, загруженные файлы могут остаться","installCancelledShort":"Отменено","installCancelling":"Остановка установки…","installChangeRegistry":"Сменить реестр","installChecking":"Проверка…","installClose":"Готово","installCloseCancels":"Отменить установку и закрыть","installDescription":"Введите имя пакета плагина, адрес репозитория GitHub или путь к локальному каталогу.","installDetailsHide":"Скрыть подробности установки","installDetailsShow":"Показать подробности установки","installDoneApproved":"Скрипты установки разрешены для {names}","installDoneNothing":"Установка завершена без добавления новых зависимостей.","installDoneRestart":"Установлено; загрузится при следующем запуске.","installEdit":"Изменить","installEditAria":"Вернуться к редактированию","installEnableNow":"Включить сейчас","installFailedTitle":"Не удалось установить плагин","installFailureBuildBlocked":"Сборочные скрипты зависимостей требуют вашего разрешения для продолжения установки","installFailureBuildBlockedManual":"pnpm заблокировал скрипты установки; разрешите их в allowBuilds файла pnpm-workspace.yaml и повторите попытку","installFailureDiskFull":"Диск заполнен; установка остановлена","installFailureGeneric":"Во время установки произошла ошибка; подробности указаны в отчёте","installFailureIntegrity":"Загруженный пакет не прошёл проверку целостности","installFailureNetwork":"Сбой сетевого подключения","installFailureNetworkAll":"Ни один реестр недоступен (попытки: {registries}). Проверьте сетевое подключение или настройки прокси, либо смените реестр и повторите попытку.","installFailureNetworkHost":"Не удалось подключиться к {host}. Адреса GitHub и ссылки на .tgz загружаются не через реестр: эта машина должна иметь прямой доступ к ним или через прокси. Если плагин также опубликован в npm, укажите имя его пакета.","installFailureNoMatchingVersion":"Нет версии, соответствующей запросу","installFailureNotFound":"Плагин не найден","installFailurePermission":"Нет прав на запись; установка плагина невозможна","installFailurePnpmMissing":"pnpm не найден, установка невозможна","installFailureTimeout":"Превышено время ожидания установки","installGitTemplateHint":"Замените на фактический адрес Git-репозитория.","installGithubFailedDescription":"Попробуйте другой источник установки.","installGithubFailedTitle":"Нет доступа к GitHub","installGithubTimeoutTitle":"Превышено время ожидания ответа GitHub","installGuideExampleLabel":"Пример: ","installGuideFill":"Использовать пример","installGuideFillAria":"Использовать пример {example}","installGuideGitHint":"Адрес открытого репозитория плагина на GitHub (другие Git-хостинги также поддерживаются).","installGuideGitTitle":"Адрес репозитория GitHub","installGuideHide":"Скрыть справку","installGuideIdExample":"@deepseek-ai/dsh-experimental-auto-review","installGuideIdHint":"Часть команды после dsh plugin add или pnpm add в инструкции по установке.","installGuideIdTitle":"Имя пакета","installGuidePathHint":"Абсолютный путь к каталогу плагина на этой машине (разрабатываемому или загруженному).","installGuidePathTitle":"Локальный каталог плагина","installGuideSafety":"Устанавливайте только доверенные плагины: они выполняются с вашими правами и могут повредить DeepSeek Harness или раскрыть данные.","installGuideToggle":"Не знаете, что ввести?","installLocation":"Устанавливается в {dir}","installPackageLabel":"Имя пакета плагина","installPathTemplateHint":"Замените на фактический путь к каталогу плагина на диске.","installProblemInstalled":"Этот плагин уже установлен","installProblemInvalid":"Не является допустимым именем пакета или адресом для установки: {reason}","installProblemNetwork":"Не удалось связаться с реестром плагинов; проверьте сеть и повторите попытку","installProblemNetworkAll":"Ни один реестр недоступен (попытки: {registries}); проверьте сетевое подключение, настройки прокси или смените реестр","installProblemNotBundle":"Этот пакет не объявляет бандл и не может быть установлен как плагин: {reason}","installProblemNotFound":"Плагин не найден","installProblemNotPackage":"Путь не существует или не является корректным пакетом плагина","installProblemUnknown":"Не удалось найти плагин: {reason}","installReconcile":"Проверить статус установки","installResultUnconfirmed":"Результат установки не получен. Проверьте статус установки. {reason}","installRetry":"Повторить","installRun":"Установить","installSpecLabel":"Имя пакета или адрес","installSpecPlaceholder":"например @deepseek-ai/dsh-experimental-auto-review","installStarting":"Подготовка установки…","installSubjectGit":"Репозиторий Git","installSubjectPath":"Локальный каталог","installSubjectTarball":"Архив Tarball","installTitle":"Добавить плагин","installTryAnotherWay":"Попробовать другой способ","installUnconfirmedTitle":"Статус установки не подтверждён","installUnknownDescription":"На хосте нет активной установки с этим ID запроса. Проверьте список плагинов перед повторной попыткой.","installUnknownTitle":"Результат установки недоступен","installUseGithubMirror":"Использовать зеркало в континентальном Китае","installVersion":"Версия {version}","installViewTask":"Посмотреть установку","installedTitle":"Установлен","installingTitle":"Установка плагина…","intro":"Добавление и управление плагинами","loading":"Чтение плагинов…","metadataError":"Ошибка метаданных пакета: {error}","officialTitle":"Официальные","openDetail":"Просмотр {name}","overriddenNotice":"Плагин «{name}» сохранён, но переопределён конфигурацией с более высоким приоритетом и не действует","panel":"Плагины","partOff":"Откл.","partToggle":"Включить компонент {name}","partsCountFailed":"с ошибкой {count}","partsCountOff":"отключено {count}","partsCountRunning":"работает {count}","partsCountTotal":"всего {count}","partsEmpty":"Этот пакет плагина не содержит компонентов.","partsFilter":"Фильтр компонентов","partsFilterEmpty":"Нет совпадающих компонентов.","partsLabel":"Компоненты","reasonAmbiguousInstall":"Невозможно определить установленный пакет по изменению зависимостей.","reasonBundleInUse":"Другие конфигурации используют компоненты этого бандла; сначала отключите их.","reasonIncompatibleVersion":"{plugin} несовместим с DSH {runtime} (требует {peers}); запуск может вызвать сбои или потерю данных. Установите версию плагина, совместимую с этой версией DSH.","reasonIncompatibleVersionUnnamed":"Этот плагин несовместим с текущей версией DSH; запуск может вызвать сбои или потерю данных.","reasonInvalidSpec":"Введите корректное имя пакета или адрес.","reasonLabel":"Причина","reasonManagementRequired":"Требуется для управления плагинами; отключение или удаление невозможно.","reasonNotBundle":"Этот пакет не объявляет бандл и не может управляться как плагин.","reasonNotRemovable":"Пакет не принадлежит профилю либо требуется для управления плагинами.","reasonOperationError":"Хост сообщил об ошибке.","reasonStaleApproval":"Список ожидающих подтверждения скриптов изменился; повторите установку для обновления.","reasonStopProfile":"Этот профиль работает без HMR; остановите его и удалите пакет через dsh plugin.","reasonUnaddressable":"Патч профиля не может однозначно адресовать этот элемент.","reasonUnknownPlugin":"Плагин не найден.","refresh":"Обновить","refreshError":"Не удалось обновить список. Повторите попытку.","registryCustom":"Пользовательский адрес","registryCustomHint":"Корпоративный или частный реестр npm; для авторизации сохраните учётные данные в ~/.npmrc на этой машине","registryCustomInvalid":"Введите адрес, начинающийся с http:// или https://","registryCustomPlaceholder":"https://npm.example.com/","registryDefault":"Реестр по умолчанию","registryLegend":"Реестр npm, из которого загружается плагин","registryListSeparator":", ","registryNpmmirror":"Зеркало для материкового Китая (npmmirror)","registryOfficial":"Официальный реестр npm","registryToggle":"Реестр","restartNotice":"Изменения вступят в силу при следующем запуске","retry":"Повторить","rowPhaseActive":"Работает","rowPhaseFailed":"Проблема","rowPhaseLoading":"Загрузка","rowPhasePending":"Ожидание зависимостей","rowPhaseUnloading":"Выгрузка","rowStateIdle":"Не запущен","statusBeta":"Бета","statusProblem":"Проблема","terminalCollapse":"Свернуть","terminalCollapseAria":"Свернуть вывод","terminalCopied":"Скопировано","terminalCopy":"Копировать","terminalDone":"Готово","terminalExitCode":"код завершения {code}","terminalExpand":"… ещё {n} строк","terminalExpandAria":"Развернуть оставшиеся {n} строк вывода","terminalFailed":"Ошибка","terminalNoExitCode":"код завершения отсутствует","terminalNoOutput":"Вывод отсутствует","terminalRunning":"Выполняется","terminalSignal":"сигнал {signal}","title":"Плагины","unavailable":"Эта среда развёрнута без управляемого профиля, поэтому установка и переключение плагинов здесь недоступны.","uninstall":"Удалить","uninstallLabel":"Удалить {name}","versionTag":"v{version}"},"question":{"action.next":"Дальше","action.skip":"Пропустить вопрос","custom.placeholder":"Впишите свой ответ","error.incomplete":"Сначала ответьте на этот вопрос.","error.unanswered":"Выберите вариант или впишите свой ответ.","nav.cancel":"Закрыть все вопросы","nav.maximize":"Развернуть карточку вопроса","nav.minimize":"Свернуть карточку вопроса","nav.next":"Следующий вопрос","nav.prev":"Предыдущий вопрос","option.recommended":"Рекомендуем","plan.approve":"Утвердить","plan.decline":"Отклонить","plan.discuss":"Обсудить","plan.header":"Проверка плана"},"reference":{"candidate.noCwd":"(нет cwd)","crumb.root":"Рабочее пространство","section.files":"Файлы и папки","section.sessions":"Диалоги сессий","section.subagents":"Субагенты","time.days":"{n} дн.","time.hours":"{n} ч.","time.minutes":"{n} мин.","time.months":"{n} мес.","time.now":"сейчас","time.years":"{n} г."},"schedule.catalog":{"delete.action":"Удалить","delete.label":"Удалить напоминание: {title}","delete.pending":"Удаление…","frequency.every":"Каждые {value} {unit}","frequency.once":"Однократно","hover.more":"Еще {count}","list.aria":"Активные напоминания","list.error":"Не удалось загрузить напоминания.","list.loading":"Загрузка напоминаний…","list.nextRun":"Следующий запуск","list.open":"Открыть сведения о напоминании: {title}","list.retry":"Повторить","mark.aria":"Запланированных задач: {count}","trigger.label":"Напоминания","trigger.one":"{count} напоминание","trigger.other":"{count} напоминаний"},"schedule.manager":{"card.deleted":"Удалена","card.open":"Открыть","card.openLabel":"Открыть сведения о задаче: {title}","cronForm.atMinute":"В минуту","cronForm.daily":"Каждый день","cronForm.dateOption":"Число {day}","cronForm.dates":"По числам","cronForm.frequency":"Периодичность","cronForm.minuteDecrease":"Уменьшить минуту","cronForm.minuteIncrease":"Увеличить минуту","cronForm.monthly":"Ежемесячно","cronForm.weekly":"Еженедельно","delete.action":"Удалить задачу","delete.cancel":"Отмена","delete.close":"Закрыть подтверждение удаления","delete.confirm":"Удалить","delete.description":"Это остановит запуск задачи и удалит ее вместе с сохраненными записями о доставке. Исходная сессия и ее сообщения сохранятся; сообщения в очереди не отменяются.","delete.pending":"Удаление…","delete.title":"Удалить эту задачу?","delivery.collapse":"Свернуть","delivery.cursorError":"Записи были обновлены.","delivery.empty":"Нет записей о доставке","delivery.error":"Не удалось загрузить записи о доставке.","delivery.expand":"Развернуть","delivery.label":"Сохраненная запись о доставке","delivery.loadMore":"Загрузить еще","delivery.loading":"Загрузка записей о доставке…","delivery.notFound":"Эта задача больше недоступна.","delivery.pruned":"Более ранние записи о доставке были удалены","delivery.refresh":"Обновить","delivery.retention":"Правила хранения","delivery.retentionBounds":"Каждая задача сохраняет до {records} записей о доставке за последние {days} дн.","delivery.retentionExplanation":"При сохранении новой записи устаревшие записи за пределами этих лимитов удаляются автоматически. Очистка записей не останавливает выполнение задачи.","delivery.retry":"Повторить","detail.close":"Закрыть сведения","detail.frequency":"Периодичность","detail.id":"ID задачи","detail.instruction":"Инструкция для задачи","detail.label":"Сведения о задаче","detail.missing":"Задача недоступна. Возможно, она была удалена.","detail.more":"Действия с задачей","detail.name":"Название задачи","detail.next":"Следующий запуск","detail.nextRun":"Следующий запуск","detail.openSession":"Связанная сессия: открыть исходную сессию","detail.openSessionTitle":"Связанная сессия {title}: открыть исходную сессию","detail.records":"Записи о доставке","detail.rule":"Правила","detail.session":"Связанная сессия","detail.sessionArchived":"Исходная сессия заархивирована.","detail.sessionLoading":"Загрузка информации об исходной сессии.","detail.sessionUnavailable":"Исходная сессия недоступна.","detail.status":"Статус","detail.tabs":"Вкладки сведений о задаче","empty.action":"Новая задача автоматизации","frequency.every":"Каждые {value} {unit}","frequency.once":"Один раз","list.empty":"Задач пока нет. Созданные в сессиях задачи появятся здесь.","list.emptyInactive":"Нет неактивных задач автоматизации","list.error":"Не удалось загрузить задачи.","list.label":"Каталог задач","list.loading":"Загрузка задач…","list.nextPrefix":"Следующий запуск: ","list.noMatches":"Задачи не найдены","list.retry":"Повторить","new.action":"Создать","panel":"Задачи автоматизации","rule.cancel":"Отмена","rule.cron":"Свое расписание","rule.cronInvalid":"Введите выражение cron из пяти полей, например 0 9 * * 1-5.","rule.cronLabel":"Cron-выражение","rule.daily":"Каждый день","rule.error.conflict":"Эта задача изменилась до сохранения обновления. В строке показано сохраненное правило; попробуйте еще раз.","rule.error.notFound":"Эта задача больше недоступна.","rule.error.unknown":"Не удалось подтвердить обновление правила. В строке показано сохраненное правило.","rule.everyHours":"Каждые N часов","rule.everyMinutes":"Каждые N минут","rule.everySeconds":"Каждые N секунд","rule.invalidPrompt":"Введите инструкцию для задачи.","rule.invalidTitle":"Введите название задачи (не более 120 символов).","rule.once":"Один раз","rule.repeat":"Повтор","rule.save":"Сохранить изменения","rule.saving":"Сохранение…","rule.title":"Время запуска","rule.unsaved":"Несохраненные изменения","rule.weekday":"День недели","rule.weekdayOption":"День недели {weekday}","rule.weekdays":"С понедельника по пятницу","rule.weekly":"Еженедельно","rule.zone.system":" (системный)","search.clear":"Очистить поиск","search.label":"Поиск задач","search.placeholder":"Поиск задач автоматизации","status.active":"Включена","status.inactive":"Неактивна","statusFilter.all":"Все","statusFilter.label":"Статус задачи","timing.conflict":"Эта задача изменилась во время редактирования. Ваш черновик сохранен. Отмените, обновите и откройте снова для редактирования актуального правила.","timing.date":"Дата","timing.error":"Не удалось подтвердить обновление расписания. Ваш черновик сохранен. Проверьте задачу перед повторной попыткой.","timing.hour":"Час","timing.inactive":"Неактивные задачи доступны только для чтения. Их расписание нельзя изменить.","timing.interval":"Повторять каждые","timing.intervalDecrease":"Уменьшить интервал","timing.intervalHint.hour":"Не менее 1 часа. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalHint.minute":"Не менее 1 минуты. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalHint.second":"Не менее 60 секунд. Интервал отсчитывается от момента создания задачи или последнего изменения правила и не зависит от часового пояса.","timing.intervalIncrease":"Увеличить интервал","timing.invalid":"Введите корректные дату и время или проверьте поля расписания.","timing.invalidInterval":"Укажите интервал не менее 1 минуты.","timing.invalidInterval.hour":"Укажите интервал не менее 1 часа.","timing.invalidInterval.minute":"Укажите интервал не менее 1 минуты.","timing.invalidInterval.second":"Укажите интервал не менее 60 секунд.","timing.invalidZone":"Введите корректный часовой пояс IANA, например Europe/Moscow или Asia/Shanghai.","timing.minute":"Минута","timing.nextMonth":"Следующий месяц","timing.notFound":"Эта задача больше недоступна. Ваш черновик сохранен; нажмите «Отмена», чтобы закрыть редактор.","timing.notFuture":"Выберите дату и время в будущем.","timing.prevMonth":"Предыдущий месяц","timing.second":"Секунда","timing.time":"Время","timing.unit.hour":"ч.","timing.unit.minute":"мин.","timing.unit.second":"сек.","timing.zone":"Часовой пояс","timing.zoneNoResults":"Часовые пояса не найдены","timing.zoneNoStored":"Для разовой задачи сохраняется только целевой момент времени, а не часовой пояс. Дата и время интерпретируются в выбранном поясе.","timing.zoneSearch":"Поиск по смещению UTC, ID IANA или городу","title":"Задачи автоматизации","toast.deleteFailed":"Не удалось удалить задачу.","toast.deleted":"Задача удалена.","tool.invoked":"Вызван: {name}"},"session-log-download":{"dialog.close":"Закрыть","dialog.commandFailed":"Не удалось запустить экспорт сессии.","dialog.errorTitle":"Экспорт сессии не удался","dialog.preparingDescription":"Готовится ZIP с этой сессией, её подсессиями и вложениями.","dialog.preparingTitle":"Экспорт сессии","dialog.successDescription":"Браузер загружает ZIP с сессией.","dialog.successTitle":"Загрузка сессии началась","header.more":"Другие действия","menu.download":"Скачать журнал сессии","menu.feedback":"Обратная связь"},"settings":{"close":"Закрыть","connection.connected":"Подключено","connection.connecting":"Подключение","connection.error":"Отключено","connection.reconnect":"Отключено, переподключиться сейчас","connection.restart":"Подключение, перезапустить сейчас","desktop.update.available":"Обновление","desktop.update.checkFailed":"Не удалось проверить обновления. Повторите попытку позже.","desktop.update.checkNetworkFailed":"Не удалось проверить обновления. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.checking":"Проверка обновлений…","desktop.update.downloadDetail":"Загрузка обновления: {percent}%\nЦелевая версия: V{version}","desktop.update.downloadFailed":"Не удалось загрузить обновление. Повторите попытку.","desktop.update.downloadNetworkFailed":"Не удалось загрузить обновление. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.installFailed":"Не удалось установить обновление. Повторите попытку позже.","desktop.update.installNetworkFailed":"Не удалось установить обновление. Соединение прервано. Проверьте подключение к сети и повторите попытку.","desktop.update.installing":"Подготовка к перезапуску…","desktop.update.progress":"{percent}%…","desktop.update.ready":"Установить и перезапустить","desktop.update.retry":"Повторить обновление","desktop.update.stopFailed":"Не удалось безопасно остановить задачи. Обновление не установлено. Повторите попытку позже.","desktop.update.tasksChanged":"Запущены новые задачи. Проверьте подтверждение обновления ещё раз.","desktop.update.tasksUnavailable":"Статус задач недоступен. Повторите обновление, когда рабочая область будет готова.","desktop.update.verifying":"Проверка файлов обновления…","desktop.update.versionDetail":"{label} — V{version}","developerTools.description":"Инструменты и сведения для отладки и устранения неполадок","developerTools.error":"Не удалось сохранить. Пожалуйста, повторите попытку.","developerTools.title":"Инструменты разработчика","general.currentVersion":"Текущая версия: {version}","general.nav":"Общие","openDocument":"Открыть файл настроек","openDocument.error":"Не удалось открыть файл настроек","shortcut.open":"Открыть настройки","title":"Настройки","trigger":"Настройки"},"settings.account":{"accountInfo":"Подробная информация об аккаунте","addApiKey":"Добавить API-ключ","backToHarness":"Назад в DeepSeek Harness","balance":"Баланс пополнения","balanceSignedOut":"Войдите для просмотра","balanceUnavailable":"Просмотр на платформе","bonusBalance":"Бонусный баланс","bonusEmpty":"Нет доступных бонусов","bonusNoticeTitle":"Бонус начислен","browserDescription":", затем откройте её в браузере для завершения входа.","browserPrompt":"Страница не открылась автоматически? ","browserTitle":"Ожидание входа","cancel":"Отмена","close":"Закрыть","completing":"Завершение входа…","contactUs":"Связаться с нами","copiedLink":"Ссылка скопирована","copyFailed":"Не удалось скопировать","copyLink":"Скопировать ссылку для входа","expired":"Срок действия входа истёк. Повторите попытку.","failed":"Не удалось выполнить операцию. Повторите попытку.","failureTitle":"Не удалось войти","initializing":"Инициализация входа…","loading":"Загрузка…","loginDescription":"Войдите, чтобы создавать, редактировать и делиться дизайн-проектами. Всё сохраняется локально.","loginTitle":"Начать создание","menu":"Меню аккаунта","modelSignInRequired":"Модель недоступна. Пожалуйста, войдите в аккаунт и повторите попытку.","more":"Ещё","nav":"Аккаунт","onboardingArtworkLocale":"ru","onboardingBack":"Назад","onboardingBrand":"DeepSeek Harness","onboardingCompact":"Только результаты","onboardingCompactDescription":"Только результаты в лаконичном и простом интерфейсе","onboardingContinue":"Продолжить","onboardingCredit":"Пополнить баланс","onboardingCreditDescription":"DeepSeek Harness списывает кредиты на основе токенов, потребляемых моделями и инструментами. Пополните баланс заранее, чтобы ваши задачи выполнялись без перерывов. Баланс расходуется только тогда, когда агент выполняет задачу.","onboardingDetailed":"Полные детали","onboardingDetailedDescription":"Полный ход процесса для удобной отладки и поиска причин","onboardingDevelopment":"Программирование и разработка","onboardingDevelopmentDescription":"Редактирование кода, отладка, выполнение команд, управление файлами проекта и другое","onboardingEnter":"Открыть приложение","onboardingFundedTopUp":"Пополнить баланс","onboardingGoTopUp":"Пополнить баланс","onboardingIntroduction":"DeepSeek Harness работает в локальной папке и использует инструменты для чтения и записи файлов на вашем компьютере. Он помогает исследовать и структурировать информацию, создавать документы и таблицы, писать код, устранять неполадки и многое другое.","onboardingKeepSetting":"Продолжить настройку","onboardingLater":"Далее","onboardingLoading":"Загрузка настроек…","onboardingNoCreditDescription":"DeepSeek Harness не может запускать новые задачи без кредитов на балансе. Вы сможете пополнить его позже в профиле → Аккаунты.","onboardingNoCreditTitle":"Пропустить пополнение баланса?","onboardingOffice":"Офисная и творческая работа","onboardingOfficeDescription":"Редактирование документов, организация данных, подготовка презентаций и другое","onboardingProcess":"Какой уровень детализации вам подходит?","onboardingProcessDescription":"Это влияет только на отображение процесса, а не на возможности DeepSeek Harness.","onboardingPurposeDescription":"Мы настроим интерфейс и инструменты под ваш рабочий процесс.","onboardingPurposePrefix":"С чем вам должен помочь","onboardingPurposeSuffix":"?","onboardingRetry":"Повторить","onboardingSaveFailed":"Не удалось сохранить настройки. Попробуйте еще раз.","onboardingSkip":"Пропустить","onboardingSkipDescription":"Вы можете изменить отображение прогресса, производительности и расхода, а также включить инструменты разработки в любое время в профиле → Основные настройки.","onboardingSkipTitle":"Пропустить настройку?","onboardingStandard":"Ключевые детали","onboardingStandardDescription":"Фокус на результатах с отображением самых важных шагов и действий","onboardingStart":"Начать работу","onboardingTopUp":"Пополнить баланс","onboardingUnderstood":"Понятно","onboardingWelcome":"Добро пожаловать в","open":"Открыть браузер","platformFailed":"Не удалось выполнить операцию. Повторите попытку.","platformRetry":"Повторить попытку","profileUnavailable":"Данные аккаунта пока недоступны.","quotaDescription":"DeepSeek Harness не может запустить новую задачу с этим аккаунтом при нулевом балансе. Хотите пополнить баланс? Вы также можете сделать это позже в разделе Настройки → Аккаунт.","quotaTitle":"Нет доступного баланса","quotaTopUp":"Пополнить баланс","retry":"Войти снова","sessionExpired":"Вы вышли из учетной записи, пожалуйста, выполните вход снова.","settings":"Настройки","settingsSignedOutDescription":"Войдите в DeepSeek Harness для получения персонального API-ключа","settingsSignedOutTitle":"Вы не вошли в DeepSeek Harness","signIn":"Войти","signInDescription":"Используйте ваш аккаунт DeepSeek для начала работы.","signOut":"Выйти","signOutDescription":"Выход из аккаунта не приведет к удалению данных. Вы сможете снова войти в этот аккаунт.","signOutRunningDescription":"В данный момент выполняются задачи. Выход из аккаунта прервет их. Выйти сейчас?","signOutUnknownDescription":"Не удалось проверить выполняемые задачи. Выход из аккаунта может прервать задачи, использующие эту учетную запись. Выйти сейчас?","signedIn":"Выполнен вход в DeepSeek","signedOut":"Вход не выполнен","timeoutDescription":"Войдите снова для продолжения.","timeoutTitle":"Время ожидания входа истекло","topUp":"Пополнить","usage":"Просмотр использования","waiting":"Продолжите в браузере"},"settings.agentLoop":{"description":"Управление диспетчеризацией вызовов инструментов агентом.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxParallel":"Параллельные вызовы инструментов","maxParallelHint":"Верхний предел параллельно исполняемых безопасных вызовов в рамках одного шага.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","title":"Цикл агента","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.agentPreset":{"brokenBadge":"Не загрузился","builtInGroup":"Встроенные","close":"Закрыть","creatorDraft":"Набросать свой пресет в режиме «Конструктор»","customGroup":"Свои","enableDevToolsToCreate":"Включите инструменты разработки в основных настройках, чтобы запустить режим создания","enableDevToolsToSetDefault":"Включите инструменты разработки в основных настройках, чтобы выбрать значение по умолчанию","headerHint":"Пресет агента, на котором идёт сессия; зафиксирован при запуске","inUse":"Используется","nav":"Пресеты агента","noDescription":"Без описания.","presetCordisDescription":"Для создания своих пресетов: всё из обычного режима плюс инспекция рантайма, опыты с плагинами и подсказки по авторству пресетов.","presetCordisName":"Конструктор","presetMinimalDescription":"Агент из двух инструментов: постоянный bash и str_replace_editor.","presetMinimalName":"Минимальный режим","presetPtcDescription":"Полноценный агент разработки без инструмента рабочих процессов; остальные инструменты доступны через SDK режима PTC, что позволяет модели объединять многоэтапные операции в одну программу TypeScript.","presetPtcName":"Режим PTC","presetStandardDescription":"Полноценный кодинг-агент: правка файлов, консоль, поиск по файлам и в вебе, скиллы, планирование, цели, субагенты и воркфлоу.","presetStandardName":"Обычный режим","seatHint":"Пресет агента для сессии, которую вы собираетесь запустить","sectionIntro":"Пресет — это состав плагинов, на котором работает агент сессии: его инструменты, промпт и возможности. Скопируйте готовый и допилите под себя или попросите агента набросать свой в режиме «Конструктор».","setDefault":"Сделать основным","switchRefused":"Не удалось переключиться на {name}: {reason}","view":"Посмотреть"},"settings.archivedSessions":{"empty":"Нет архивных сессий.","emptySearch":"Нет подходящих сессий.","loading":"Чтение сессий…","nav":"Архив сессий","search":"Поиск по архивным сессиям","time.days":"{n} дн","time.hours":"{n} ч","time.minutes":"{n} мин","time.months":"{n} мес","time.now":"сейчас","time.years":"{n} г","unarchive":"Разархивировать","unarchiveNamed":"Разархивировать «{title}»","unavailable":"Здесь нет архивных сессий, доступных для восстановления.","ungrouped":"Без группы"},"settings.locale":{"language.title":"Язык"},"settings.models":{"add":"Добавить провайдера","addCatalog":"Сторонний провайдер моделей","addCatalogExhausted":"Все провайдеры из каталога уже настроены.","addCatalogHint":"Выберите OpenAI, Anthropic, Kimi или другого провайдера из встроенного каталога и введите его API-ключ.","addCustom":"Пользовательский API модели","addCustomHint":"Подключите ретранслятор, собственный сервер или любой совместимый с OpenAI или Anthropic эндпоинт по базовому URL, протоколу и списку моделей.","addCustomUnavailable":"Нет доступных API-протоколов для добавления.","addMode":"Способ добавления","addModel":"Добавить модель","advancedHint":"Остальные поля живут в settings.yaml — правьте этот раздел напрямую.","apply":"Применить","applying":"Применение…","baseUrl":"Базовый URL","baseUrlDefault":"По умолчанию у провайдера","cancel":"Отмена","close":"Закрыть","conflict":"Пока карточка была открыта, настройки изменил кто-то ещё. Закройте и откройте заново, чтобы править актуальные значения.","contextWindow":"Окно контекста","contextWindowPlaceholder":"Как у провайдера по умолчанию","create":"Создать провайдера","creating":"Создание…","credentialConfigured":"API-ключ задан","credentialMissing":"API-ключ не задан","customAnthropicBaseUrlPlaceholder":"https://gateway.example","customApi":"Протокол API","customApiUnset":"Не выбран","customBaseUrlInvalid":"Введите корректный URL (HTTP или HTTPS).","customBaseUrlPlaceholder":"https://gateway.example/v1","customDisplayName":"Отображаемое имя","customNeedsBaseUrl":"Своему провайдеру нужен базовый URL.","customNeedsModels":"Своему провайдеру нужна хотя бы одна модель.","customRoute":"Идентификатор провайдера","customRouteHint":"Идентификатор в нижнем регистре, начинается с буквы. По нему провайдер адресуется в запросах, и так же называется его ключ.","customRouteInvalid":"Начните со строчной буквы, дальше строчные буквы, цифры и дефисы.","customRouteTaken":"Такой идентификатор уже занят другим провайдером.","customTag":"Свой","customized":"Настройки изменены","deepSeekAccount":"Аккаунт DeepSeek","deepSeekBaseUrl":"https://api.deepseek.com/anthropic","deepSeekEndpointHint":"Используйте эндпоинт, совместимый с настроенным подключением.","deleteConfirm":"Удалить {provider}","deleteDescription":"Удаление {provider} убирает его настройки. Ключ, которым он пользовался, хранится отдельно и останется.","deleteDescriptionWithCredential":"Удаление {provider} убирает его настройки и сохранённый API-ключ.","deleteTitle":"Удалить {provider}?","deleting":"Удаление {provider}…","edit":"Изменить","editProvider":"Изменить {provider}","fetchAdopt":"Добавить выбранные","fetchDescription":"Вот модели, доступные у этого провайдера. Отметьте те, что нужно добавить.","fetchDeselectAll":"Снять выбор","fetchEmpty":"Провайдер не вернул ни одной модели. Добавьте их вручную.","fetchModels":"Запросить список моделей","fetchNeedsBaseUrl":"Сначала укажите базовый URL, потом запрашивайте.","fetchNoMatches":"Нет подходящих моделей.","fetchSearch":"Поиск моделей","fetchSelectAll":"Выбрать все","fetchTitle":"Выберите модели","fetching":"Запрос к провайдеру…","intro":"Введите свои API-ключи, чтобы пользоваться моделями этих провайдеров.","keyBlank":"Введите API-ключ или оставьте поле пустым, чтобы сохранить прежний.","keyBlankNew":"Введите API-ключ или оставьте поле пустым, если провайдер авторизуется иначе.","keyEnvLocked":"Задан переменной окружения (только чтение)","keyIllegalCharacters":"Ключ в недопустимом формате. Проверьте его.","keyInput":"API-ключ","keyPlaceholder":"Введите API-ключ","keyPlaceholderNative":"Введите API-ключ или оставьте пустым для авторизации из окружения","keyRequired":"Чтобы продолжить, введите API-ключ.","keyStored":"Задан — введите новое значение, чтобы заменить","loadFailed":"Не удалось загрузить список провайдеров","maxTokens":"Максимум выходных токенов","maxTokensPlaceholder":"Как у провайдера по умолчанию","model":"Модель","modelAdvanced":"Ёмкости","modelCapacityInvalid":"Ёмкость задаётся числом, можно с суффиксом K или M.","modelContextInvalid":"Окно контекста — положительное число, например 131072, 256K или 1M.","modelDuplicate":"Каждый идентификатор модели встречается один раз.","modelId":"Идентификатор модели","modelIdDuplicate":"Идентификатор модели должен быть уникальным.","modelIdRequired":"Нужен идентификатор модели.","modelInputImage":"Изображение","modelInputText":"Текст","modelInputTypes":"Типы входных данных","modelMaxTokensInvalid":"Максимум выходных токенов — положительное число, например 8192, 64K или 1M.","modelName":"Отображаемое имя","modelNameInvalid":"Отображаемое имя не может быть пустым.","modelNamePlaceholder":"Пусто — возьмётся идентификатор модели","models":"Модели","modelsCustomized":"Каталог моделей изменён","modelsEmpty":"В выборе моделей не будет ничего. Неуказанные идентификаторы всё равно можно отправлять напрямую.","modelsInherited":"По умолчанию, как в адаптере","nav":"Модели","onboardingDescription":"Настройте официального провайдера DeepSeek, чтобы начать.","onboardingLater":"Настроить позже","onboardingSave":"Сохранить и продолжить","onboardingSaving":"Сохранение…","onboardingTitle":"Добавьте API-ключ, чтобы начать","protocolAnthropicMessages":"Anthropic Messages","protocolOpenAiCompletions":"OpenAI Chat Completions","protocolOpenAiResponses":"OpenAI Responses","provider":"Провайдер","readOnly":"В этой установке файл настроек доступен только для чтения.","remove":"Удалить","removeModel":"Удалить модель","removeProvider":"Удалить {provider}","resetModels":"Вернуть значения по умолчанию","retry":"Повторить","savedProvider":"{provider} сохранён.","settingsPathUnresolvable":"неразрешимый путь настроек","title":"Модели","welcomeBody":"DeepSeek Harness 0.1 находится на стадии тестирования для разработчиков Harness. Многие компоненты требуют дальнейшего улучшения, и мы приветствуем обратную связь от сообщества. Базовые плагины и системные API DeepSeek Harness продолжат активно развиваться в ближайшие месяцы.\n\nМы с нетерпением ждём возможности исследовать границы искусственного интеллекта вместе с разработчиками по всему миру на базе открытой, модульной и повторно используемой инфраструктуры. Приглашаем разработчиков присоединиться к экосистеме плагинов DSH.","welcomeContinue":"Продолжить","welcomeError":"Не удалось сохранить подтверждение. Попробуйте ещё раз.","welcomeTitle":"Уведомление о внутреннем тестировании"},"settings.permission":{"confirm.acknowledge":"Я понимаю риски и хочу продолжить","confirm.cancel":"Отмена","confirm.description":"Полный доступ позволяет новым сессиям реже спрашивать подтверждение и действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете будущим задачам.","confirm.enable":"Включить полный доступ","confirm.title":"Включить полный доступ?","description":"Режим разрешений по умолчанию для новых сессий","loading":"Загрузка","preset.fullAccess":"Полный доступ","preset.readOnly":"Только чтение","preset.workspaceWrite":"Запись в рабочую папку","title":"Разрешения","unavailable":"Недоступно"},"settings.pluginInventory":{"active":"Подключён","clientSyncFailed":"Не удалось синхронизировать некоторые плагины на этой странице. Состояние включения на хосте не изменилось.","clientSyncRetry":"Повторить на этой странице","clientSyncing":"Синхронизация плагинов на этой странице…","condition":"Отключено, когда","conditionalTag":"Условный","configuration":"Настройки","countUnit":"плагинов","disabledTag":"Выключен","empty":"Плагинов нет.","emptySearch":"Подходящих плагинов нет.","enabledIn":"Включено в","enabledTag":"Включён","error":"Плагины временно недоступны.","failed":"Не удалось подключить","failedCountLabel":"с ошибкой","failedTag":"Ошибка","fromPreset":"Из","globalSubtitle":"Общие для системы и каждой сессии","globalTitle":"Глобальные плагины","loading":"Чтение плагинов…","loadingPhase":"Загрузка","matchesInOtherPresets":"ещё {count} совпадений в других пресетах: ","metadataError":"Ошибка метаданных пакета: {error}","moduleLabel":"Модуль","pending":"Ожидает зависимости","presetEnabledTag":"Включено через пресеты","presetOptionBroken":"{name} (не удалось загрузить)","presetOptionDefault":"{name} (по умолчанию)","presetProvidedDetail":"Отключено глобально; предоставляется пресетами агента для каждой сессии","presetSubtitle":"Формируются для каждой сессии пресетами агента","presetTitle":"Плагины сессии","retry":"Повторить","runtime":"Статус","search":"Поиск плагинов","switcherLabel":"Выберите пресет агента для просмотра","tab":"Список плагинов","unloading":"Выгружается","unobserved":"Не подключён","viewInPreset":"Посмотреть в группе пресетов"},"settings.plugins":{"empty":"В этой установке настройки плагинов не выведены.","intro":"Настройка и просмотр плагинов, установленных в этой сборке.","nav":"Плагины","tabs":"Разделы плагинов","title":"Плагины"},"settings.sessionLog":{"description":"Помогает улучшать модели и сервисы DeepSeek.","failed":"Не удалось сохранить настройки","saved":"Настройки сохранены","title":"Отправлять журнал сессий при использовании официального API моделей"},"settings.shell":{"description":"Ограничение времени выполнения команд и объёма их вывода.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxOutputBytes":"Лимит вывода на поток (байты)","maxOutputBytesHint":"Вывод сверх этого лимита сбрасывается во временный файл, чтобы не потеряться.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","timeoutMs":"Таймаут команды (мс)","timeoutMsHint":"Максимальное время выполнения одной команды до её принудительного завершения.","title":"Оболочка (Shell)","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.subagent":{"overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","subagentCapacityHelp":"Общее количество активных субагентов под управлением одного главного агента на всех уровнях рекурсии (главный агент не учитывается). При достижении лимита новые запросы на запуск отклоняются.","subagentCapacityHelpLabel":"О лимите параллелизма субагентов","subagentCapacityInvalid":"Введите целое число от 1 или больше.","subagentDepthHelp":"Ограничивает количество уровней субагентов, которые может создавать агент.","subagentDepthHelpLabel":"О максимальной глубине рекурсии","subagentDepthInvalid":"Введите целое число от 0 или больше.","subagentDepthOne":"Только главный агент может создавать субагентов","subagentDepthOverride":"Если инструмент определяет собственную максимальную глубину рекурсии, приоритет имеет его настройка.","subagentDepthZero":"Отключить субагентов","subagentDescription":"Настройка глубины рекурсии, количества и моделей субагентов.","subagentLimitsTitle":"Ограничения","subagentMaxActive":"Лимит параллельных субагентов","subagentMaxDepth":"Максимальная глубина рекурсии","subagentModelSelectionAllowed":"Модели, доступные агентам для выбора","subagentModelSelectionChoose":"Если включено, агенты могут выбирать провайдера, модель и уровень рассуждений для каждого субагента из списка разрешённых моделей ниже. Применяется только к новым сессиям.","subagentModelSelectionConflict":"Настройки были изменены в другом месте. Отмените черновик и попробуйте снова.","subagentModelSelectionEmpty":"В настоящее время ни один провайдер не предоставляет моделей.","subagentModelSelectionLoadFailed":"Не удалось загрузить модели.","subagentModelSelectionLoading":"Загрузка моделей…","subagentModelSelectionOff":"Субагенты используют настройки по умолчанию или наследуют модель родительского агента. Сохранённые варианты моделей сохраняются.","subagentModelSelectionPartial":"Некоторых провайдеров моделей не удалось загрузить; сохранённые варианты можно удалить.","subagentModelSelectionRequired":"Выберите хотя бы одну модель перед сохранением.","subagentModelSelectionRetry":"Повторить","subagentModelSelectionTitle":"Выбор модели","subagentModelSelectionToggle":"Разрешить агентам выбирать модели для субагентов","subagentModelSelectionUnavailable":"В настоящее время недоступно","subagentModelSelectionUnavailableGroup":"Сохранено, но сейчас недоступно","subagentTitle":"Субагент","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"settings.theme":{"appearance.dark":"Тёмная","appearance.light":"Светлая","appearance.system":"Как в системе","appearance.title":"Оформление","fontSize.decrease":"Уменьшить размер шрифта","fontSize.description":"Влияет только на содержимое диалога","fontSize.increase":"Увеличить размер шрифта","fontSize.title":"Размер шрифта","fontSize.unit":"пкс"},"settings.webSearch":{"apiKey":"API-ключ","apiKeyHint":"Хранится отдельно от файла настроек. Оставьте пустым, чтобы сохранить текущий ключ.","apiKeySet":"Ключ настроен.","apiKeyUnset":"Ключ не настроен; поиск недоступен, пока ключ не указан.","baseUrl":"Конечная точка (Endpoint)","baseUrlHint":"Оставьте пустым для использования значения по умолчанию провайдера.","description":"Настройка поискового провайдера DeepSeek.","invalidNumber":"Введите число или оставьте пустым для значения по умолчанию.","maxUses":"Макс. поисков на запрос","maxUsesHint":"Сколько раз за один запрос допускается выполнять поиск до формирования ответа.","overridden":"Переопределено","readOnly":"В данном развёртывании настройки доступны только для чтения.","reset":"Сбросить к значениям по умолчанию","save":"Сохранить","saveFailed":"Развёртывание не приняло эти значения; они оставлены для исправления.","saving":"Сохранение…","title":"Веб-поиск","unavailable":"Этот плагин не загружен и не может быть настроен прямо сейчас."},"shortcuts":{"application":"Приложение","approval":"Область подтверждения","cancel":"Отмена","clear":"Удалить","clear-search":"Очистить поиск","close":"Закрыть горячие клавиши","close-confirmation":"Закрыть подтверждение","conflict":"Уже используется в «{commands}»","description":"Просмотр и редактирование доступных горячих клавиш и действий ввода","desktop-document":"userData/keybindings.json","desktop-reload":"перезапустите Harness","dismiss":"Закрыть меню или верхнее диалоговое окно","edit-label":"Изменить сочетание клавиш для: {command}","empty":"Сочетания клавиш не найдены","future":"Конфигурация горячих клавиш в {location} была создана более новой версией. Обновите Harness и повторите попытку.","global-hint":"Доступно отовсюду","input":"Поле ввода сообщений","invalid":"Конфигурация горячих клавиш в {location} повреждена. Создайте резервную копию и исправьте конфигурацию, затем выполните: {reload}.","macos-web-help":"Используйте Command+/, Command+,, Command+Backslash, Control+Backquote, Command+Option+клавиша или Command+Shift+клавиша. Также поддерживаются комбинации из 3–4 различных модификаторов. Браузерные или системные сочетания клавиш могут не доходить до страницы.","menus":"Меню и диалоговые окна","modified-count":"Изменено: {count}","modifier-required":"Комбинация должна содержать Command, Ctrl или Alt.","move":"Перемещение по меню","native-failed":"Не удалось включить перехват клавиш десктопа. Выйдите из режима записи и повторите попытку.","not-ready":"Горячие клавиши не готовы. Пожалуйста, попробуйте еще раз.","open":"Открыть горячие клавиши","read":"Не удалось прочитать {location}. Проверьте права доступа, затем выполните: {reload}.","record":"Нажмите сочетание клавиш","record-help":"Отпустите клавиши для сохранения. Tab — переключение между действиями; Esc — отмена.","reserved":"Эта комбинация зарезервирована для системных действий или редактирования текста.","reset":"По умолчанию","reset-all":"Сбросить все","reset-description":"Восстановить стандартные сочетания клавиш для этой платформы. Все измененные или удаленные сочетания будут сброшены до исходных. Настройки для других платформ не изменятся.","reset-failed":"Не удалось восстановить стандартные значения. Ваши горячие клавиши не изменились. Попробуйте еще раз.","reset-saved":"Стандартные сочетания клавиш восстановлены","reset-title":"Сбросить все сочетания клавиш?","retry-save":"Повторить сохранение","review":"Я проверил актуальную конфигурацию","saved":"Изменено","search":"Поиск сочетаний клавиш","select":"Выбрать пункт меню","settings":"Горячие клавиши","stale":"Конфигурация сочетаний клавиш или доступные команды изменились. Проверьте актуальные привязки перед сохранением.","title":"Горячие клавиши","too-many-keys":"Удерживайте не более двух неклавишных модификаторов. Отпустите клавиши и попробуйте снова.","unbound":"Нет сочетания","unsupported-browser":"Этот браузер пока не поддерживает данную комбинацию.","unsupported-key":"Эта клавиша не поддерживается.","using-accepted":"Остаются активными последние успешно прочитанные привязки.","using-defaults":"Используются стандартные привязки.","view":"Изменить сочетания клавиш","web-document":"запись dsh.keybindings.v1 в localStorage этого сайта","web-help":"Комбинации в браузере: Mod+/, Mod+Shift+,, Mod+Shift+.. Mod — это Command на Mac и Ctrl в других системах.","web-reload":"перезагрузите страницу","windows-web-help":"Используйте Ctrl+/, Ctrl+,, Ctrl+Alt+клавиша или Ctrl+Shift+клавиша. Также поддерживаются комбинации из 3–4 различных модификаторов. Браузерные или системные сочетания клавиш могут не доходить до страницы.","write-failed":"Не удалось сохранить. Ваши прежние сочетания клавиш и текущий черновик сохранены. Попробуйте еще раз."},"shortcuts.layout":{"toggle":"Переключить левую боковую панель"},"sidebar":{"panels.label":"Глобальные панели","session.new":"Новая сессия","session.new.label":"Новая сессия","toggle.collapse":"Свернуть панель","toggle.open":"Открыть панель"},"sidebarBrowser":{"address.changed":"URL изменён","address.placeholder":"Введите адрес HTTP(S)","address.unknown":"Страница перешла по адресу; текущий компонент не может прочитать новый URL.","back":"Назад","error.application-origin":"Встроенный браузер не может открывать само приложение DSH.","error.credentials":"Адрес не может содержать имя пользователя или пароль.","error.empty":"Введите адрес.","error.invalid":"Адрес недействителен или слишком длинен.","error.protocol":"Поддерживаются только адреса HTTP и HTTPS; для локальных файлов используйте предпросмотр документов.","external":"Открыть в системном браузере","forward":"Вперёд","go":"Перейти","guide.description":"Просмотр страниц HTTP(S)","guide.title":"Браузер","load.failed":"Не удалось загрузить страницу; обновите её или откройте в системном браузере.","load.failed.detail":"Сбой загрузки страницы ({code}): {description}","loading":"Открытие…","reload":"Обновить","restore.action":"Восстановить страницу","restore.previous":"Ранее открытая","sandbox.disable":"Отключить ограничения песочницы","sandbox.enable":"Включить ограничения песочницы","sandbox.warning":"Ограничения песочницы отключены; страница может управлять верхнеуровневым приложением, выполнять скачивания, открывать модальные окна и блокировать ввод.","shortcut.noSession":"Сначала откройте сессию","start":"Введите адрес HTTP(S) для начала работы","type.label":"Браузер"},"sidebarCodePreview":{"copied":"Скопировано","copy":"Копировать","title":"Код"},"sidebarDocumentPreview":{"autoRefresh":"Автообновление","autoRefresh.disable":"Отключить автообновление","autoRefresh.enable":"Включить автообновление","changed":"Файл изменился, показано предыдущее содержимое.","error.notFound":"Файл не найден. Возможно, он был перемещён или удалён.","error.notRegularFile":"Не является обычным файлом, нечего отобразить.","error.notText":"Не текстовый файл, предпросмотр пока недоступен.","error.tooLarge":"Размер страницы превышает лимит {limit} и не может быть прочитан.","error.unavailable":"Сбой чтения: {message}","loadMore":"Загрузить ещё","loading":"Чтение…","openWith":"Открыть с помощью","reload":"Перечитать файл","reloadNow":"Обновить","rendererUnavailable":"Предпросмотр {name} недоступен.","resourceUnavailable":"Служба файловых ресурсов недоступна.","retry":"Повторить","unsupportedFile":"Предпросмотр для этого типа файлов пока недоступен.","viewer.text":"Простой текст","wrap.aria":"Перенос строк","wrap.disable":"Отключить перенос строк","wrap.enable":"Включить перенос строк"},"sidebarExcel":{"charts":"диаграммы","conditionalFormatting":"условное форматирование","encoding":"Не удалось прочитать кодировку текста. Сохраните файл как UTF-8 или UTF-16 с BOM и повторите попытку.","featureSeparator":", ","formulaWarning":"Эта книга содержит формулы. Отображаемые результаты могут отсутствовать или быть неточными.","images":"изображения","invalid":"Не удалось открыть электронную таблицу. Проверьте формат, содержимое или защиту паролем.","language":"ru","loading":"Открытие электронной таблицы…","retry":"Повторить","shapes":"фигуры","timeout":"Истекло время ожидания открытия книги. Попробуйте файл меньшего размера.","title":"Электронная таблица","tooLarge":"Размер книги превышает лимит предварительного просмотра.","unsupportedNotice":"Этот просмотрщик не поддерживает {features} в данной книге. Откройте её в системном приложении для полного доступа."},"sidebarFiles":{"autoRefresh":"Автообновление","autoRefresh.disable":"Отключить автообновление","autoRefresh.enable":"Включить автообновление","empty":"Файлы не найдены","entry.other":"Не является файлом или папкой и не может быть открыт.","error.notDirectory":"Указанный путь не является каталогом.","error.notFound":"Каталог больше не существует. Возможно, он был перемещён или удалён.","error.outsideWorkspace":"Каталог находится за пределами рабочей области, чтение заблокировано.","error.unavailable":"Ошибка чтения: {message}","guide.description":"Просматривайте файлы в рабочей области сессии и открывайте любой из них.","guide.title":"Файлы","loading":"Чтение…","noWorkspace":"У этой сессии нет каталога рабочей области.","reload":"Перезагрузить","shortcut.noSession":"Сначала выберите сессию","truncated":"Слишком много записей; показана только часть.","type.label":"Файлы"},"sidebarImage":{"failed":"Не удалось отобразить изображение.","loading":"Открытие изображения…","preview":"Предпросмотр изображения: {name}","title":"Изображение","unsupported":"Для предпросмотра изображения требуется полное содержимое файла."},"sidebarOffice":{"busy":"Служба предпросмотра занята. Повторите попытку позже.","changed":"Файл изменился во время чтения. Откройте предпросмотр заново.","closeDetails":"Скрыть сведения о шрифтах","failed":"Конвертация документа не создала пригодный PDF. Проверьте файл и повторите попытку.","invalid":"Предпросмотр этого офисного файла невозможен. Файл повреждён, защищён паролем или имеет неверное расширение.","loading":"Чтение…","missingFontsCount":"Шрифтов: {count}","missingFontsDescription":"Эти шрифты недоступны для предпросмотра. Текст и верстка могут отличаться от исходного документа.","missingFontsTitle":"Отсутствующие шрифты","retry":"Повторить","timeout":"Превышено время ожидания конвертации документа. Повторите попытку.","title":"Офисный документ","tooLarge":"Размер файла или сконвертированного PDF превышает лимит предпросмотра. Уменьшите размер файла или скорректируйте настройки.","unavailable":"Предпросмотр офисных документов недоступен. Включите службу предпросмотра документов на компьютере, где запущен DeepSeek Harness.","viewMissingFonts":"Отсутствующие шрифты: {count}. Нажмите для просмотра."},"sidebarPdf":{"failed":"Не удалось отобразить PDF: {message}","loading":"Открытие PDF…","pageImage":"Страница PDF {page}","password":"Этот PDF защищён паролем; предпросмотр документов с паролем не поддерживается.","rendering":"Рендеринг страницы…","retry":"Повторить","title":"PDF","unsupported":"Для предпросмотра PDF требуется полное содержимое файла.","workerFailed":"Процесс рендеринга PDF не смог продолжить работу. Попробуйте снова."},"sidebarRight":{"chrome.collapse":"Свернуть панель","chrome.collapseAria":"Свернуть правую боковую панель","chrome.exitFullscreen":"Выйти из полноэкранного режима","chrome.expand":"Развернуть панель","chrome.expandAria":"Открыть правую боковую панель","chrome.toFullscreen":"На весь экран","command.budget":"Максимальное количество панелей: две","command.close":"Закрыть текущую страницу или окно","command.collapsed":"Сначала разверните правую панель","command.empty":"Сначала откройте страницу","command.float":"Это действие недоступно в плавающей панели","command.fullscreen":"На весь экран","command.noFocus":"Сначала активируйте панель правой боковой панели","command.noRefresh":"Эту страницу нельзя обновить","command.noSession":"Сначала выберите сессию","command.refresh":"Обновить текущую страницу","command.stale":"Страница изменилась; активируйте ее снова","command.toggle":"Переключить правую панель","command.width":"Недостаточно ширины для разделения, расширьте боковую панель","dock.addTab":"Добавить вкладку","dock.closeFloat":"Закрыть плавающее окно","dock.closeTab":"Закрыть вкладку","dock.dockFloat":"Закрепить в панели","dock.drop.bottom":"Разделить по горизонтали снизу","dock.drop.center":"Переместить сюда","dock.drop.left":"Разделить по вертикали слева","dock.drop.right":"Разделить по вертикали справа","dock.drop.top":"Разделить по горизонтали сверху","dock.emptyPane":"Пустая панель","dock.splitPane":"Разделить вправо","dock.splitPaneDisabled":"Максимум две панели","dock.splitPaneNarrow":"Недостаточно ширины для разделения; увеличьте боковую панель","tab.guide.title":"Начало","tab.unavailable":"Пока нет средств для отображения данного типа содержимого."},"sidebarTerminal":{"attachmentEnded":"Подключение к терминалу завершено. Переподключитесь для продолжения.","cleanupFailed":"Не удалось завершить терминал «{title}»: {message}","closed":"Терминал закрыт.","connecting":"Подключение…","control":"Перехватить управление","creating":"Запуск…","description":"Выполнение команд в рабочей области сессии","disconnected":"Отключено.","exited":"Процесс завершился с кодом {code}","failed":"Ошибка терминала: {message}","inputFull":"Буфер ввода переполнен. Переподключитесь и повторите попытку.","invalidOutput":"Не удалось получить экран терминала. Переподключитесь для восстановления.","loading":"Чтение окружения терминала…","missingTerminal":"Этот терминал больше не существует. Откройте новый терминал.","new":"Новый терминал","readonly":"Этот вид доступен только для чтения.","reconnect":"Переподключиться","recoveryFailed":"Не удалось восстановить терминал: {message}","rename":"Название терминала","retry":"Повторить","retryRecovery":"Повторить восстановление терминала","shell":"Выбрать командную оболочку","shellEmpty":"Нет доступных оболочек","shellLoading":"Загрузка оболочек…","shortcut.noSession":"Сначала выберите сессию","terminalLimit":"Достигнут лимит терминалов. Закройте неиспользуемые терминалы и повторите попытку. Завершённые терминалы также учитываются в лимите.","title":"Терминал","unavailable":"Недоступно"},"sidebarTextpreview":{"changed":"Изменено","error.notFound":"Файл не найден на диске","error.notRegularFile":"Объект не является обычным файлом","error.notText":"Двоичный файл не может быть отображён как текст","error.outsideWorkspace":"Файл находится за пределами рабочей области","error.tooLarge":"Файл слишком велик; боковая панель не читает файлы более {limit}.","error.unavailable":"Ошибка чтения: {message}","loadMore":"Загрузить больше строк","loading":"Загрузка предпросмотра…","readonly":"Только чтение","reload":"Перечитать файл","reloadNow":"Перезагрузить","retry":"Повторить","title":"Предпросмотр файла","truncated":"Показаны первые {lines} строк из {total}","wrap":"Перенос строк"},"skill":{"menu.userOnly":"только вручную","row.failed":"Не удалось загрузить скилл","row.inspect":"Инспектировать","row.instructions":"Инструкции","row.preparing":"Подготовка к загрузке навыка","row.running":"Загрузка скилла","row.stopped":"Загрузка скилла остановлена","row.title":"Навык"},"slash.menu":{"command":"Команды","crumbs.aria":"Навигация по папкам","drill.aria":"Открыть папку","drill.hint":"Открыть папку","drill.key":"Tab","loading":"Загрузка…","skill":"Скиллы","subagent":"Субагенты","suggestions.aria":"Подсказки по вводу"},"subagent":{"activity.completed":"завершено","activity.inactive":"не работает","activity.running":"работает","branch.collapse":"Свернуть потомков {label}","branch.expand":"Развернуть потомков {label}","count.running.one":"{count} субагент работает","count.running.other":"{count} субагентов работает","count.total.one":"{count} субагент","count.total.other":"{count} субагентов","duration.days":"{days} дн","duration.daysHours":"{days} дн {hours} ч","duration.exactDays":"{days} дн {hours} ч {minutes} мин {seconds} с","duration.exactTitle":"Всего активного времени: {duration}","duration.hours":"{hours} ч {minutes} мин {seconds} с","duration.minutes":"{minutes} мин {seconds} с","duration.months":"~{months} мес","duration.monthsDays":"~{months} мес {days} дн","duration.seconds":"{seconds} с","duration.years":"~{years} г","duration.yearsMonths":"~{years} г {months} мес","load.error":"Не удалось загрузить субагентов","loading.label":"Загрузка субагентов…","mode.continuable":"с продолжением","mode.oneShot":"разовый","mode.unknown":"неизвестный режим","open.sidebar":"Открыть в боковой панели","open.sidebar.aria":"Открыть «{label}» на боковой панели","readonly.body":"Родительская сессия офлайн; откройте её заново, чтобы продолжить переписку.","readonly.oneShot.body":"Разовые задачи не принимают продолжения; здесь можно изучить полную запись выполнения.","readonly.oneShot.title":"Запись разового субагента","readonly.title":"Пока этот субагент доступен только для чтения","readonly.unknown.body":"Прочитайте дочернюю сессию, чтобы определить, можно ли её продолжить.","retry":"Повторить","sidebar.chat":"Чат","switcher.aria":"Переключить субагента: {title}","tokens.million":"{value} млн","tokens.thousand":"{value} тыс.","tokens.total":"{value} токенов","tree.aria":"Сессии субагентов"},"trajectory":{"attachment.imageName":"Изображение {index}","attachment.list":"Вложения","block.label":"Блок #{index} {type}","block.openSummary":"Открыть сводку вызова инструментов блока #{index}","block.openSummaryTitle":"Открыть сводку вызова инструментов","code.copyOutput":"Копировать вывод","code.copySource":"Копировать код","code.originalJson":"Исходный JSON","code.output":"Вывод","code.running":"Выполняется…","code.source":"Код","column.input":"Входные данные","column.model":"Модель","column.output":"Результат","column.think":"Мысли","column.time":"Время","column.tools":"Инструменты","details.assistantMessage":"Assistant Message","details.close":"Close details","details.compacted":"Compacted","details.error":"Ошибка","details.event":"Event details","details.failure.auth":"API key is invalid","details.hierarchy":"Hierarchy","details.model":"Model","details.provider":"Provider","details.purpose":"Purpose","details.resize":"Resize event details","details.resizeTitle":"Drag to resize. Double-click to reset.","details.result":"Result","details.retry":"Retry","details.retryDelay":"Retry delay","details.scheduled":"Scheduled","details.source":"Source","details.status":"Status","details.subtoolCalls":"Subtool calls","details.toolCall":"Tool Call","details.toolCalls":"Tool calls","group.compaction":"Compaction {seq}","group.message":"Message","group.step":"Step {step}","history.clickToLoadEarlier":"Click to load earlier history","history.loadEarlier":"Load earlier history","history.loadingEarlier":"Загрузка…","history.loadingEarlierAria":"Загрузка…","history.loadingTrajectory":"Загрузка…","kind.assistant":"ASSISTANT","kind.compacted":"COMPACTED","kind.context":"CONTEXT","kind.message":"Message","kind.sub":"Sub","kind.subtool":"SUBTOOL","kind.system":"SYSTEM","kind.tool":"TOOL","kind.user":"USER","layout.compacted":"Context compacted","layout.compacting":"Compacting context…","layout.compactionFailed":"Compaction failed","layout.compactionInterrupted":"Compaction was interrupted before completion.","layout.fileAttachments":"Файлы ×{count}","layout.imageCount":"Изображений: ×{count}","layout.initialSystemPrompt":"Initial System Prompt","layout.systemPromptAndToolsUpdated":"System Prompt and Tools Updated","layout.systemPromptUpdated":"System Prompt Updated","layout.toolAdded":"Инструмент добавлен: {name}","layout.toolCallOnly":"Tool call only","layout.toolRemoved":"Инструмент удален: {name}","layout.toolUpdateNotice":"Инструменты обновлены","layout.toolsAdded":"Добавлено: {names}","layout.toolsAddedCount":"Добавлено: {count}","layout.toolsChanged":"Добавлено: {added}, удалено: {removed}","layout.toolsRemoved":"Удалено: {names}","layout.toolsRemovedCount":"Удалено: {count}","layout.toolsUpdated":"Tools Updated","options.json":"Request options JSON","options.notRecorded":"Options not recorded","record.json":"JSON","record.namedParametersJson":"{name} parameters JSON","record.noContent":"No content","record.noOutput":"No output","record.noPayload":"No payload captured","record.noResult":"No result captured","record.outputJson":"Result JSON","record.parameters":"Parameters","record.parametersJson":"parameters JSON","record.payloadJson":"Payload JSON","record.resultJson":"Result JSON","record.schemaUnavailable":"Schema unavailable","record.systemPrompt":"System Prompt","record.systemPromptMissing":"No system prompt in this request","record.thinking":"Thinking","record.toolCallOnly":"(tool call only)","record.tools":"Tools","record.toolsMissing":"No tools in this request","record.wrapLines":"Wrap lines","request.collapsedAssistant":"assistant","request.collapsedSummary":"Collapsed {kind} summary, {summary}","request.collapsedTurn":"turn","request.compaction":"Compaction · {section}","request.compactionPurpose":"Compaction","request.label":"Request #{request}","request.labelCompaction":"Request #{request} · Compaction","request.noContent":"no content","request.retryProgress":"{retry} of {maximum}","request.rowAria":"{request}{kind}, {content}","request.rowAriaCompaction":"Request {request}, compaction","request.rowPrefix":"Request {request}, ","section.betweenTurns":"Between turns","source.goal":"Goal","source.goalRound":"Goal · Round {round}","source.messageJson":"Message source JSON","source.notRecorded":"Source not recorded","source.plugin":"Plugin","source.pluginNamed":"Plugin · {plugin}","source.unknown":"Unknown","source.user":"User","status.completed":"Завершено","status.failed":"Ошибка","status.pending":"Pending","summary.steps.one":"{count} step","summary.steps.other":"{count} steps","summary.toolCalls.one":"{count} tool call","summary.toolCalls.other":"{count} tool calls","tab.diff":"Diff","tab.options":"Options","tab.payload":"Payload","tab.preview":"Preview","tab.raw":"Raw","tab.rawOutput":"Raw Output","tab.result":"Result","tab.schema":"Schema","tab.source":"Source","tab.summary":"Summary","tab.systemPrompt":"System Prompt","tab.timing":"Timing","tab.tools":"Tools","tab.usage":"Usage","timeline.aria":"Trajectory timeline","timeline.noTimingData":"No timing data","timeline.overviewAria":"Timeline overview; drag horizontally to focus events","timeline.started":"Started {time}","timeline.total":"Total {duration}","timeline.ttftDecoding":"TTFT {ttft} · Decoding {decoding}","timing.duration":"Длительность","timing.durationTooShort":"Слишком малое время","timing.firstTokenUnavailable":"First token unavailable","timing.generation":"Generation","timing.notAvailable":"Not available","timing.notRecorded":"Not recorded","timing.outputTokensUnavailable":"Output токенов unavailable","timing.request":"Request Timing","timing.sessionTimestamps":"Session timestamps","timing.sessionTimestampsRunning":"Session timestamps (running)","timing.showLocalTime":"Show local time","timing.showUnixTimestamp":"Show Unix timestamp","timing.source":"Timing source","timing.started":"Started","timing.stepStartUnavailable":"Step start unavailable","timing.throughput":"Throughput","timing.totalDuration":"Общая длительность","timing.ttft":"TTFT","timing.usageUnavailable":"Usage unavailable","toolbar.actualTime":"Actual time","toolbar.aria":"Trajectory toolbar","toolbar.calls":"Calls","toolbar.collapseCalls":"Collapse calls","toolbar.collapseTurns":"Collapse turns","toolbar.duration":"Длительность","toolbar.expandCalls":"Expand calls","toolbar.expandTurns":"Expand turns","toolbar.search":"Search trajectory","toolbar.searchPlaceholder":"Search","toolbar.turns":"Turns","toolbar.useActualDuration":"Фактическая длительность","toolbar.useEqualWidth":"Use equal-width operations","turn.label":"Turn {turn}","unit.milliseconds":"{value} ms","unit.seconds":"{value} s","unit.tokens":"{value} tok","unit.tokensPerSecond":"{value} tok/s","usage.cacheCreated":"Cache created","usage.cached":"Cached","usage.content":"Content","usage.input":"Input","usage.notReported":"Usage not reported","usage.other":"Other","usage.output":"Output","usage.reasoning":"Reasoning","usage.sessionCumulative":"Session cumulative","usage.thisRequest":"This request","usage.tokens":"Токены","view.trajectory":"Trajectory"},"voice-input":{"auto":"Определять автоматически","cancel":"Отмена","cancelPrepare":"Отменить подготовку","cancelled":"Голосовой ввод отменён.","cloud":"Аудиозапись будет отправлена в выбранный облачный сервис.","cloudReady":"Облачное распознавание речи готово к работе.","conflict":"Ваш черновик изменился. Распознанный текст сохранён и может быть вставлен в текущую позицию курсора.","dictate":"Диктовка","discard":"Удалить расшифровку","download.certificate":"Не удалось скачать {resource}: сбой проверки сертификата.","download.dns":"Не удалось скачать {resource}: не удалось разрешить адрес загрузки.","download.http":"Не удалось скачать {resource}: служба загрузки вернула HTTP {status}.","download.integrity":"Загрузка {resource} не завершена или не прошла проверку целостности.","download.network":"Не удалось скачать {resource}: сбой подключения к службе загрузки.","download.storage":"Не удалось сохранить {resource}: недостаточно места на диске или нет прав на запись.","download.timeout":"Превышено время ожидания загрузки {resource}.","download.unknown":"Не удалось подготовить {resource}.","downloadAdvice.certificate":"Проверьте системные часы, доверенные сертификаты и настройки прокси на машине с DSH, затем повторите попытку.","downloadAdvice.dns":"Проверьте настройки DNS и прокси на машине с DSH. Убедитесь, что домен источника загрузки разрешается, затем повторите попытку.","downloadAdvice.http":"Убедитесь, что адрес загрузки доступен и прокси имеет доступ к службе загрузки, либо повторите попытку позже.","downloadAdvice.integrity":"Повторите загрузку. Другие завершённые и проверенные файлы будут сохранены.","downloadAdvice.network":"Убедитесь, что машина с DSH имеет доступ к источнику загрузки и сервисам загрузки моделей. При необходимости настройте прокси на этой машине, затем повторите попытку.","downloadAdvice.storage":"Проверьте свободное место на диске и права на запись в каталог моделей на машине с DSH, затем повторите попытку.","downloadAdvice.timeout":"Проверьте сетевое подключение или прокси на машине с DSH, затем повторите попытку позже. Проверенные скачанные файлы сохранены.","downloadAdvice.unknown":"Проверьте сеть, свободное место на диске и права доступа к каталогу моделей на машине с DSH, затем повторите попытку.","downloadBytes":"Загрузка: {completed} / {total} МБ, {percent}%","downloadCode":"Код ошибки: {code}","downloadProgress":"Ход загрузки","downloadSource":"Источник загрузки: {source}","downloadUnknown":"Загружено {completed} МБ","elapsed":"Ожидание {seconds} с","empty":"Речь не распознана","failed":"Сбой распознавания речи: {message}","insert":"Вставить текст","interrupted":"Запись была прервана. Пожалуйста, повторите попытку.","ja":"Японский","ko":"Корейский","language":"Язык распознавания","loading":"Загрузка служб распознавания…","local":"Аудио распознаётся локально на машине с DSH. При первой настройке модели по умолчанию скачиваются с Hugging Face, поэтому машина должна иметь доступ к Hugging Face и его сервисам загрузки моделей. Если требуется прокси, настройте его на этой машине.","permission":"Доступ к микрофону отключён. Разрешите его в настройках браузера и системы.","preparation.cancelled":"Подготовка отменена. Завершённые загрузки сохранены.","preparation.cancelling":"Отмена подготовки…","preparation.checking":"Проверка локальных ресурсов…","preparation.loading":"Загрузка {name}…","preparation.ready":"Локальное распознавание речи готово к работе.","preparation.standby":"Локальные ресурсы подготовлены. Начало записи активирует распознавание.","preparation.unprepared":"При первом использовании будут загружены локальные модели распознавания.","preparation.waking":"Активация локального распознавания речи…","preparationFailed":"Сбой подготовки: {message}","preparationSteps":"Этапы подготовки","prepare":"Скачать и подготовить","provider":"Сервис распознавания","reconnecting":"Подключение к распознаванию речи…","recording":"Запись…","requesting":"Предоставьте доступ к микрофону для продолжения…","retryPrepare":"Повторить подготовку","retryRecording":"Записать снова","setup.disk":"Место на диске","setup.diskValue":"Требуется около {gb} ГБ для моделей, среды выполнения и кэша загрузок","setup.estimateNote":"Это ориентировочные значения; при медленном подключении может потребоваться больше времени. Загрузки используются повторно; неактивные модели по умолчанию освобождают память.","setup.local":"Локальные модели будут загружены на машину с DSH. Python или компилятор не требуются.","setup.memory":"Память","setup.memoryValue":"Около {gb} ГБ при загруженной модели; при распознавании может потребоваться больше","setup.time":"Первичная настройка","setup.timeValue":"Занимает примерно {min}–{max} мин в зависимости от сети и параметров машины","setupPrompt.body":"Голосовой ввод включён. При первом использовании требуется скачать и подготовить локальные модели распознавания. Откройте параметры плагина для оценки требуемого дискового пространства, памяти и времени перед началом настройки.","setupPrompt.details":"Открыть настройки плагина голосового ввода","setupPrompt.later":"Позже","setupPrompt.open":"Перейти к настройке","setupPrompt.title":"Настройте голосовой ввод перед записью","setupPrompt.trigger":"Настроить голосовой ввод","setupPrompt.unavailableBody":"Откройте сведения о плагине голосового ввода, чтобы проверить статус распознавания речи, ход подготовки или ошибки.","setupPrompt.unavailableTitle":"Распознавание речи не готово","short.downloading":"Загрузка","short.failed":"Сбой настройки","sourceAuto":"Автоматически (рекомендуется)","sourceAutoHelp":"Использовать первый ответивший источник и переключаться на другой при сбое загрузки.","sourceChoice":"Источник загрузки моделей","sourceHuggingFace":"Hugging Face","sourceManualHelp":"Загружать только из выбранного источника. Проверенные ранее загруженные файлы используются повторно.","sourceMirror":"HF-Mirror (зеркало в Китае)","start":"Начать запись","step.check":"Проверка локальных ресурсов","step.load":"Загрузка {name}","step.model":"Подготовка модели распознавания","step.vad":"Подготовка модели обнаружения голоса","step.verify":"Проверка файлов модели","stepStatus.cancelled":"Отменено","stepStatus.complete":"Завершено","stepStatus.failed":"Сбой","stepStatus.pending":"Не начато","stepStatus.running":"Выполняется","stop":"Остановить и расшифровать","tooLarge":"Запись превышает ограничение службы. Попробуйте сделать более короткую запись.","transcribingShort":"Расшифровка…","unavailable":"Этот браузер не поддерживает запись аудио. Используйте браузер с поддержкой микрофона.","wakingShort":"Активация…","yue":"Кантонский"},"workflowRun":{"member.empty":"Пустое имя участника","member.open":"Открыть {name}","phase.empty":"Пустое имя фазы","phase.unassigned":"Вне фаз","run.empty":"Ни один участник не запущен","run.members.one":"{count} участник","run.members.other":"{count} участников","run.title":"{name}","status.cancelled":"Отменено","status.completed":"Завершено","status.failed":"Ошибка","status.interrupted":"Прервано","status.running":"Работает","statusCount.cancelled":"Отменено: {count}","statusCount.completed":"Завершено: {count}","statusCount.failed":"Ошибок: {count}","statusCount.interrupted":"Прервано: {count}","statusCount.running":"Работает: {count}"},"workspace":{"actions.archive":"Архивировать","actions.newSession":"Новая сессия","actions.newSession.aria":"Новая сессия в {name}","actions.pin":"Закрепить","actions.session.aria":"Действия с сессией {name}","actions.unarchive":"Разархивировать","actions.unpin":"Открепить","actions.workspace.aria":"Действия с рабочей папкой {name}","archive.confirm.action":"Остановить и архивировать","archive.confirm.activity":"Работа, которая будет остановлена","archive.confirm.desc":"В «{title}» всё ещё выполняется работа. При архивации она будет остановлена; вы сможете восстановить сессию позже через «Показать архив» в боковой панели, но остановленные задачи не возобновятся автоматически.","archive.confirm.jobs.one":"{n} фоновая задача: {names}","archive.confirm.jobs.other":"{n} фоновых задач: {names}","archive.confirm.listSeparator":", ","archive.confirm.other.one":"{n} другой элемент работы ({kind})","archive.confirm.other.other":"{n} других элементов работы ({kind})","archive.confirm.pending":"Остановка и архивация…","archive.confirm.schedules.one":"{n} запланированное напоминание: {names}","archive.confirm.schedules.other":"{n} запланированных напоминаний: {names}","archive.confirm.subagents.one":"{n} запущенный субагент: {names}","archive.confirm.subagents.other":"{n} запущенных субагентов: {names}","archive.confirm.title":"Остановить и архивировать эту сессию?","archive.confirm.turn":"Текущий ход выполнения","conflict.named":"Рабочая папка «{name}» уже есть.","date.ymd":"{d}.{m}.{y}","defaultWorkspace.failed":"Не удалось создать рабочую область по умолчанию. Используйте «Выбрать рабочую область» для выбора папки.","delete.desc":"Уберёт «{name}» из списка рабочих папок. Сама папка и журналы сессий останутся, а её сессии переедут в «Без папки».","delete.pending":"Удаление рабочей папки…","delete.workspace":"Удалить рабочую папку","empty.noMatches":"Ничего не найдено","empty.none":"Сессий пока нет","empty.noneArchived":"Архивированных сессий пока нет","empty.viewOthers":"Просмотреть другие сессии","field.sessionName":"Название сессии","field.workspaceName":"Название рабочей папки","filterBy.label":"Фильтр сессий","folderError.retry":"Выбрать снова","folderError.title":"Не удалось открыть папку","group.ungrouped":"Без папки","groupBy.flat":"Одним списком","groupBy.label":"Группировать","groupBy.workspace":"По рабочим папкам","groupBy.workspaceTree":"Дерево рабочей области","hover.copied":"Скопировано","hover.created":"Создано {time}","menu.addWorkspace":"Добавить рабочую папку…","menu.archiveSession":"Убрать сессию в архив","menu.fork":"Ответвить сессию","menu.pinSession":"Закрепить сессию","menu.unarchiveSession":"Разархивировать сессию","menu.unpinSession":"Открепить сессию","orderBy.label":"Сортировать","orderBy.manual":"Вручную","orderBy.updated":"По изменению","picker.loading":"Загрузка рабочих папок…","rename":"Переименовать","rename.session.title":"Переименовать сессию","rename.workspace.title":"Переименовать рабочую папку","row.archived":"В архиве","row.pinned":"Закреплено","search.clear":"Очистить поиск","search.hasMore":"Показаны первые {n} результатов. Уточните запрос.","search.hasMore.few":"Показаны первые {n} результата. Уточните запрос.","search.noMatches":"Подходящих сессий нет","search.pending":"Поиск по истории сессий…","search.placeholder":"Поиск по сессиям...","search.results.aria":"Результаты поиска","search.sessions.aria":"Поиск сессий","section.sessions":"Сессии","section.workspaces":"Рабочие папки","session.new":"Новая сессия","session.untitled":"Новый чат","sessions.collapse":"Показать меньше","sessions.count.one":"{n} сессия","sessions.count.other":"{n} сессий","sessions.expand":"Показать ещё {n}","shortcut.directoryBusy":"Выбор или добавление рабочего пространства","shortcut.forkFailed":"Не удалось ответвить сессию. Попробуйте еще раз.","shortcut.noCompletedTurn":"В этой сессии нет завершенных ответов","shortcut.noPicker":"Диалог выбора папки недоступен","shortcut.noSession":"Сначала выберите сессию","status.compact.answer":"Ответ","status.compact.approval":"Подтверждение","status.compact.planReview":"Проверка плана","status.completed":"Завершено","status.idle":"Простаивает","status.planReview":"План ждёт проверки","status.running":"Работает","status.subagentsRunning.one":"{n} субагент работает","status.subagentsRunning.other":"{n} субагентов работает","status.waitingAnswer":"Ждёт ответа","status.waitingApproval":"Ждёт подтверждения","time.ago":"{t} назад","time.days":"{n} дн","time.hours":"{n} ч","time.minutes":"{n} мин","time.months":"{n} мес","time.now":"только что","time.years":"{n} г","toast.archived":"Сессия архивирована. Вы можете ","toast.archivedFilter":"фильтровать архивные сессии","toast.archivedNotOpenable":"Архивные сессии нельзя открыть. Разархивируйте для просмотра.","toast.archivedOr":" или ","toast.archivedUndo":"отменить","toast.createFailed":"Не удалось создать новую сессию: {message}","toast.pinFailed":"Не удалось закрепить. Попробуйте позже.","toast.stoppedAndArchived":"Сессия остановлена и архивирована. Вы можете ","toast.unpinFailed":"Не удалось открепить. Попробуйте позже.","viewOptions.hideArchived":"Скрыть архивированные","viewOptions.label":"Параметры отображения","viewOptions.onlyArchived":"Только архивные","viewOptions.showArchived":"Показать архив","workspace.add":"Добавить рабочую папку"}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"description": "Russian localization for DeepSeek Harness (DSH v0.1.7-rc.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.7-rc.1 core support (terminal, archive, command palette, Auto review, trajectory, PTC/Creator presets) and complete GoodAndReady plugin catalog (subscriptions, tts, image-gen, voice, key-limits, notify, commandcode, plugin-console).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"lint": "python3 tools/lint_translations.py"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"
|
|
53
|
+
"@deepseek-ai/schemastery": "^3.18.4"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
56
|
+
"@deepseek-ai/schemastery": "^3.18.4"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
"bin": {
|
|
71
71
|
"dsh-i18n": "./bin/dsh-i18n.mjs"
|
|
72
72
|
}
|
|
73
|
-
}
|
|
73
|
+
}
|