@ragnoryok1/dsh-client-locale-ru 0.1.1 → 0.1.2
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 +172 -37
- package/lib/client.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -122,17 +122,23 @@ window.__ModuleLoader__.load({
|
|
|
122
122
|
"status.empty": "Нет вариантов",
|
|
123
123
|
"overlay.aria": "Варианты /{command}",
|
|
124
124
|
"listbox.aria": "Совпадения /{command}",
|
|
125
|
-
"notice.attachmentsUnsupported": "/{command} не принимает вложения; сначала удалите их"
|
|
125
|
+
"notice.attachmentsUnsupported": "/{command} не принимает вложения; сначала удалите их",
|
|
126
|
+
"description.compact": "Сжать историю старых сообщений",
|
|
127
|
+
"description.export": "Скачать журнал этой сессии как ZIP-архив",
|
|
128
|
+
"description.feedback": "оставить отзыв об этой сессии",
|
|
129
|
+
"description.goal": "задать или посмотреть цель долгой задачи",
|
|
130
|
+
"description.permission": "Переключить пресет разрешений (режим песочницы + политика подтверждений)",
|
|
131
|
+
"description.plan": "Войти в режим планирования или выйти из него"
|
|
126
132
|
},
|
|
127
133
|
"conversation": {
|
|
128
134
|
"hint.plan": "опишите вашу задачу, чтобы составить план",
|
|
129
135
|
"hint.goal": "опишите цель для длительной задачи",
|
|
130
136
|
"hint.goal.active": "цель активна — edit / pause / resume / clear",
|
|
131
137
|
"placeholder.plan": "опишите вашу задачу, чтобы составить план",
|
|
132
|
-
"placeholder.default": "
|
|
138
|
+
"placeholder.default": "Сообщение или задача; «/» — команды, «@» — файлы и сессии",
|
|
133
139
|
"placeholder.unavailable": "Сессия недоступна",
|
|
134
140
|
"placeholder.parentOffline": "Родительская сессия офлайн: отправка недоступна, но вы можете остановить выполнение",
|
|
135
|
-
"placeholder.hero": "Опишите, что
|
|
141
|
+
"placeholder.hero": "Опишите, что нужно сделать; «/» — команды, «@» — файлы и сессии",
|
|
136
142
|
"placeholder.workspace": "Выберите рабочее пространство, чтобы начать",
|
|
137
143
|
"placeholder.steerQueue": "Cmd/Ctrl+Enter — отправить все сообщения из очереди",
|
|
138
144
|
"input.commands": "Команды",
|
|
@@ -176,10 +182,10 @@ window.__ModuleLoader__.load({
|
|
|
176
182
|
"context.aria": "Использовано {percent} контекста",
|
|
177
183
|
"context.used": "контекста использовано",
|
|
178
184
|
"context.system": "Системный промпт",
|
|
179
|
-
"context.tools": "
|
|
185
|
+
"context.tools": "Определения инструментов",
|
|
180
186
|
"context.messages": "Сообщения",
|
|
181
|
-
"settings.enter.title": "Поведение
|
|
182
|
-
"settings.enter.description": "
|
|
187
|
+
"settings.enter.title": "Поведение отправки во время работы агента",
|
|
188
|
+
"settings.enter.description": "Что делают Enter и кнопка отправки, пока агент работает; Cmd/Ctrl+Enter использует другое поведение",
|
|
183
189
|
"settings.enter.queue": "В очередь",
|
|
184
190
|
"settings.enter.steer": "Отправить сразу",
|
|
185
191
|
"access.preset.readOnly": "Только чтение",
|
|
@@ -280,14 +286,50 @@ window.__ModuleLoader__.load({
|
|
|
280
286
|
"terminal.expandAria": "Развернуть оставшиеся строки вывода ({n})",
|
|
281
287
|
"terminal.expandRest": "… ещё строк: {n}",
|
|
282
288
|
"terminal.sendInput": "(отправить ввод)",
|
|
283
|
-
"terminal.session": "Терминал {sessionId}"
|
|
289
|
+
"terminal.session": "Терминал {sessionId}",
|
|
290
|
+
"input.send.queue": "Отправить в очередь",
|
|
291
|
+
"input.send.steer": "Отправить сразу",
|
|
292
|
+
"queue.sending": "Отправка…"
|
|
284
293
|
},
|
|
285
294
|
"deliverables": {
|
|
286
|
-
"produced.label": "
|
|
295
|
+
"produced.label": "Изменённые файлы",
|
|
287
296
|
"produced.moreOne": "+ 1 файл",
|
|
288
297
|
"produced.more": "+ {count} файлов",
|
|
289
298
|
"produced.open": "Открыть {name}",
|
|
290
|
-
"
|
|
299
|
+
"presented.action": "Открыть",
|
|
300
|
+
"presented.all": "Все файлы: {count}",
|
|
301
|
+
"presented.collapse": "Свернуть",
|
|
302
|
+
"presented.collapseAria": "Свернуть список созданных файлов",
|
|
303
|
+
"presented.defaultApp": "Открыть в приложении по умолчанию",
|
|
304
|
+
"presented.directory": "Открыть папку с файлом",
|
|
305
|
+
"presented.directoryError": "Не удалось открыть папку с файлом. Повторите.",
|
|
306
|
+
"presented.directoryOpened": "Запрошено открытие папки с файлом",
|
|
307
|
+
"presented.directoryOpening": "Открываем папку с файлом…",
|
|
308
|
+
"presented.error": "Не удалось открыть. Нажмите, чтобы повторить.",
|
|
309
|
+
"presented.expandAria": "Показать все созданные файлы ({count})",
|
|
310
|
+
"presented.explorer": "Показать в Проводнике",
|
|
311
|
+
"presented.file": "Файл",
|
|
312
|
+
"presented.finder": "Показать в Finder",
|
|
313
|
+
"presented.hostError": "Не удалось прочитать сведения о рабочем столе хоста",
|
|
314
|
+
"presented.more": "Другие действия с файлом {name}",
|
|
315
|
+
"presented.nativeUnavailable": "У этого файла нет доступного пути на хосте. Откройте его в боковой панели.",
|
|
316
|
+
"presented.open": "Открыть {name} в приложении по умолчанию",
|
|
317
|
+
"presented.opened": "Открыто в приложении по умолчанию",
|
|
318
|
+
"presented.opening": "Открываем…",
|
|
319
|
+
"presented.preview": "Просмотр в боковой панели",
|
|
320
|
+
"presented.previewButton": "Открыть {name} в боковой панели",
|
|
321
|
+
"presented.previewCard": "Просмотреть {name} в боковой панели",
|
|
322
|
+
"presented.retry": "Повторить",
|
|
323
|
+
"presented.revealed": "Запрошен показ в файловом менеджере",
|
|
324
|
+
"presented.revealError": "Не удалось показать в файловом менеджере. Повторите.",
|
|
325
|
+
"presented.revealing": "Показываем в файловом менеджере…",
|
|
326
|
+
"presented.unavailable": "На этом хосте нет рабочего стола, чтобы открывать файлы или папки",
|
|
327
|
+
"row.error": "Доставка не удалась",
|
|
328
|
+
"row.inspect": "Просмотреть вызов",
|
|
329
|
+
"row.ok": "Доставлено",
|
|
330
|
+
"row.running": "Доставляем",
|
|
331
|
+
"row.stopped": "Прервано",
|
|
332
|
+
"row.title": "Созданные файлы"
|
|
291
333
|
},
|
|
292
334
|
"goal": {
|
|
293
335
|
"phase.active": "Активная цель",
|
|
@@ -300,7 +342,8 @@ window.__ModuleLoader__.load({
|
|
|
300
342
|
"action.pause": "Приостановить цель",
|
|
301
343
|
"action.resume": "Возобновить цель",
|
|
302
344
|
"action.edit": "Изменить цель",
|
|
303
|
-
"action.clear": "Удалить цель"
|
|
345
|
+
"action.clear": "Удалить цель",
|
|
346
|
+
"phase.active.disarmed": "Цель неактивна"
|
|
304
347
|
},
|
|
305
348
|
"slash.menu": {
|
|
306
349
|
"command": "Команды",
|
|
@@ -335,15 +378,22 @@ window.__ModuleLoader__.load({
|
|
|
335
378
|
"action.likeActive": "Снять оценку",
|
|
336
379
|
"action.dislike": "Плохой ответ",
|
|
337
380
|
"action.dislikeActive": "Снять оценку",
|
|
338
|
-
"note.open": "Добавить заметку",
|
|
339
|
-
"note.dialog": "Отзыв",
|
|
340
|
-
"note.placeholder": "Что было хорошо, а что не так? (необязательно)",
|
|
341
|
-
"note.save": "Сохранить",
|
|
342
|
-
"note.cancel": "Отмена",
|
|
343
|
-
"note.aria": "Заметка об отзыве",
|
|
344
381
|
"error.conflict": "Этот отзыв изменён в другом месте; показано актуальное состояние",
|
|
345
382
|
"error.load": "Не удалось загрузить отзыв",
|
|
346
|
-
"error.generic": "Не удалось сохранить отзыв"
|
|
383
|
+
"error.generic": "Не удалось сохранить отзыв",
|
|
384
|
+
"category.instruction-following": "Понимание и выполнение инструкций",
|
|
385
|
+
"category.other": "Другое",
|
|
386
|
+
"category.product-interaction": "Возможности продукта и взаимодействие",
|
|
387
|
+
"category.resource-cost": "Расход ресурсов и стоимость",
|
|
388
|
+
"category.security-privacy-permission": "Безопасность, приватность и разрешения",
|
|
389
|
+
"category.service-stability": "Стабильность сервиса",
|
|
390
|
+
"category.task-result": "Результат задачи",
|
|
391
|
+
"dialog.categories": "Категория отзыва",
|
|
392
|
+
"dialog.detail": "Подробности отзыва",
|
|
393
|
+
"dialog.hint": "Добавьте подробности, чтобы помочь нам стать лучше. В отправку войдёт журнал текущего диалога.",
|
|
394
|
+
"dialog.title": "Отправить отзыв",
|
|
395
|
+
"error.noteTooLarge": "Описание слишком длинное; сократите его и отправьте снова",
|
|
396
|
+
"toast.recorded": "Спасибо за отзыв"
|
|
347
397
|
},
|
|
348
398
|
"model": {
|
|
349
399
|
"command.description": "Выбор модели для этого диалога",
|
|
@@ -363,7 +413,9 @@ window.__ModuleLoader__.load({
|
|
|
363
413
|
"warning.groupLoad": "Не удалось загрузить {name}: {message}",
|
|
364
414
|
"empty.models": "Нет доступных моделей.",
|
|
365
415
|
"blocked.composer": "Эта модель недоступна — выберите другую, чтобы продолжить",
|
|
366
|
-
"empty.efforts": "У этой модели нет уровней рассуждения."
|
|
416
|
+
"empty.efforts": "У этой модели нет уровней рассуждения.",
|
|
417
|
+
"option.deepseekV4Flash.description": "Быстрая, эффективная и экономная; подходит для сосредоточенных, рутинных или параллельных задач.",
|
|
418
|
+
"option.deepseekV4Pro.description": "Усиленное агентное программирование, знания и сложные рассуждения; для комплексных или критичных к качеству задач с большей стоимостью."
|
|
367
419
|
},
|
|
368
420
|
"settings.permission": {
|
|
369
421
|
"title": "Права доступа",
|
|
@@ -438,10 +490,10 @@ window.__ModuleLoader__.load({
|
|
|
438
490
|
"general.nav": "Основные",
|
|
439
491
|
"connection.error": "Отключено",
|
|
440
492
|
"connection.retry": "Подключиться сейчас",
|
|
441
|
-
"connection.connecting": "
|
|
493
|
+
"connection.connecting": "Переподключение",
|
|
442
494
|
"connection.connected": "Подключено",
|
|
443
495
|
"connection.reconnect": "Отключено, подключиться сейчас",
|
|
444
|
-
"connection.restart": "
|
|
496
|
+
"connection.restart": "Переподключение выполняется автоматически, переподключиться сейчас"
|
|
445
497
|
},
|
|
446
498
|
"settings.models": {
|
|
447
499
|
"nav": "Модели",
|
|
@@ -640,7 +692,8 @@ window.__ModuleLoader__.load({
|
|
|
640
692
|
"session.new": "Новая сессия",
|
|
641
693
|
"session.new.label": "Новая сессия",
|
|
642
694
|
"toggle.open": "Открыть боковую панель",
|
|
643
|
-
"toggle.collapse": "Свернуть боковую панель"
|
|
695
|
+
"toggle.collapse": "Свернуть боковую панель",
|
|
696
|
+
"panels.label": "Глобальные панели"
|
|
644
697
|
},
|
|
645
698
|
"skill": {
|
|
646
699
|
"row.title": "Навык",
|
|
@@ -1085,20 +1138,8 @@ window.__ModuleLoader__.load({
|
|
|
1085
1138
|
"duration.compactSeconds": "{seconds} с",
|
|
1086
1139
|
"duration.compactMinutes": "{minutes} мин {seconds} с",
|
|
1087
1140
|
"duration.milliseconds": "{milliseconds} мс",
|
|
1088
|
-
"stats.counts": "{turns}
|
|
1089
|
-
"stats.llm": "LLM {duration}",
|
|
1090
|
-
"stats.toolCall": "Вызов инструмента {duration}",
|
|
1091
|
-
"stats.ttftAverage": "Среднее время до первого токена: {duration}",
|
|
1092
|
-
"stats.tokensPerSecond": "{throughput} ток/с",
|
|
1141
|
+
"stats.counts": "{turns} ходов, {steps} шагов",
|
|
1093
1142
|
"stats.cacheHit": "Попадание в кэш {percent}%",
|
|
1094
|
-
"stats.tokens": "Вход {input} ток · Выход {output} ток",
|
|
1095
|
-
"details.title": "Подробности",
|
|
1096
|
-
"details.close": "Закрыть подробности",
|
|
1097
|
-
"details.empty": "Нажмите на строку инструмента в потоке сообщений, чтобы увидеть подробности",
|
|
1098
|
-
"details.notInWindow": "Этот вызов вне текущего окна",
|
|
1099
|
-
"details.input": "Ввод",
|
|
1100
|
-
"details.output": "Вывод",
|
|
1101
|
-
"details.running": "Выполняется…",
|
|
1102
1143
|
"chat.loadingHistory": "Загрузка истории…",
|
|
1103
1144
|
"chat.loadError": "Не удалось загрузить историю: {message} ({code})",
|
|
1104
1145
|
"chat.loadOlder": "Загрузить ранее",
|
|
@@ -1114,8 +1155,6 @@ window.__ModuleLoader__.load({
|
|
|
1114
1155
|
"settings.transcript.compact": "Компактный",
|
|
1115
1156
|
"fileOpen.title": "Не удалось открыть файл",
|
|
1116
1157
|
"fileOpen.unknown": "Не удалось открыть этот файл",
|
|
1117
|
-
"fileOpen.folderTitle": "Не удалось открыть папку",
|
|
1118
|
-
"fileOpen.folderUnknown": "Не удалось открыть эту папку",
|
|
1119
1158
|
"message.extraBlock": "Дополнительный блок содержимого",
|
|
1120
1159
|
"message.systemPrompt": "Системный промпт",
|
|
1121
1160
|
"message.contextInjection": "Инъекция контекста",
|
|
@@ -1189,7 +1228,14 @@ window.__ModuleLoader__.load({
|
|
|
1189
1228
|
"row.failed": "Ошибка",
|
|
1190
1229
|
"json.truncated": "… обрезано, всего {total} символов",
|
|
1191
1230
|
"clock.md": "{d}.{m}",
|
|
1192
|
-
"clock.ymd": "{d}.{m}.{y}"
|
|
1231
|
+
"clock.ymd": "{d}.{m}.{y}",
|
|
1232
|
+
"message.systemPromptUpdate": "Системный промпт обновлён",
|
|
1233
|
+
"stats.dialog.title": "Статистика сессии",
|
|
1234
|
+
"stats.dialog.usageTitle": "Использование токенов",
|
|
1235
|
+
"stats.dialog.llmTime": "Время модели",
|
|
1236
|
+
"stats.dialog.toolTime": "Время инструментов",
|
|
1237
|
+
"stats.dialog.ttft": "Среднее время до первого токена (TTFT)",
|
|
1238
|
+
"stats.dialog.speed": "Скорость вывода (ток./с)"
|
|
1193
1239
|
},
|
|
1194
1240
|
"directory-browser": {
|
|
1195
1241
|
"browser.title": "Выбор рабочего каталога",
|
|
@@ -1205,6 +1251,95 @@ window.__ModuleLoader__.load({
|
|
|
1205
1251
|
"browser.loading": "Загрузка…",
|
|
1206
1252
|
"browser.truncated": "Слишком много папок; показано только начало списка.",
|
|
1207
1253
|
"browser.showHidden": "Показывать скрытые файлы"
|
|
1254
|
+
},
|
|
1255
|
+
"open-in-app": {
|
|
1256
|
+
"open.title": "Открыть рабочую область в {app}",
|
|
1257
|
+
"open.tooltip": "Открыть локально",
|
|
1258
|
+
"open.error": "Не удалось открыть",
|
|
1259
|
+
"menu.toggle": "Выберите приложение для открытия",
|
|
1260
|
+
"menu.aria": "Открыть в",
|
|
1261
|
+
"app.cursor": "Cursor",
|
|
1262
|
+
"app.vscode": "VS Code",
|
|
1263
|
+
"app.vscodeinsiders": "VS Code Insiders",
|
|
1264
|
+
"app.windsurf": "Windsurf",
|
|
1265
|
+
"app.zed": "Zed",
|
|
1266
|
+
"app.sublimetext": "Sublime Text",
|
|
1267
|
+
"app.xcode": "Xcode",
|
|
1268
|
+
"app.androidstudio": "Android Studio",
|
|
1269
|
+
"app.intellij": "IntelliJ IDEA",
|
|
1270
|
+
"app.pycharm": "PyCharm",
|
|
1271
|
+
"app.webstorm": "WebStorm",
|
|
1272
|
+
"app.phpstorm": "PhpStorm",
|
|
1273
|
+
"app.goland": "GoLand",
|
|
1274
|
+
"app.rider": "Rider",
|
|
1275
|
+
"app.rustrover": "RustRover",
|
|
1276
|
+
"app.fork": "Fork",
|
|
1277
|
+
"app.sourcetree": "Sourcetree",
|
|
1278
|
+
"app.github": "GitHub Desktop",
|
|
1279
|
+
"app.tower": "Tower",
|
|
1280
|
+
"app.gitkraken": "GitKraken",
|
|
1281
|
+
"app.smartgit": "SmartGit",
|
|
1282
|
+
"app.sublimemerge": "Sublime Merge",
|
|
1283
|
+
"app.ghostty": "Ghostty",
|
|
1284
|
+
"app.warp": "Warp",
|
|
1285
|
+
"app.iterm": "iTerm2",
|
|
1286
|
+
"app.kitty": "kitty",
|
|
1287
|
+
"app.windowsterminal": "Windows Terminal",
|
|
1288
|
+
"app.gitbash": "Git Bash",
|
|
1289
|
+
"app.gnometerminal": "GNOME Terminal",
|
|
1290
|
+
"app.konsole": "Konsole",
|
|
1291
|
+
"app.finder": "Finder",
|
|
1292
|
+
"app.explorer": "Проводник",
|
|
1293
|
+
"app.filemanager": "Файлы",
|
|
1294
|
+
"app.terminal": "Терминал"
|
|
1295
|
+
},
|
|
1296
|
+
"sidebarCodePreview": {
|
|
1297
|
+
"code.copied": "Скопировано",
|
|
1298
|
+
"code.copy": "Копировать",
|
|
1299
|
+
"error.notFound": "Файл не найден. Возможно, он перемещён или удалён.",
|
|
1300
|
+
"error.notRegularFile": "Это не обычный файл, показывать нечего.",
|
|
1301
|
+
"error.notText": "Это не текстовый файл, предпросмотр пока недоступен.",
|
|
1302
|
+
"error.tooLarge": "Страница превышает лимит {limit} и не может быть прочитана.",
|
|
1303
|
+
"error.unavailable": "Не удалось прочитать: {message}",
|
|
1304
|
+
"footnotes": "Сноски",
|
|
1305
|
+
"viewer.label": "Markdown",
|
|
1306
|
+
"viewer.text": "Обычный текст",
|
|
1307
|
+
"wrap.aria": "Перенос строк",
|
|
1308
|
+
"wrap.disable": "Отключить перенос строк",
|
|
1309
|
+
"wrap.enable": "Включить перенос строк"
|
|
1310
|
+
},
|
|
1311
|
+
"sidebarFiles": {
|
|
1312
|
+
"entry.other": "Это не файл и не каталог, открыть нельзя.",
|
|
1313
|
+
"error.notDirectory": "Это не каталог.",
|
|
1314
|
+
"error.notFound": "Каталог исчез. Возможно, он перемещён или удалён.",
|
|
1315
|
+
"error.outsideWorkspace": "Каталог вне рабочей области, боковая панель его не читает.",
|
|
1316
|
+
"error.unavailable": "Не удалось прочитать: {message}",
|
|
1317
|
+
"guide.description": "Просмотр файлов рабочей области этой сессии",
|
|
1318
|
+
"guide.title": "Файлы рабочей области",
|
|
1319
|
+
"type.label": "Файлы"
|
|
1320
|
+
},
|
|
1321
|
+
"sidebarRight": {
|
|
1322
|
+
"chrome.collapse": "Свернуть боковую панель",
|
|
1323
|
+
"chrome.collapseAria": "Свернуть правую боковую панель",
|
|
1324
|
+
"chrome.exitFullscreen": "Выйти из полноэкранного режима",
|
|
1325
|
+
"chrome.expand": "Открыть боковую панель",
|
|
1326
|
+
"chrome.expandAria": "Открыть правую боковую панель",
|
|
1327
|
+
"chrome.toFullscreen": "Во весь экран",
|
|
1328
|
+
"dock.addTab": "Новая вкладка",
|
|
1329
|
+
"dock.closeFloat": "Закрыть",
|
|
1330
|
+
"dock.closeTab": "Закрыть",
|
|
1331
|
+
"dock.dockFloat": "Вернуть в боковую панель",
|
|
1332
|
+
"dock.drop.bottom": "Добавить нижнюю область",
|
|
1333
|
+
"dock.drop.center": "Переместить сюда",
|
|
1334
|
+
"dock.drop.left": "Добавить область слева",
|
|
1335
|
+
"dock.drop.right": "Добавить область справа",
|
|
1336
|
+
"dock.drop.top": "Добавить верхнюю область",
|
|
1337
|
+
"dock.emptyPane": "Пустая область",
|
|
1338
|
+
"dock.splitPane": "Разделить",
|
|
1339
|
+
"dock.splitPaneDisabled": "Максимум две области",
|
|
1340
|
+
"dock.splitPaneNarrow": "Недостаточно ширины для разделения — расширьте боковую панель",
|
|
1341
|
+
"tab.guide.title": "Начало",
|
|
1342
|
+
"tab.unavailable": "Пока ничто здесь не умеет отображать такой контент."
|
|
1208
1343
|
}
|
|
1209
1344
|
};
|
|
1210
1345
|
//#endregion
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":[],"sources":["../src/client/dicts.ts","../src/client/index.ts"],"sourcesContent":["/**\n * Russian (ru) dictionaries, one entry per locale namespace.\n * Key sets mirror each namespace's zh/en dictionaries at the profiled\n * base commit; any key added upstream later falls back to en at lookup.\n */\n\nexport const RU_LABEL = 'Русский'\n\nexport const RU_DICTS: Record<string, Record<string, string>> = {\n 'common': {\n 'ok': 'ОК',\n 'cancel': 'Отмена',\n 'close': 'Закрыть',\n 'copy': 'Копировать',\n 'copied': 'Скопировано',\n 'copy.failed': 'Не удалось скопировать',\n 'copy.value': 'Копировать значение',\n 'copy.json': 'Копировать JSON',\n 'copy.path': 'Копировать путь',\n 'copy.prettyJson': 'Копировать красивый JSON',\n 'copy.compactJson': 'Копировать компактный JSON',\n 'copy.optionsHint': '{action}; правый клик — варианты копирования',\n 'retry': 'Повторить',\n 'loading': 'Загрузка…',\n 'load.failed': 'Не удалось загрузить',\n 'submit': 'Отправить',\n 'submitting': 'Отправка…',\n 'next': 'Далее',\n 'previous': 'Предыдущий',\n 'skip': 'Пропустить',\n 'delete': 'Удалить',\n 'edit': 'Изменить',\n 'save': 'Сохранить',\n 'search': 'Поиск',\n 'more': 'Ещё',\n 'collapse': 'Свернуть',\n 'expand': 'Развернуть',\n 'back': 'Назад',\n 'brand.localBuild': 'Локальная сборка DSH',\n 'unknown': 'Неизвестно',\n 'none': 'Нет',\n 'truncated': 'Обрезано',\n 'json.collapseNode': 'Свернуть узел JSON',\n 'json.expandNode': 'Развернуть узел JSON',\n 'json.label': 'JSON',\n 'markdown.footnotes': 'Сноски',\n 'markdown.truncatedCharacters': '… обрезано на {total} символах',\n 'number.thousand': '{value} тыс.',\n 'number.million': '{value} млн',\n },\n 'settings.locale': {\n 'language.title': 'Язык',\n },\n 'settings.agentPreset': {\n 'error': 'Не удалось загрузить пресеты агента.',\n 'userTrust': 'Свой',\n 'seatHint': 'Пресет агента для сессии, которую вы собираетесь начать',\n 'headerHint': 'Пресет агента, с которым работает эта сессия; фиксируется при запуске',\n 'nav': 'Пресеты агента',\n 'sectionIntro': 'Пресет — это композиция плагинов, с которыми работает агент сессии: его инструменты, промпт и возможности. Скопируйте существующий пресет и настройте под себя или позвольте агенту составить его в режиме Creator.',\n 'builtIn': 'Встроенные',\n 'setDefault': 'Сделать пресетом по умолчанию',\n 'view': 'Просмотр',\n 'presetStandardName': 'Стандартный режим',\n 'presetStandardDescription': 'Полноценный агент-программист: редактирование файлов, shell, поиск по файлам и в вебе, навыки, планирование, цели, субагенты и воркфлоу.',\n 'presetPtcName': 'Режим кода',\n 'presetMinimalName': 'Минимальный режим',\n 'presetMinimalDescription': 'Агент-программист из двух инструментов: постоянный bash и str_replace_editor.',\n 'presetCordisName': 'Режим Creator',\n 'presetCordisDescription': 'Создан для разработки собственных пресетов: все возможности стандартного режима плюс инспекция на лету, эксперименты с плагинами и подсказки по созданию пресетов.',\n 'duplicate': 'Дублировать',\n 'duplicateUnavailable': 'В этой сборке нет каталога пресетов для записи',\n 'delete': 'Удалить',\n 'presetId': 'Идентификатор',\n 'presetIdPlaceholder': 'my-agent',\n 'displayName': 'Название',\n 'displayNamePlaceholder': 'Показывается в выборе; по умолчанию — идентификатор',\n 'inUse': 'Используется',\n 'builtInGroup': 'Встроенные',\n 'customGroup': 'Свои',\n 'noDescription': 'Нет описания.',\n 'brokenBadge': 'Не удалось загрузить',\n 'brokenNoCopy': 'Пресет, который не удалось загрузить, нельзя дублировать',\n 'copyOf': 'Копия из',\n 'composition': 'Композиция (agent.cordis.yml)',\n 'cancel': 'Отмена',\n 'close': 'Закрыть',\n 'retry': 'Повторить',\n 'copyTitle': 'Дублировать пресет',\n 'copyIntro': 'Пресет целиком копируется на этом компьютере. Идентификатор становится именем каталога и не меняется впоследствии; всё остальное редактируется в файлах самого пресета.',\n 'create': 'Создать',\n 'creating': 'Создание…',\n 'creatorDraft': 'Составить свой пресет в режиме Creator',\n 'openLocation': 'Открыть папку',\n 'showLocation': 'Показать путь',\n 'revealedPathLabel': 'Файлы пресета:',\n 'idRequired': 'Укажите идентификатор пресета.',\n 'idInvalid': 'Используйте строчные буквы, цифры и дефисы, начиная с буквы или цифры.',\n 'idTaken': 'Пресет с таким идентификатором уже существует.',\n 'deleteTitle': 'Удалить этот пресет?',\n 'deleteDescription': 'Каталог пресета будет удалён. Сессии, которые уже работают на нём, продолжат работу; новые сессии не смогут его выбрать.',\n 'deleteConfirm': 'Удалить',\n 'deleting': 'Удаление…',\n 'presetPtcDescription': 'Полноценный агент-программист без инструмента workflow; остальные инструменты доступны через SDK режима PTC, поэтому модель может объединять многошаговые операции в одну программу на TypeScript.',\n 'switchRefused': 'Не удалось переключить на «{name}»: {reason}',\n },\n 'approval': {\n 'detail.aria': 'Детали запроса',\n 'waiting': 'Ожидает одобрения',\n 'escalation': 'Инструмент {toolName} запрашивает привилегированное выполнение',\n 'reject': 'Отклонить',\n 'allowOnce': 'Разрешить один раз',\n },\n 'command': {\n 'search.placeholder': 'Поиск…',\n 'search.aria': 'Фильтр вариантов',\n 'status.loading': 'Загрузка вариантов…',\n 'status.applying': 'Применение…',\n 'status.empty': 'Нет вариантов',\n 'overlay.aria': 'Варианты /{command}',\n 'listbox.aria': 'Совпадения /{command}',\n 'notice.attachmentsUnsupported': '/{command} не принимает вложения; сначала удалите их',\n },\n 'conversation': {\n 'hint.plan': 'опишите вашу задачу, чтобы составить план',\n 'hint.goal': 'опишите цель для длительной задачи',\n 'hint.goal.active': 'цель активна — edit / pause / resume / clear',\n 'placeholder.plan': 'опишите вашу задачу, чтобы составить план',\n 'placeholder.default': 'Напишите агенту',\n 'placeholder.unavailable': 'Сессия недоступна',\n 'placeholder.parentOffline': 'Родительская сессия офлайн: отправка недоступна, но вы можете остановить выполнение',\n 'placeholder.hero': 'Опишите, что вы хотите создать',\n 'placeholder.workspace': 'Выберите рабочее пространство, чтобы начать',\n 'placeholder.steerQueue': 'Cmd/Ctrl+Enter — отправить все сообщения из очереди',\n 'input.commands': 'Команды',\n 'input.stop': 'Остановить генерацию',\n 'input.send': 'Отправить сообщение',\n 'input.accessMode': 'Режим доступа, текущий: {name}',\n 'attachment.pending': 'Вложения ожидают отправки',\n 'attachment.scrollLeft': 'Прокрутить вложения влево',\n 'attachment.scrollRight': 'Прокрутить вложения вправо',\n 'attachment.dropTitle': 'Перетащите файлы или изображения сюда, чтобы добавить их',\n 'attachment.dropDesc': 'Изображения: до {count} шт., каждое до {size}',\n 'attachment.dropBlocked': 'Сейчас нельзя добавить файлы или изображения',\n 'image.pending': 'Изображения ожидают отправки',\n 'image.openOriginal': 'Открыть оригинал',\n 'image.openOriginalLabel': '{label}, нажмите, чтобы открыть оригинал',\n 'image.remove': 'Удалить изображение {name}',\n 'image.original': 'Оригинал',\n 'image.label': 'Изображение',\n 'image.loadFailed': 'Не удалось загрузить изображение; нажмите, чтобы повторить',\n 'image.loading': 'Загрузка изображения…',\n 'image.preview': 'Просмотр оригинала',\n 'image.closePreview': 'Закрыть просмотр оригинала',\n 'image.unsupportedType': 'Поддерживаются только изображения PNG, JPG, WebP и GIF',\n 'image.tooMany': 'Сообщение может содержать до {count} изображений',\n 'image.fileTooLarge': 'Каждое изображение должно быть меньше {size}',\n 'image.totalTooLarge': 'Суммарный размер изображений превышает {size}; удалите часть и повторите',\n 'image.tooManyPixels': 'Разрешение изображения слишком высокое; сожмите его и повторите',\n 'image.dimensionTooLarge': 'Стороны изображения не должны превышать {size}px; уменьшите его и повторите',\n 'image.modelUnsupported': 'Текущая модель не поддерживает изображения; переключитесь на модель с их поддержкой',\n 'image.sendFailed': 'Не удалось отправить изображения ({reason}); добавьте их заново и повторите',\n 'file.attach': 'Добавить вложение',\n 'file.pending': 'Файлы ожидают отправки',\n 'file.remove': 'Удалить файл {name}',\n 'file.uploading': 'Загрузка…',\n 'file.uploadFailed': 'Не удалось загрузить; нажмите, чтобы повторить',\n 'file.retry': 'Повторить загрузку {name}',\n 'file.stillUploading': 'Файлы ещё загружаются; дождитесь окончания загрузки',\n 'file.sessionUnavailable': 'Сессия недоступна: загрузка файлов невозможна',\n 'file.notStaged': 'Файл ещё не загружен полностью; добавьте его заново',\n 'file.label': 'Файл',\n 'context.aria': 'Использовано {percent} контекста',\n 'context.used': 'контекста использовано',\n 'context.system': 'Системный промпт',\n 'context.tools': 'Инструменты',\n 'context.messages': 'Сообщения',\n 'settings.enter.title': 'Поведение Enter при занятости',\n 'settings.enter.description': 'Только при занятости; Cmd/Ctrl+Enter использует другое поведение',\n 'settings.enter.queue': 'В очередь',\n 'settings.enter.steer': 'Отправить сразу',\n 'access.preset.readOnly': 'Только чтение',\n 'access.preset.workspaceWrite': 'Запись в рабочую папку',\n 'access.preset.fullAccess': 'Полный доступ',\n 'access.confirm.title': 'Включить «Полный доступ»?',\n 'access.confirm.description': '«Полный доступ» уменьшает число этапов подтверждения и позволяет агенту напрямую выполнять больше действий, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете текущей задаче.',\n 'access.confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'access.confirm.cancel': 'Отмена',\n 'access.confirm.enable': 'Включить «Полный доступ»',\n 'hero.headline': 'К неизведанному',\n 'hero.preview': 'Предпросмотр',\n 'hero.chooseWorkspace': 'Выбрать рабочее пространство',\n 'session.hierarchy': 'Иерархия сессий',\n 'todo.title': 'Задачи',\n 'todo.progress.done': '{done} выполнено',\n 'todo.progress.active': '{active} в процессе',\n 'todo.progress.pending': '{pending} ожидает',\n 'todo.rowTitle': 'Обновить список задач',\n 'todo.completed': '{done}/{total} выполнено',\n 'command.attachmentsUnsupported': '/{command} не принимает вложения; сначала удалите их',\n 'ask.rowTitle': 'Задать вопрос',\n 'ask.waiting': 'ожидание',\n 'ask.cancelled': 'отменено',\n 'ask.cancelledDetail': 'Этот набор вопросов был отменён до отправки ответов.',\n 'ask.interrupted': 'прервано',\n 'ask.interruptedDetail': 'Этот набор вопросов был прерван до отправки ответов.',\n 'ask.answered': '{answered}/{total} отвечено',\n 'ask.skipped': 'Не отвечено',\n 'bash.running': 'Выполняется',\n 'bash.failed': 'Ошибка',\n 'bash.stopped': 'Остановлено',\n 'row.running': 'Выполняется',\n 'row.failed': 'Ошибка',\n 'row.stopped': 'Остановлено',\n 'row.input': 'ВВОД',\n 'row.output': 'ВЫВОД',\n 'row.inspect': 'Просмотр',\n 'tool.title.search': 'Поиск',\n 'tool.title.read': 'Чтение',\n 'tool.title.bash': 'Bash',\n 'tool.title.write': 'Запись',\n 'tool.title.edit': 'Правка',\n 'tool.title.code': 'Код',\n 'tool.title.generic': 'Вызов инструмента',\n 'tool.title.inspect': 'Просмотр',\n 'tool.title.runCordis': 'Запустить плагин Cordis',\n 'tool.title.stopCordis': 'Остановить плагин Cordis',\n 'tool.title.removeCordis': 'Удалить плагин Cordis',\n 'tool.title.pwsh': 'Pwsh',\n 'tool.title.readImage': 'Прочитать изображение',\n 'tool.title.grep': 'Grep',\n 'tool.title.glob': 'Glob',\n 'tool.title.webSearch': 'Поиск',\n 'tool.title.webFetch': 'Запрос',\n 'diff.files.one': '{count} файл',\n 'diff.files.other': '{count} файлов',\n 'diff.collapseAria': 'Свернуть изменения',\n 'diff.expandAria': 'Показать ещё {count} строк изменений',\n 'diff.expandRest': '… ещё {count} строк',\n 'read.window': 'Показано {shown} из {total} строк',\n 'read.collapseAria': 'Свернуть содержимое',\n 'read.expandAria': 'Показать ещё {count} строк',\n 'read.expandRest': '… ещё {count} строк',\n 'search.paths': '{shown} путей',\n 'search.paths.truncated': 'Показано {shown} из {total} путей',\n 'search.matches': '{shown} совпадений · {files} файлов',\n 'search.matches.truncated': 'Показано {shown} из {total} совпадений · {files} файлов',\n 'search.noResults': 'Ничего не найдено',\n 'search.collapseAria': 'Свернуть результаты',\n 'search.expandAria': 'Показать ещё {count} строк результатов',\n 'search.expandRest': '… ещё {count} строк',\n 'web.noResults': 'Ничего не найдено',\n 'web.sourcesTruncated': 'Список источников обрезан',\n 'web.http': 'HTTP',\n 'web.contentTruncated': 'Содержимое обрезано',\n 'details.running': 'Выполняется…',\n 'queue.count': 'В очереди: {n}',\n 'queue.image': 'Изображение в очереди сообщения',\n 'queue.file': 'Файл {name} в очереди',\n 'queue.edit': 'Изменить сообщение из очереди',\n 'queue.edit.unsupported': 'Содержит нетекстовый контент; редактирование пока не поддерживается',\n 'queue.save': 'Сохранить сообщение из очереди',\n 'queue.cancelEdit': 'Отменить редактирование',\n 'queue.remove': 'Удалить сообщение из очереди',\n 'queue.steer': 'Отправить сразу',\n 'queue.steer.unavailable': 'Отправка сразу доступна только пока агент работает',\n 'queue.editFailed': 'Не удалось изменить: сообщение могло уже начать отправляться.',\n 'queue.removeFailed': 'Не удалось удалить: сообщение могло уже начать отправляться.',\n 'queue.steerFailed': 'Не удалось отправить сразу. Повторите попытку.',\n 'terminal.signal': 'сигнал {signal}',\n 'terminal.exitCode': 'код выхода {code}',\n 'terminal.running': 'Выполняется',\n 'terminal.failed': 'Ошибка',\n 'terminal.done': 'Готово',\n 'terminal.noOutput': 'Нет вывода',\n 'terminal.collapseAria': 'Свернуть вывод',\n 'terminal.expandAria': 'Развернуть оставшиеся строки вывода ({n})',\n 'terminal.expandRest': '… ещё строк: {n}',\n 'terminal.sendInput': '(отправить ввод)',\n 'terminal.session': 'Терминал {sessionId}',\n },\n 'deliverables': {\n 'produced.label': 'Создано',\n 'produced.moreOne': '+ 1 файл',\n 'produced.more': '+ {count} файлов',\n 'produced.open': 'Открыть {name}',\n 'produced.showInFolder': 'Показать в папке',\n },\n 'goal': {\n 'phase.active': 'Активная цель',\n 'phase.paused': 'Приостановленная цель',\n 'phase.blocked': 'Заблокированная цель',\n 'objective.aria': 'Содержимое цели',\n 'commandInput.aria': 'Ввод команды',\n 'action.save': 'Сохранить цель',\n 'action.cancel': 'Отменить правку',\n 'action.pause': 'Приостановить цель',\n 'action.resume': 'Возобновить цель',\n 'action.edit': 'Изменить цель',\n 'action.clear': 'Удалить цель',\n },\n 'slash.menu': {\n 'command': 'Команды',\n 'skill': 'Навыки',\n 'subagent': 'Субагенты',\n 'loading': 'Загрузка…',\n 'drill.aria': 'Обзор папки',\n 'drill.hint': 'Обзор папки',\n 'drill.key': 'Tab',\n 'crumbs.aria': 'Навигация по папкам',\n 'suggestions.aria': 'Возможные варианты по триггеру',\n },\n 'job': {\n 'count.live.one': '{count} фоновая задача выполняется',\n 'count.live.other': '{count} фоновых задач выполняется',\n 'count.idle.one': '{count} фоновая задача',\n 'count.idle.other': '{count} фоновых задач',\n 'list.aria': 'Фоновые задачи',\n 'status.running': 'выполняется',\n 'status.stopping': 'останавливается',\n 'status.completed': 'завершена',\n 'status.killed': 'отменена',\n 'status.failed': 'ошибка',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'duration.hours': '{hours} ч {minutes} мин',\n 'duration.title.live': 'Выполняется {duration}',\n 'duration.title.done': 'Заняло {duration}',\n },\n 'feedback': {\n 'action.like': 'Хороший ответ',\n 'action.likeActive': 'Снять оценку',\n 'action.dislike': 'Плохой ответ',\n 'action.dislikeActive': 'Снять оценку',\n 'note.open': 'Добавить заметку',\n 'note.dialog': 'Отзыв',\n 'note.placeholder': 'Что было хорошо, а что не так? (необязательно)',\n 'note.save': 'Сохранить',\n 'note.cancel': 'Отмена',\n 'note.aria': 'Заметка об отзыве',\n 'error.conflict': 'Этот отзыв изменён в другом месте; показано актуальное состояние',\n 'error.load': 'Не удалось загрузить отзыв',\n 'error.generic': 'Не удалось сохранить отзыв',\n },\n 'model': {\n 'command.description': 'Выбор модели для этого диалога',\n 'option.loadError': 'Не удалось загрузить каталог: {message}',\n 'trigger.fallback': 'Выбрать модель',\n 'trigger.loading': 'Загрузка моделей…',\n 'trigger.selectAria': 'Выбрать модель',\n 'trigger.aria': 'Выбрать модель, сейчас {model}',\n 'trigger.ariaEffort': 'Выбрать модель, сейчас {model}, уровень рассуждения {effort}',\n 'menu.aria': 'Модель и уровень рассуждения',\n 'menu.model': 'Модель',\n 'menu.effort': 'Уровень рассуждения',\n 'effort.providerDefault': 'По умолчанию',\n 'status.loading': 'Обновление списка моделей…',\n 'error.action': 'Не удалось выполнить операцию с моделью: {message}',\n 'action.reload': 'Перезагрузить',\n 'warning.groupLoad': 'Не удалось загрузить {name}: {message}',\n 'empty.models': 'Нет доступных моделей.',\n 'blocked.composer': 'Эта модель недоступна — выберите другую, чтобы продолжить',\n 'empty.efforts': 'У этой модели нет уровней рассуждения.',\n },\n 'settings.permission': {\n 'title': 'Права доступа',\n 'description': 'Выберите режим прав по умолчанию для новых сессий',\n 'loading': 'Загрузка',\n 'unavailable': 'Недоступно',\n 'preset.readOnly': 'Только чтение',\n 'preset.workspaceWrite': 'Запись в рабочую папку',\n 'preset.fullAccess': 'Полный доступ',\n 'confirm.title': 'Включить «Полный доступ»?',\n 'confirm.description': '«Полный доступ» позволяет новым сессиям пропускать шаги подтверждения и выполнять больше действий напрямую, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете последующим задачам.',\n 'confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'confirm.cancel': 'Отмена',\n 'confirm.enable': 'Включить «Полный доступ»',\n },\n 'permission.access': {\n 'preset.readOnly': 'Только чтение',\n 'preset.workspaceWrite': 'Запись в рабочую папку',\n 'preset.fullAccess': 'Полный доступ',\n 'confirm.title': 'Включить «Полный доступ»?',\n 'confirm.description': '«Полный доступ» уменьшает число этапов подтверждения и позволяет агенту напрямую выполнять больше действий, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете текущей задаче.',\n 'confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'confirm.cancel': 'Отмена',\n 'confirm.enable': 'Включить «Полный доступ»',\n },\n 'plan': {\n 'chip.label': 'План',\n 'chip.on.aria': 'Режим планирования включён, нажмите, чтобы выключить',\n 'chip.on.title': 'Режим планирования включён — нажмите, чтобы выключить (/plan off)',\n 'chip.off.aria': 'Режим планирования выключен, нажмите, чтобы включить',\n 'chip.off.title': 'Режим планирования выключен — нажмите, чтобы включить (/plan)',\n 'chip.exitFailed': 'Не удалось выйти из режима планирования',\n },\n 'reference': {\n 'section.files': 'Файлы и папки',\n 'section.sessions': 'Сессии',\n 'candidate.noCwd': '(нет рабочей папки)',\n 'crumb.root': 'Рабочая папка',\n 'time.now': 'сейчас',\n 'time.minutes': '{n} мин',\n 'time.hours': '{n} ч',\n 'time.days': '{n} д',\n 'time.months': '{n} мес',\n 'time.years': '{n} г',\n },\n 'schedule.catalog': {\n 'trigger.one': '{count} напоминание',\n 'trigger.other': '{count} напоминаний',\n 'list.aria': 'Активные напоминания',\n 'status.scheduled': 'Запланировано',\n 'status.overdue': 'Просрочено',\n 'frequency.once': 'Однократно',\n 'frequency.every': 'Каждые {value} {unit}',\n 'unit.day.one': 'день',\n 'unit.day.other': 'дней',\n 'unit.hour.one': 'час',\n 'unit.hour.other': 'часов',\n 'unit.minute.one': 'минута',\n 'unit.minute.other': 'минут',\n 'unit.second.one': 'секунда',\n 'unit.second.other': 'секунд',\n 'relative.now': 'Срок наступил',\n 'relative.future': 'через {value} {unit}',\n 'relative.overdue': 'Просрочено на {value} {unit}',\n },\n 'settings': {\n 'trigger': 'Настройки',\n 'title': 'Настройки',\n 'close': 'Закрыть',\n 'openDocument': 'Открыть файл конфигурации',\n 'openDocument.error': 'Не удалось открыть файл конфигурации',\n 'general.nav': 'Основные',\n 'connection.error': 'Отключено',\n 'connection.retry': 'Подключиться сейчас',\n 'connection.connecting': 'Подключение',\n 'connection.connected': 'Подключено',\n 'connection.reconnect': 'Отключено, подключиться сейчас',\n 'connection.restart': 'Подключение, перезапустить сейчас',\n },\n 'settings.models': {\n 'nav': 'Модели',\n 'title': 'Модели',\n 'intro': 'Введите API-ключи, чтобы использовать модели указанных провайдеров.',\n 'edit': 'Изменить',\n 'editProvider': 'Изменить {provider}',\n 'remove': 'Удалить',\n 'removeProvider': 'Удалить {provider}',\n 'deleteTitle': 'Удалить {provider}?',\n 'deleteDescription': 'Удаление {provider} уберёт его конфигурацию. Используемые им учётные данные управляются отдельно и будут сохранены.',\n 'deleteDescriptionWithCredential': 'Удаление {provider} уберёт его конфигурацию и сохранённый API-ключ.',\n 'deleteConfirm': 'Удалить {provider}',\n 'deleting': 'Удаление {provider}…',\n 'add': 'Добавить провайдера',\n 'provider': 'Провайдер',\n 'close': 'Закрыть',\n 'cancel': 'Отмена',\n 'apply': 'Применить',\n 'applying': 'Применение…',\n 'savedProvider': 'Сохранено: {provider}.',\n 'credentialConfigured': 'API-ключ настроен',\n 'credentialMissing': 'API-ключ отсутствует',\n 'readOnly': 'Документ настроек в этой сборке доступен только для чтения.',\n 'loadFailed': 'Не удалось загрузить каталог провайдеров',\n 'conflict': 'Пока эта карточка была открыта, настройки изменились в другом месте. Закройте её и откройте заново, чтобы редактировать актуальные значения.',\n 'retry': 'Повторить',\n 'keyInput': 'API-ключ',\n 'keyPlaceholder': 'Введите API-ключ',\n 'keyPlaceholderNative': 'Введите API-ключ или оставьте поле пустым, чтобы использовать аутентификацию из окружения',\n 'keyStored': 'Настроен — введите новое значение, чтобы заменить',\n 'keyEnvLocked': 'Предоставлен окружением запуска (только для чтения)',\n 'customized': 'Изменённые настройки',\n 'baseUrl': 'Базовый URL',\n 'baseUrlDefault': 'По умолчанию у провайдера',\n 'models': 'Модели',\n 'modelsInherited': 'Используются настройки адаптера по умолчанию',\n 'modelsCustomized': 'Изменённый каталог моделей',\n 'resetModels': 'Восстановить значения по умолчанию',\n 'model': 'Модель',\n 'modelId': 'ID модели',\n 'modelName': 'Отображаемое имя',\n 'modelNamePlaceholder': 'Если пусто — используется ID модели',\n 'contextWindow': 'Контекстное окно',\n 'contextWindowPlaceholder': 'Используется значение по умолчанию провайдера',\n 'maxTokens': 'Максимум выходных токенов',\n 'maxTokensPlaceholder': 'Используется значение по умолчанию провайдера',\n 'modelAdvanced': 'Возможности',\n 'addModel': 'Добавить модель',\n 'removeModel': 'Удалить модель',\n 'modelsEmpty': 'В селекторе не будет показано ни одной модели. ID вне списка можно отправлять напрямую.',\n 'keyBlank': 'Введите API-ключ или оставьте поле пустым, чтобы сохранить имеющийся.',\n 'keyBlankNew': 'Введите API-ключ или оставьте поле пустым, если провайдер использует другой способ аутентификации.',\n 'keyIllegalCharacters': 'Формат этого API-ключа недействителен. Проверьте его.',\n 'modelIdRequired': 'ID модели обязателен.',\n 'modelIdDuplicate': 'ID модели должен быть уникальным.',\n 'modelNameInvalid': 'Отображаемое имя не может быть пустым.',\n 'modelContextInvalid': 'Контекстное окно должно быть положительным числом, например 131072, 256K или 1M.',\n 'modelMaxTokensInvalid': 'Максимум выходных токенов должен быть положительным числом, например 8192, 64K или 1M.',\n 'advancedHint': 'Остальные поля находятся в settings.yaml; редактируйте соответствующий раздел напрямую.',\n 'modelCapacityInvalid': 'Возможность должна быть числом, при желании с суффиксом K или M.',\n 'modelDuplicate': 'Каждый ID модели может встречаться только один раз.',\n 'modelContextWindow': 'Контекстное окно',\n 'modelMaxTokens': 'Максимум выходных токенов',\n 'fetchModels': 'Получить доступные модели',\n 'fetching': 'Запрос к провайдеру…',\n 'fetchNeedsBaseUrl': 'Сначала введите базовый URL, затем получайте модели.',\n 'fetchEmpty': 'Провайдер не указал модели. Добавьте их вручную.',\n 'fetchTitle': 'Выберите модели для добавления',\n 'fetchDescription': 'Это модели, доступные у провайдера. Выберите те, что нужно добавить.',\n 'fetchSelectAll': 'Выбрать все',\n 'fetchDeselectAll': 'Снять выбор',\n 'fetchAdopt': 'Добавить выбранные',\n 'customAdd': 'Добавить своего провайдера',\n 'customTitle': 'Свой провайдер',\n 'customTag': 'Свой',\n 'customRoute': 'ID провайдера',\n 'customRouteHint': 'Идентификатор в нижнем регистре, начинающийся с буквы; уникально именует провайдера в запросах и как имя учётных данных.',\n 'customRouteInvalid': 'Начинайте с буквы в нижнем регистре; далее — буквы в нижнем регистре, цифры и дефисы.',\n 'customRouteTaken': 'Этот ID уже использует другой провайдер.',\n 'customDisplayName': 'Отображаемое имя',\n 'customApi': 'Протокол API',\n 'customApiUnset': 'Не выбран',\n 'customNeedsBaseUrl': 'Своему провайдеру нужен базовый URL.',\n 'customNeedsModels': 'Своему провайдеру нужна хотя бы одна модель.',\n 'create': 'Создать провайдера',\n 'creating': 'Создание…',\n 'welcomeTitle': 'Уведомление о внутреннем тестировании',\n 'welcomeBody': 'DeepSeek Harness 0.1 находится в стадии тестирования среди разработчиков Harness. Многие области ещё требуют доработки, и мы будем рады отзывам от сообщества разработчиков. Основные плагины и базовые API DeepSeek Harness будут активно развиваться в ближайшие месяцы.\\n\\nМы рассчитываем вместе с разработчиками по всему миру исследовать пределы возможностей интеллекта, опираясь на открытую, свободно используемую и компонуемую инфраструктуру. Приглашаем разработчиков Harness присоединиться к экосистеме плагинов DSH.',\n 'welcomeContinue': 'Продолжить',\n 'welcomeError': 'Не удалось сохранить подтверждение. Попробуйте ещё раз.',\n 'onboardingTitle': 'Добавьте API-ключ, чтобы начать',\n 'onboardingDescription': 'Настройте официального провайдера DeepSeek, чтобы начать работу.',\n 'onboardingLater': 'Настроить позже',\n 'onboardingSave': 'Сохранить и продолжить',\n 'onboardingSaving': 'Сохранение…',\n 'keyRequired': 'Введите API-ключ, чтобы продолжить.',\n 'fetchSearch': 'Поиск моделей',\n 'fetchNoMatches': 'Нет подходящих моделей.',\n 'customBaseUrlPlaceholder': 'https://gateway.example/v1',\n 'settingsPathUnresolvable': 'не удалось разрешить путь настроек',\n },\n 'settings.pluginInventory': {\n 'tab': 'Список плагинов',\n 'loading': 'Чтение плагинов…',\n 'error': 'Плагины временно недоступны.',\n 'retry': 'Повторить',\n 'search': 'Поиск плагинов',\n 'empty': 'Нет доступных плагинов.',\n 'emptySearch': 'Нет подходящих плагинов.',\n 'enabledTag': 'Включён',\n 'disabledTag': 'Отключён',\n 'configuration': 'Конфигурация',\n 'unobserved': 'Не подключён',\n 'pending': 'Ожидание зависимостей',\n 'loadingPhase': 'Загрузка',\n 'active': 'Подключён',\n 'failed': 'Ошибка подключения',\n 'unloading': 'Отключение',\n 'presetTitle': 'Плагины сессии',\n 'presetSubtitle': 'Собираются для каждой сессии пресетами агента',\n 'countUnit': 'плагины',\n 'switcherLabel': 'Выберите пресет агента для просмотра',\n 'presetOptionDefault': '{name} (по умолчанию)',\n 'presetOptionBroken': '{name} (не удалось загрузить)',\n 'globalTitle': 'Глобальные плагины',\n 'globalSubtitle': 'Общие для системы и всех сессий',\n 'presetProvidedDetail': 'Глобально отключён; пресеты агента включают его на уровне сессии',\n 'enabledIn': 'Включён в',\n 'viewInPreset': 'Открыть в группе пресета',\n 'matchesInOtherPresets': 'Ещё совпадений в других пресетах: {count} ',\n 'failedCountLabel': 'ошибок',\n 'conditionalTag': 'Условно',\n 'presetEnabledTag': 'Включён через пресеты',\n 'failedTag': 'Сбой',\n 'moduleLabel': 'Модуль',\n 'fromPreset': 'Из',\n 'condition': 'Отключается, когда',\n 'runtime': 'Состояние',\n },\n 'settings.plugins': {\n 'nav': 'Плагины',\n 'title': 'Плагины',\n 'intro': 'Настройка и просмотр плагинов, установленных в этой сборке.',\n 'tabs': 'Виды плагинов',\n 'configurableTab': 'Конфигурация плагинов',\n 'empty': 'Эта сборка не открывает настроек плагинов.',\n 'overridden': 'Переопределено',\n 'reset': 'Сбросить к значению по умолчанию',\n 'readOnly': 'В этой сборке настройки хранятся только для чтения.',\n 'expand': 'Показать настройки',\n 'collapse': 'Скрыть настройки',\n 'save': 'Сохранить',\n 'saving': 'Сохранение…',\n 'discard': 'Отменить изменения',\n 'unsaved': 'Не сохранено',\n 'saveFailed': 'Сборка не приняла эти значения; они оставлены для исправления.',\n 'invalidNumber': 'Введите число или оставьте поле пустым, чтобы использовать значение по умолчанию.',\n 'bashTitle': 'Терминал',\n 'bashDescription': 'Ограничения для каждой команды, которую выполняет агент.',\n 'bashTimeoutMs': 'Тайм-аут команды (мс)',\n 'bashTimeoutMsHint': 'Сколько может выполняться одна команда, прежде чем будет завершена.',\n 'bashMaxOutputBytes': 'Лимит вывода на поток (байт)',\n 'bashMaxOutputBytesHint': 'Вывод сверх лимита сохраняется во временный файл, а не теряется.',\n 'agentLoopTitle': 'Цикл агента',\n 'agentLoopDescription': 'Как агент распределяет вызовы инструментов.',\n 'agentLoopMaxParallel': 'Параллельные вызовы инструментов',\n 'agentLoopMaxParallelHint': 'Верхний предел параллельных вызовов в пределах одного шага.',\n 'webSearchTitle': 'Веб-поиск',\n 'webSearchDescription': 'Поисковый провайдер DeepSeek.',\n 'webSearchApiKey': 'API-ключ',\n 'webSearchApiKeyHint': 'Хранится вне файла настроек. Оставьте пустым, чтобы сохранить текущий ключ.',\n 'webSearchApiKeySet': 'Ключ настроен.',\n 'webSearchApiKeyUnset': 'Ключ не настроен; поиск недоступен, пока он не будет добавлен.',\n 'webSearchBaseUrl': 'Эндпоинт',\n 'webSearchBaseUrlHint': 'Оставьте пустым, чтобы использовать адрес провайдера по умолчанию.',\n 'webSearchMaxUses': 'Максимум поисков за запрос',\n 'webSearchMaxUsesHint': 'Сколько раз один запрос может искать, прежде чем должен дать ответ.',\n 'subagentModelSelectionTitle': 'Субагенты',\n 'subagentModelSelectionDescription': 'Укажите, какие модели агенты могут выбирать для субагентов.',\n 'subagentModelSelectionToggle': 'Разрешить агентам выбирать модели для субагентов',\n 'subagentModelSelectionChoose': 'При включении агенты могут выбирать провайдера, модель и уровень рассуждения для каждого субагента из авторизованных моделей ниже. Применяется только к новым сессиям.',\n 'subagentModelSelectionAllowed': 'Модели, доступные агентам для выбора',\n 'subagentModelSelectionLoading': 'Загрузка моделей…',\n 'subagentModelSelectionLoadFailed': 'Не удалось загрузить модели.',\n 'subagentModelSelectionRetry': 'Повторить',\n 'subagentModelSelectionPartial': 'Некоторые провайдеры моделей не загрузились; сохранённые выборки по-прежнему можно удалить.',\n 'subagentModelSelectionUnavailable': 'Сейчас недоступно',\n 'subagentModelSelectionUnavailableGroup': 'Сохранено, но сейчас недоступно',\n 'subagentModelSelectionEmpty': 'Ни один провайдер моделей сейчас не предлагает моделей.',\n 'subagentModelSelectionRequired': 'Перед сохранением выберите хотя бы одну модель.',\n 'subagentModelSelectionConflict': 'Настройки изменены в другом месте. Отмените черновик и повторите.',\n 'subagentModelSelectionOff': 'Субагенты используют настроенные значения по умолчанию или наследуют модель родительского агента. Сохранённые выборки моделей остаются.',\n },\n 'sidebar': {\n 'session.new': 'Новая сессия',\n 'session.new.label': 'Новая сессия',\n 'toggle.open': 'Открыть боковую панель',\n 'toggle.collapse': 'Свернуть боковую панель',\n },\n 'skill': {\n 'row.title': 'Навык',\n 'row.running': 'Загрузка навыка',\n 'row.failed': 'Не удалось загрузить навык',\n 'row.stopped': 'Загрузка навыка прервана',\n 'row.instructions': 'Инструкции',\n 'row.inspect': 'Просмотр',\n 'menu.userOnly': 'только пользователь',\n },\n 'subagent': {\n 'diagnostic.corrupt': 'повреждённая запись сессии',\n 'diagnostic.unsupported': 'неподдерживаемая версия записи субагента',\n 'diagnostic.unavailable': 'запись сессии временно недоступна',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'duration.hours': '{hours} ч {minutes} мин {seconds} с',\n 'duration.days': '{days} д',\n 'duration.daysHours': '{days} д {hours} ч',\n 'duration.months': '~{months} мес',\n 'duration.monthsDays': '~{months} мес {days} д',\n 'duration.years': '~{years} г',\n 'duration.yearsMonths': '~{years} г {months} мес',\n 'duration.exactDays': '{days} д {hours} ч {minutes} мин {seconds} с',\n 'duration.exactTitle': 'Общее время активности: {duration}',\n 'loading.label': 'Загрузка субагентов…',\n 'loading.aria': 'Загрузка субагентов',\n 'load.error': 'Не удалось загрузить субагентов',\n 'retry': 'Повторить',\n 'mode.oneShot': 'одноразовый',\n 'mode.continuable': 'можно продолжить',\n 'activity.running': 'выполняется',\n 'activity.inactive': 'не выполняется',\n 'branch.collapse': 'Свернуть потомков {label}',\n 'branch.expand': 'Развернуть потомков {label}',\n 'count.total.one': '{count} субагент',\n 'count.total.other': '{count} субагентов',\n 'count.running.one': '{count} субагент выполняется',\n 'count.running.other': '{count} субагентов выполняется',\n 'switcher.aria': 'Переключить субагента: {title}',\n 'tree.aria': 'Сессии субагентов',\n 'readonly.oneShot.title': 'Запись одноразового субагента',\n 'readonly.title': 'Этот субагент пока доступен только для чтения',\n 'readonly.oneShot.body': 'Одноразовые задачи не принимают продолжений; здесь можно посмотреть полную запись выполнения.',\n 'readonly.body': 'Родительская сессия сейчас не в сети; откройте её заново, чтобы продолжить отправку сообщений.',\n 'tokens.thousand': '{value} тыс.',\n 'tokens.million': '{value} млн',\n 'tokens.total': '{value} ток',\n },\n 'settings.theme': {\n 'appearance.title': 'Оформление',\n 'appearance.light': 'Светлая',\n 'appearance.dark': 'Тёмная',\n 'appearance.system': 'Как в системе',\n 'fontSize.title': 'Размер шрифта',\n 'fontSize.description': 'Влияет только на содержимое беседы',\n 'fontSize.unit': 'px',\n 'fontSize.increase': 'Увеличить размер шрифта',\n 'fontSize.decrease': 'Уменьшить размер шрифта',\n },\n 'trajectory': {\n 'view.trajectory': 'Траектория',\n 'toolbar.aria': 'Панель траектории',\n 'toolbar.duration': 'Длительность',\n 'toolbar.useActualDuration': 'Фактическая длительность',\n 'toolbar.useEqualWidth': 'Равная ширина операций',\n 'toolbar.actualTime': 'Фактическое время',\n 'toolbar.turns': 'Раунды',\n 'toolbar.expandTurns': 'Развернуть раунды',\n 'toolbar.collapseTurns': 'Свернуть раунды',\n 'toolbar.calls': 'Вызовы',\n 'toolbar.expandCalls': 'Развернуть вызовы',\n 'toolbar.collapseCalls': 'Свернуть вызовы',\n 'toolbar.search': 'Поиск по траектории',\n 'toolbar.searchPlaceholder': 'Поиск',\n 'column.input': 'Ввод',\n 'column.model': 'Модель',\n 'column.tools': 'Инструменты',\n 'status.pending': 'Ожидает',\n 'timing.notAvailable': 'Недоступно',\n 'timing.notRecorded': 'Не записано',\n 'timing.stepStartUnavailable': 'Недоступно время начала шага',\n 'timing.firstTokenUnavailable': 'Недоступно время первого токена',\n 'timing.usageUnavailable': 'Данные об использовании недоступны',\n 'timing.outputTokensUnavailable': 'Недоступно число выходных токенов',\n 'timing.durationTooShort': 'Длительность слишком мала',\n 'timing.started': 'Начало',\n 'timing.totalDuration': 'Общая длительность',\n 'timing.ttft': 'TTFT',\n 'timing.generation': 'Генерация',\n 'timing.throughput': 'Пропускная способность',\n 'timing.duration': 'Длительность',\n 'timing.source': 'Источник времени',\n 'timing.sessionTimestamps': 'Метки времени сессии',\n 'timing.sessionTimestampsRunning': 'Метки времени сессии (выполняется)',\n 'usage.input': 'Ввод',\n 'tab.tools': 'Инструменты',\n 'record.noContent': 'Нет содержимого',\n 'record.noPayload': 'Ввод не зафиксирован',\n 'record.noResult': 'Результат не зафиксирован',\n 'record.resultJson': 'Результат JSON',\n 'record.outputJson': 'Результат JSON',\n 'record.thinking': 'Рассуждение',\n 'record.tools': 'Инструменты',\n 'block.openSummaryTitle': 'Открыть сводку вызова',\n 'history.loadingEarlier': 'Загрузка более ранней истории…',\n 'history.loadingEarlierAria': 'Загрузка более ранней истории…',\n 'history.loadEarlier': 'Загрузить более раннюю историю',\n 'history.clickToLoadEarlier': 'Нажмите, чтобы загрузить более раннюю историю',\n 'details.event': 'Детали события',\n 'details.resize': 'Изменить размер панели деталей',\n 'details.resizeTitle': 'Перетащите, чтобы изменить размер. Двойной клик — сброс.',\n 'details.close': 'Закрыть детали',\n 'details.model': 'Модель',\n 'timeline.aria': 'Таймлайн траектории',\n 'timeline.overviewAria': 'Обзор таймлайна; перетаскивайте по горизонтали, чтобы фокусироваться на событиях',\n 'timeline.noTimingData': 'Нет данных о времени',\n 'timeline.total': 'Всего: {duration}',\n 'timeline.started': 'Начало: {time}',\n 'layout.toolCallOnly': 'Только вызов инструмента',\n 'kind.system': 'SYSTEM',\n 'kind.user': 'USER',\n 'kind.context': 'CONTEXT',\n 'kind.compacted': 'COMPACTED',\n 'kind.message': 'Сообщение',\n 'kind.assistant': 'ASSISTANT',\n 'kind.tool': 'TOOL',\n 'kind.subtool': 'SUBTOOL',\n 'kind.sub': 'Sub',\n 'column.output': 'Вывод',\n 'column.think': 'Размышление',\n 'column.time': 'Время',\n 'turn.label': 'Ход {turn}',\n 'section.betweenTurns': 'Между ходами',\n 'group.message': 'Сообщение',\n 'group.step': 'Шаг {step}',\n 'group.compaction': 'Сжатие {seq}',\n 'status.failed': 'Ошибка',\n 'status.completed': 'Завершено',\n 'timing.showLocalTime': 'Показать локальное время',\n 'timing.showUnixTimestamp': 'Показать Unix-метку времени',\n 'timing.request': 'Время запроса',\n 'unit.milliseconds': '{value} мс',\n 'unit.seconds': '{value} с',\n 'unit.tokens': '{value} ток',\n 'unit.tokensPerSecond': '{value} ток/с',\n 'usage.tokens': 'Токены',\n 'usage.reasoning': 'Размышление',\n 'usage.content': 'Содержимое',\n 'usage.notReported': 'Данные об использовании не сообщаются',\n 'usage.cached': 'Из кэша',\n 'usage.cacheCreated': 'Запись в кэш',\n 'usage.other': 'Прочее',\n 'usage.output': 'Выход',\n 'usage.thisRequest': 'Этот запрос',\n 'usage.sessionCumulative': 'Суммарно по сессии',\n 'options.notRecorded': 'Параметры не записаны',\n 'options.json': 'JSON параметров запроса',\n 'source.unknown': 'Неизвестно',\n 'source.user': 'Пользователь',\n 'source.plugin': 'Плагин',\n 'source.pluginNamed': 'Плагин · {plugin}',\n 'source.goal': 'Цель',\n 'source.goalRound': 'Цель · Раунд {round}',\n 'source.notRecorded': 'Источник не записан',\n 'source.messageJson': 'JSON источника сообщения',\n 'tab.summary': 'Сводка',\n 'tab.rawOutput': 'Исходный вывод',\n 'tab.preview': 'Предпросмотр',\n 'tab.raw': 'Исходный текст',\n 'tab.source': 'Источник',\n 'tab.payload': 'Запрос',\n 'tab.result': 'Результат',\n 'tab.schema': 'Схема',\n 'tab.timing': 'Время',\n 'tab.diff': 'Дифф',\n 'tab.systemPrompt': 'Системный промпт',\n 'tab.options': 'Параметры',\n 'tab.usage': 'Использование',\n 'record.toolCallOnly': '(только вызов инструмента)',\n 'record.noOutput': 'Нет вывода',\n 'record.schemaUnavailable': 'Схема недоступна',\n 'record.parameters': 'Параметры',\n 'record.json': 'JSON',\n 'record.parametersJson': 'JSON параметров',\n 'record.namedParametersJson': 'JSON параметров {name}',\n 'record.payloadJson': 'JSON запроса',\n 'record.systemPromptMissing': 'В этом запросе нет системного промпта',\n 'record.toolsMissing': 'В этом запросе нет инструментов',\n 'record.systemPrompt': 'Системный промпт',\n 'block.openSummary': 'Открыть сводку вызова инструментов для блока #{index}',\n 'block.label': 'Блок #{index} {type}',\n 'history.loadingTrajectory': 'Загрузка траектории…',\n 'request.label': 'Запрос #{request}',\n 'request.labelCompaction': 'Запрос #{request} · Сжатие',\n 'request.compaction': 'Сжатие · {section}',\n 'request.compactionPurpose': 'Сжатие',\n 'request.retryProgress': '{retry} из {maximum}',\n 'request.collapsedSummary': 'Свёрнутая сводка {kind}, {summary}',\n 'request.collapsedTurn': 'хода',\n 'request.collapsedAssistant': 'ассистента',\n 'request.rowAria': '{request}{kind}, {content}',\n 'request.rowPrefix': 'Запрос {request}, ',\n 'request.rowAriaCompaction': 'Запрос {request}, сжатие',\n 'request.noContent': 'нет содержимого',\n 'summary.toolCalls.one': '{count} вызов инструмента',\n 'summary.toolCalls.other': '{count} вызовов инструментов',\n 'summary.steps.one': '{count} шаг',\n 'summary.steps.other': '{count} шагов',\n 'details.status': 'Состояние',\n 'details.purpose': 'Назначение',\n 'details.provider': 'Провайдер',\n 'details.toolCalls': 'Вызовы инструментов',\n 'details.subtoolCalls': 'Вложенные вызовы',\n 'details.error': 'Ошибка',\n 'details.failure.auth': 'Недействительный API-ключ',\n 'details.retry': 'Повтор',\n 'details.scheduled': 'Запланирован',\n 'details.retryDelay': 'Задержка повтора',\n 'details.result': 'Результат',\n 'details.compacted': 'Сжато',\n 'details.assistantMessage': 'Сообщение ассистента',\n 'details.source': 'Источник',\n 'details.hierarchy': 'Иерархия',\n 'details.toolCall': 'Вызов инструмента',\n 'timeline.ttftDecoding': 'TTFT {ttft} · Декодирование {decoding}',\n 'layout.compacting': 'Сжатие контекста…',\n 'layout.compactionFailed': 'Сжатие не удалось',\n 'layout.compacted': 'Контекст сжат',\n 'layout.imageOnly': 'Изображения ×{count}',\n 'layout.fileAttachments': 'Файлы ×{count}',\n 'layout.initialSystemPrompt': 'Начальный системный промпт',\n 'layout.systemPromptUpdated': 'Системный промпт обновлён',\n 'layout.toolsUpdated': 'Инструменты обновлены',\n 'layout.systemPromptAndToolsUpdated': 'Системный промпт и инструменты обновлены',\n 'layout.compactionInterrupted': 'Сжатие было прервано до завершения.',\n },\n 'question': {\n 'error.incomplete': 'Сначала завершите этот вопрос.',\n 'error.unanswered': 'Выберите вариант или введите свой ответ.',\n 'nav.prev': 'Предыдущий вопрос',\n 'nav.next': 'Следующий вопрос',\n 'nav.minimize': 'Свернуть карточку вопроса',\n 'nav.maximize': 'Развернуть карточку вопроса',\n 'nav.cancel': 'Отменить все вопросы',\n 'option.recommended': 'Рекомендуется',\n 'custom.placeholder': 'Введите ваш ответ',\n 'action.skip': 'Пропустить вопрос',\n 'action.next': 'Далее',\n 'plan.header': 'План на рассмотрении',\n 'plan.approve': 'Утвердить',\n 'plan.decline': 'Отклонить',\n 'plan.discuss': 'Обсудить в чате',\n },\n 'workflowRun': {\n 'run.title': '{name}',\n 'run.members.one': '{count} участник',\n 'run.members.other': '{count} участников',\n 'run.empty': 'Участники не запущены',\n 'phase.unassigned': 'Без фазы',\n 'phase.empty': 'Пустое имя фазы',\n 'statusCount.running': 'Выполняется: {count}',\n 'statusCount.completed': 'Завершено: {count}',\n 'statusCount.failed': 'Ошибка: {count}',\n 'statusCount.cancelled': 'Отменено: {count}',\n 'statusCount.interrupted': 'Прервано: {count}',\n 'member.empty': 'Пустое имя участника',\n 'member.open': 'Открыть {name}',\n 'status.running': 'Выполняется',\n 'status.completed': 'Завершено',\n 'status.failed': 'Ошибка',\n 'status.cancelled': 'Отменено',\n 'status.interrupted': 'Прервано',\n },\n 'workspace': {\n 'group.ungrouped': 'Без группы',\n 'session.new': 'Новая сессия',\n 'section.workspaces': 'Рабочие пространства',\n 'section.sessions': 'Сессии',\n 'viewOptions.label': 'Параметры вида',\n 'groupBy.label': 'Группировка',\n 'groupBy.workspace': 'По рабочим пространствам',\n 'groupBy.flat': 'Единым списком',\n 'orderBy.label': 'Сортировка',\n 'orderBy.manual': 'Вручную',\n 'orderBy.updated': 'По обновлению',\n 'sessions.expand': 'Показать ещё {n}',\n 'sessions.collapse': 'Свернуть',\n 'empty.none': 'Пока нет сессий',\n 'empty.noMatches': 'Ничего не найдено',\n 'workspace.add': 'Добавить рабочее пространство',\n 'search.sessions.aria': 'Поиск сессий',\n 'search.placeholder': 'Поиск сессий…',\n 'search.clear': 'Очистить поиск',\n 'search.results.aria': 'Результаты поиска',\n 'search.pending': 'Поиск по истории сессий…',\n 'search.unavailable': 'Контентный поиск временно недоступен. Показываем совпадения по имени.',\n 'search.noMatches': 'Нет подходящих сессий',\n 'search.hasMore': 'Показаны первые {n}. Сузьте поиск.',\n 'menu.addWorkspace': 'Добавить рабочее пространство…',\n 'picker.loading': 'Загрузка рабочих пространств…',\n 'conflict.named': 'Рабочее пространство с именем «{name}» уже существует.',\n 'folderError.title': 'Не удалось открыть папку',\n 'folderError.retry': 'Выбрать снова',\n 'rename': 'Переименовать',\n 'rename.workspace.title': 'Переименовать рабочее пространство',\n 'rename.session.title': 'Переименовать сессию',\n 'field.workspaceName': 'Имя рабочего пространства',\n 'field.sessionName': 'Имя сессии',\n 'delete.workspace': 'Удалить рабочее пространство',\n 'delete.desc': 'Это удалит «{name}» из списка рабочих пространств. Папка и журналы сессий сохранятся; их сессии появятся в разделе «Без группы».',\n 'delete.pending': 'Удаление рабочего пространства…',\n 'menu.fork': 'Создать ответвление сессии',\n 'menu.archiveSession': 'Архивировать сессию',\n 'sessions.count.one': '{n} сессия',\n 'sessions.count.other': '{n} сессий',\n 'actions.workspace.aria': 'Действия рабочего пространства {name}',\n 'actions.session.aria': 'Действия сессии {name}',\n 'actions.newSession.aria': 'Новая сессия в {name}',\n 'status.running': 'Выполняется',\n 'status.subagentsRunning.one': '{n} субагент выполняется',\n 'status.subagentsRunning.other': '{n} субагентов выполняется',\n 'status.idle': 'Ожидает',\n 'status.waitingApproval': 'Ожидает одобрения',\n 'status.planReview': 'План на рассмотрении',\n 'status.waitingAnswer': 'Ожидает ответа',\n 'status.completed': 'Завершено',\n 'schedule.active': 'Есть активная запланированная задача',\n 'hover.created': 'Создано {time}',\n 'hover.copied': 'Скопировано',\n 'date.ymd': '{d}.{m}.{y}',\n 'time.now': 'только что',\n 'time.minutes': '{n} мин',\n 'time.hours': '{n} ч',\n 'time.days': '{n} д',\n 'time.months': '{n} мес',\n 'time.years': '{n} г',\n 'time.ago': '{t} назад',\n },\n 'agent-team': {\n 'memberStatus.running': 'Выполняется',\n 'memberStatus.idle': 'Простой',\n 'memberStatus.inactive': 'Неактивен',\n 'memberStatus.provisioning': 'Подготовка',\n 'memberStatus.failed': 'Ошибка',\n 'status.pending': 'Ожидание',\n 'status.in_progress': 'В процессе',\n 'status.completed': 'Завершено',\n 'trigger': 'Команда агентов',\n 'refresh': 'Обновить команду',\n 'close': 'Закрыть',\n 'loading': 'Загрузка команды…',\n 'empty': 'Общих задач пока нет',\n 'roster': 'Участники',\n 'tasks': 'Общие задачи',\n 'model': 'Модель',\n 'open': 'Открыть диалог с участником',\n 'create': 'Новая задача',\n 'subject': 'Тема задачи',\n 'description': 'Описание задачи',\n 'blockers': 'ID блокирующих задач (через запятую)',\n 'scopes': 'Области записи (через запятую)',\n 'save': 'Сохранить',\n 'cancel': 'Отмена',\n 'edit': 'Изменить',\n 'complete': 'Завершить',\n 'reopen': 'Открыть заново',\n 'delete': 'Удалить',\n 'owner': 'Исполнитель',\n 'unowned': 'Без исполнителя',\n 'blockedBy': 'Блокируется',\n 'writeScopes': 'Области записи',\n 'ready': 'Готово к работе',\n 'blocked': 'Заблокировано зависимостями',\n 'conflict': 'Состояние задачи изменилось, она перезагружена. Проверьте её перед повтором.',\n },\n 'cordis': {\n 'row.defineTitle': 'Зарегистрировать плагин Cordis',\n 'row.runTitle': 'Запустить плагин Cordis',\n 'row.updateTitle': 'Обновить плагин Cordis',\n 'row.stopTitle': 'Остановить плагин Cordis',\n 'row.removeTitle': 'Удалить плагин Cordis',\n 'purpose.missing': '(цель не указана)',\n 'status.idle': 'Готов',\n 'status.awaitingApproval': 'Ожидает одобрения',\n 'status.failed': 'Ошибка запуска',\n 'status.clientPending': 'Client готов к активации',\n 'status.running': 'Выполняется',\n 'status.removed': 'Удалён',\n 'status.superseded': 'Доступен более новый запуск',\n 'run.removed': 'Этого пакета больше не существует',\n 'run.superseded': 'Ниже доступна более новая карточка запуска',\n 'panel.hint': 'Управление запуском находится на панели Cordis над настройками',\n 'panel.plugins.aria': 'Плагины Cordis',\n 'panel.approvals.aria': 'Одобрения Cordis',\n 'panel.trigger': 'Плагин Cordis',\n 'panel.runningCount': '{count} в работе',\n 'panel.title': 'Плагины Cordis',\n 'panel.empty': 'Плагины ещё не определены',\n 'panel.loading': 'Чтение…',\n 'panel.readFailed': 'Не удалось прочитать список плагинов: {message}',\n 'panel.group.current': 'Эта сессия',\n 'panel.group.others': 'Другие сессии',\n 'panel.version': 'Версия',\n 'panel.current': 'Текущая: {packageId}',\n 'panel.next': 'Следующая: {packageId}',\n 'action.approve': 'Разрешить',\n 'action.approveOnce': 'Разрешить только эту версию',\n 'action.approvePlugin': 'Разрешить будущие версии этого плагина',\n 'action.decline': 'Отклонить',\n 'action.run': 'Запустить',\n 'action.stop': 'Остановить',\n 'action.remove': 'Удалить',\n 'action.retry': 'Повторить',\n 'action.rollback': 'Откатить',\n 'action.inspect': 'Просмотр',\n 'render.failedAbdicated': 'Сбой рендеринга в {slot}; восстановлен интерфейс по умолчанию:',\n 'render.failedHeld': 'Сбой рендеринга в {slot}:',\n 'a11y.defining': 'Идёт определение плагина',\n 'a11y.failed': 'Определение не удалось',\n 'a11y.stopped': 'Определение прервано',\n 'body.source': 'Исходный код плагина',\n 'body.hostCode': 'Хост',\n 'body.clientCode': 'Клиент',\n 'body.output': 'Результат',\n 'body.copy': 'Копировать',\n 'body.copied': 'Скопировано',\n },\n 'session-log-download': {\n 'header.action': 'Журнал сессии',\n 'dialog.preparingTitle': 'Экспорт сессии',\n 'dialog.preparingDescription': 'Готовится ZIP-архив с этой сессией, её подсессиями и вложениями.',\n 'dialog.successTitle': 'Загрузка сессии началась',\n 'dialog.successDescription': 'Браузер загружает ZIP-архив сессии.',\n 'dialog.errorTitle': 'Не удалось экспортировать сессию',\n 'dialog.close': 'Закрыть',\n 'dialog.commandFailed': 'Не удалось запустить экспорт сессии.',\n },\n 'chat': {\n 'view.chat': 'Чат',\n 'number.groupSeparator': ' ',\n 'duration.compactSeconds': '{seconds} с',\n 'duration.compactMinutes': '{minutes} мин {seconds} с',\n 'duration.milliseconds': '{milliseconds} мс',\n 'stats.counts': '{turns} ходов · {steps} шагов',\n 'stats.llm': 'LLM {duration}',\n 'stats.toolCall': 'Вызов инструмента {duration}',\n 'stats.ttftAverage': 'Среднее время до первого токена: {duration}',\n 'stats.tokensPerSecond': '{throughput} ток/с',\n 'stats.cacheHit': 'Попадание в кэш {percent}%',\n 'stats.tokens': 'Вход {input} ток · Выход {output} ток',\n 'details.title': 'Подробности',\n 'details.close': 'Закрыть подробности',\n 'details.empty': 'Нажмите на строку инструмента в потоке сообщений, чтобы увидеть подробности',\n 'details.notInWindow': 'Этот вызов вне текущего окна',\n 'details.input': 'Ввод',\n 'details.output': 'Вывод',\n 'details.running': 'Выполняется…',\n 'chat.loadingHistory': 'Загрузка истории…',\n 'chat.loadError': 'Не удалось загрузить историю: {message} ({code})',\n 'chat.loadOlder': 'Загрузить ранее',\n 'chat.toBottom': 'Вниз',\n 'chat.deepDiving': 'Глубокое исследование…',\n 'chat.turnNavigation.label': 'Навигация по ходам',\n 'chat.turnNavigation.jump': 'Перейти к ходу {turn}',\n 'chat.turnNavigation.jumpLoad': 'Загрузить и перейти к ходу {turn}',\n 'chat.turnNavigation.turn': 'Ход {turn}',\n 'settings.transcript.title': 'Отображение диалога',\n 'settings.transcript.description': 'Управляет содержимым процесса в завершённых ходах',\n 'settings.transcript.normal': 'Обычный',\n 'settings.transcript.compact': 'Компактный',\n 'fileOpen.title': 'Не удалось открыть файл',\n 'fileOpen.unknown': 'Не удалось открыть этот файл',\n 'fileOpen.folderTitle': 'Не удалось открыть папку',\n 'fileOpen.folderUnknown': 'Не удалось открыть эту папку',\n 'message.extraBlock': 'Дополнительный блок содержимого',\n 'message.systemPrompt': 'Системный промпт',\n 'message.contextInjection': 'Инъекция контекста',\n 'message.contextRecall': 'Межсессонный поиск',\n 'message.referenceSummary': 'Ссылка на сессию · {labels}',\n 'message.referenceSeparator': ', ',\n 'message.context.instructions.loaded': 'загружено',\n 'message.context.instructions.added': 'добавлено',\n 'message.context.instructions.updated': 'обновлено',\n 'message.context.instructions.removed': 'удалено',\n 'message.context.catalog.replaced': 'Заменённый каталог',\n 'message.context.catalog.more': '… ещё {count}',\n 'message.context.snapshot.supersedes': 'Заменяет предыдущие снимки',\n 'message.context.relay.from': 'Из сессии {session}',\n 'message.context.recall.counts': 'Сохранено {retained} · Пропущено {omitted}',\n 'message.context.recall.truncated': 'обрезано',\n 'message.compaction': 'Контекст сжат',\n 'message.compaction.running': 'Сжатие контекста…',\n 'message.compaction.completed': 'Сжато {items} записей истории (~{tokens} токенов)',\n 'message.compaction.expand': 'Показать сводку сжатия',\n 'message.compaction.unavailable': 'Сводка сжатия недоступна',\n 'message.compaction.commandTitle': 'compact',\n 'message.think': 'Размышление',\n 'message.unknownSurface': 'Неизвестное surface-событие: {type}',\n 'message.unknownBlock': 'Неизвестный блок содержимого',\n 'message.turnProcess.toolCalls.one': '{count} вызов инструмента',\n 'message.turnProcess.toolCalls.other': '{count} вызовов инструментов',\n 'message.turnProcess.messages.one': '{count} сообщение',\n 'message.turnProcess.messages.other': '{count} сообщений',\n 'message.turnProcess.subagents.one': '{count} субагент',\n 'message.turnProcess.subagents.other': '{count} субагентов',\n 'message.turnProcess.thoughtForAWhile': 'Думал некоторое время',\n 'message.turnProcess.separator': ' · ',\n 'message.stopped': 'Остановлено',\n 'message.branch': 'Ответвить новый диалог',\n 'message.branchUnavailable': 'Доступно только на последнем сообщении завершённого хода',\n 'message.retry.active': 'Повтор запроса к модели',\n 'message.retry.cancelled': 'Повтор запроса к модели отменён',\n 'message.retry.started': 'Запрос к модели повторён',\n 'message.retry.scheduled': 'Ожидание повтора запроса к модели',\n 'message.retry.status': '{label} ({retry}/{maximum}) · {seconds} с',\n 'message.retry.delay': 'Задержка повтора: ',\n 'message.retry.failure': 'Причина сбоя: ',\n 'message.failure.auth': 'Недействительный API-ключ',\n 'message.turnError': 'Этот ход завершился с ошибкой',\n 'message.maxTokens': 'Достигнут лимит выходных токенов',\n 'message.maxTokens.hint': 'Ответ обрезан; уже выведенное сохранено в диалоге. Отправьте «продолжай», чтобы модель завершила ответ.',\n 'message.ranFor': 'Выполнялся {duration}',\n 'message.tokensPerSecond': '{tps} ток/с',\n 'message.turnUsage.title': 'Расход хода',\n 'message.turnUsage.consumed': 'Расход {total}',\n 'message.turnUsage.model': 'Провайдер / модель',\n 'message.turnUsage.cacheHit': 'Попадание в кэш',\n 'message.turnUsage.input': 'Вход без кэша',\n 'message.turnUsage.cacheRead': 'Чтение из кэша',\n 'message.turnUsage.cacheWrite': 'Запись в кэш',\n 'message.turnUsage.output': 'Выход',\n 'message.turnUsage.reasoning': ' (из них размышление {tokens})',\n 'message.turnUsage.count': '{count} ток',\n 'message.turnTime.title': 'Время и скорость хода',\n 'message.turnTime.duration': 'Общее время хода',\n 'message.turnTime.speed': 'Скорость вывода (TPS)',\n 'message.turnTime.ttft': 'Время до первого токена (TTFT)',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'command.running': 'Выполняется…',\n 'command.failed': 'Команда завершилась с ошибкой',\n 'command.done': 'Завершено',\n 'command.title': 'Команда',\n 'row.running': 'Выполняется',\n 'row.failed': 'Ошибка',\n 'json.truncated': '… обрезано, всего {total} символов',\n 'clock.md': '{d}.{m}',\n 'clock.ymd': '{d}.{m}.{y}',\n },\n 'directory-browser': {\n 'browser.title': 'Выбор рабочего каталога',\n 'browser.home': 'Домой',\n 'browser.newFolder': 'Новая папка',\n 'browser.folderName': 'Имя папки',\n 'browser.createIn': 'Новая папка в \"{name}\"',\n 'browser.untitledFolder': 'Папка без имени',\n 'browser.create': 'Создать',\n 'browser.cancel': 'Отмена',\n 'browser.open': 'Открыть',\n 'browser.editPath': 'Изменить путь',\n 'browser.loading': 'Загрузка…',\n 'browser.truncated': 'Слишком много папок; показано только начало списка.',\n 'browser.showHidden': 'Показывать скрытые файлы',\n },\n}\n","/**\n * Russian (ru) language pack, browser half. Registers `ru` as an external\n * selectable language and contributes a `ru` dictionary for every client\n * locale namespace, following the language-pack pattern from\n * `@deepseek-ai/dsh-client-locale` (addLanguage + per-locale register).\n */\nimport type { Context as ClientContext } from '@deepseek-ai/cordis'\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\nimport { RU_DICTS, RU_LABEL } from './dicts.ts'\n\n/** Required service: the locale registry that owns languages and dictionaries. */\nexport const inject = ['locale']\n\n/**\n * Client plugin body: add `ru` to the selectable language catalog and register\n * a ru dictionary for every namespace this pack contributes. Registration is\n * an effect, so the contributed language and dictionaries are torn down with\n * this plugin's fiber.\n * @param ctx - client root context.\n */\nexport function apply(ctx: ClientContext): void {\n ctx.effect(\n () => ctx.locale.addLanguage({ id: 'ru', label: RU_LABEL, fallback: 'en' }),\n 'locale-ru: language',\n )\n for (const [ns, dict] of Object.entries(RU_DICTS)) {\n ctx.effect(() => ctx.locale.register(ns, 'ru', dict), `locale-ru: ${ns} dictionary`)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../src/client/dicts.ts","../src/client/index.ts"],"sourcesContent":["/**\n * Russian (ru) dictionaries, one entry per locale namespace.\n * Key sets mirror each namespace's zh/en dictionaries at the profiled\n * base commit; any key added upstream later falls back to en at lookup.\n */\n\nexport const RU_LABEL = 'Русский'\n\nexport const RU_DICTS: Record<string, Record<string, string>> = {\n 'common': {\n 'ok': 'ОК',\n 'cancel': 'Отмена',\n 'close': 'Закрыть',\n 'copy': 'Копировать',\n 'copied': 'Скопировано',\n 'copy.failed': 'Не удалось скопировать',\n 'copy.value': 'Копировать значение',\n 'copy.json': 'Копировать JSON',\n 'copy.path': 'Копировать путь',\n 'copy.prettyJson': 'Копировать красивый JSON',\n 'copy.compactJson': 'Копировать компактный JSON',\n 'copy.optionsHint': '{action}; правый клик — варианты копирования',\n 'retry': 'Повторить',\n 'loading': 'Загрузка…',\n 'load.failed': 'Не удалось загрузить',\n 'submit': 'Отправить',\n 'submitting': 'Отправка…',\n 'next': 'Далее',\n 'previous': 'Предыдущий',\n 'skip': 'Пропустить',\n 'delete': 'Удалить',\n 'edit': 'Изменить',\n 'save': 'Сохранить',\n 'search': 'Поиск',\n 'more': 'Ещё',\n 'collapse': 'Свернуть',\n 'expand': 'Развернуть',\n 'back': 'Назад',\n 'brand.localBuild': 'Локальная сборка DSH',\n 'unknown': 'Неизвестно',\n 'none': 'Нет',\n 'truncated': 'Обрезано',\n 'json.collapseNode': 'Свернуть узел JSON',\n 'json.expandNode': 'Развернуть узел JSON',\n 'json.label': 'JSON',\n 'markdown.footnotes': 'Сноски',\n 'markdown.truncatedCharacters': '… обрезано на {total} символах',\n 'number.thousand': '{value} тыс.',\n 'number.million': '{value} млн',\n },\n 'settings.locale': {\n 'language.title': 'Язык',\n },\n 'settings.agentPreset': {\n 'error': 'Не удалось загрузить пресеты агента.',\n 'userTrust': 'Свой',\n 'seatHint': 'Пресет агента для сессии, которую вы собираетесь начать',\n 'headerHint': 'Пресет агента, с которым работает эта сессия; фиксируется при запуске',\n 'nav': 'Пресеты агента',\n 'sectionIntro': 'Пресет — это композиция плагинов, с которыми работает агент сессии: его инструменты, промпт и возможности. Скопируйте существующий пресет и настройте под себя или позвольте агенту составить его в режиме Creator.',\n 'builtIn': 'Встроенные',\n 'setDefault': 'Сделать пресетом по умолчанию',\n 'view': 'Просмотр',\n 'presetStandardName': 'Стандартный режим',\n 'presetStandardDescription': 'Полноценный агент-программист: редактирование файлов, shell, поиск по файлам и в вебе, навыки, планирование, цели, субагенты и воркфлоу.',\n 'presetPtcName': 'Режим кода',\n 'presetMinimalName': 'Минимальный режим',\n 'presetMinimalDescription': 'Агент-программист из двух инструментов: постоянный bash и str_replace_editor.',\n 'presetCordisName': 'Режим Creator',\n 'presetCordisDescription': 'Создан для разработки собственных пресетов: все возможности стандартного режима плюс инспекция на лету, эксперименты с плагинами и подсказки по созданию пресетов.',\n 'duplicate': 'Дублировать',\n 'duplicateUnavailable': 'В этой сборке нет каталога пресетов для записи',\n 'delete': 'Удалить',\n 'presetId': 'Идентификатор',\n 'presetIdPlaceholder': 'my-agent',\n 'displayName': 'Название',\n 'displayNamePlaceholder': 'Показывается в выборе; по умолчанию — идентификатор',\n 'inUse': 'Используется',\n 'builtInGroup': 'Встроенные',\n 'customGroup': 'Свои',\n 'noDescription': 'Нет описания.',\n 'brokenBadge': 'Не удалось загрузить',\n 'brokenNoCopy': 'Пресет, который не удалось загрузить, нельзя дублировать',\n 'copyOf': 'Копия из',\n 'composition': 'Композиция (agent.cordis.yml)',\n 'cancel': 'Отмена',\n 'close': 'Закрыть',\n 'retry': 'Повторить',\n 'copyTitle': 'Дублировать пресет',\n 'copyIntro': 'Пресет целиком копируется на этом компьютере. Идентификатор становится именем каталога и не меняется впоследствии; всё остальное редактируется в файлах самого пресета.',\n 'create': 'Создать',\n 'creating': 'Создание…',\n 'creatorDraft': 'Составить свой пресет в режиме Creator',\n 'openLocation': 'Открыть папку',\n 'showLocation': 'Показать путь',\n 'revealedPathLabel': 'Файлы пресета:',\n 'idRequired': 'Укажите идентификатор пресета.',\n 'idInvalid': 'Используйте строчные буквы, цифры и дефисы, начиная с буквы или цифры.',\n 'idTaken': 'Пресет с таким идентификатором уже существует.',\n 'deleteTitle': 'Удалить этот пресет?',\n 'deleteDescription': 'Каталог пресета будет удалён. Сессии, которые уже работают на нём, продолжат работу; новые сессии не смогут его выбрать.',\n 'deleteConfirm': 'Удалить',\n 'deleting': 'Удаление…',\n 'presetPtcDescription': 'Полноценный агент-программист без инструмента workflow; остальные инструменты доступны через SDK режима PTC, поэтому модель может объединять многошаговые операции в одну программу на TypeScript.',\n 'switchRefused': 'Не удалось переключить на «{name}»: {reason}',\n },\n 'approval': {\n 'detail.aria': 'Детали запроса',\n 'waiting': 'Ожидает одобрения',\n 'escalation': 'Инструмент {toolName} запрашивает привилегированное выполнение',\n 'reject': 'Отклонить',\n 'allowOnce': 'Разрешить один раз',\n },\n 'command': {\n 'search.placeholder': 'Поиск…',\n 'search.aria': 'Фильтр вариантов',\n 'status.loading': 'Загрузка вариантов…',\n 'status.applying': 'Применение…',\n 'status.empty': 'Нет вариантов',\n 'overlay.aria': 'Варианты /{command}',\n 'listbox.aria': 'Совпадения /{command}',\n 'notice.attachmentsUnsupported': '/{command} не принимает вложения; сначала удалите их',\n 'description.compact': 'Сжать историю старых сообщений',\n 'description.export': 'Скачать журнал этой сессии как ZIP-архив',\n 'description.feedback': 'оставить отзыв об этой сессии',\n 'description.goal': 'задать или посмотреть цель долгой задачи',\n 'description.permission': 'Переключить пресет разрешений (режим песочницы + политика подтверждений)',\n 'description.plan': 'Войти в режим планирования или выйти из него',\n },\n 'conversation': {\n 'hint.plan': 'опишите вашу задачу, чтобы составить план',\n 'hint.goal': 'опишите цель для длительной задачи',\n 'hint.goal.active': 'цель активна — edit / pause / resume / clear',\n 'placeholder.plan': 'опишите вашу задачу, чтобы составить план',\n 'placeholder.default': 'Сообщение или задача; «/» — команды, «@» — файлы и сессии',\n 'placeholder.unavailable': 'Сессия недоступна',\n 'placeholder.parentOffline': 'Родительская сессия офлайн: отправка недоступна, но вы можете остановить выполнение',\n 'placeholder.hero': 'Опишите, что нужно сделать; «/» — команды, «@» — файлы и сессии',\n 'placeholder.workspace': 'Выберите рабочее пространство, чтобы начать',\n 'placeholder.steerQueue': 'Cmd/Ctrl+Enter — отправить все сообщения из очереди',\n 'input.commands': 'Команды',\n 'input.stop': 'Остановить генерацию',\n 'input.send': 'Отправить сообщение',\n 'input.accessMode': 'Режим доступа, текущий: {name}',\n 'attachment.pending': 'Вложения ожидают отправки',\n 'attachment.scrollLeft': 'Прокрутить вложения влево',\n 'attachment.scrollRight': 'Прокрутить вложения вправо',\n 'attachment.dropTitle': 'Перетащите файлы или изображения сюда, чтобы добавить их',\n 'attachment.dropDesc': 'Изображения: до {count} шт., каждое до {size}',\n 'attachment.dropBlocked': 'Сейчас нельзя добавить файлы или изображения',\n 'image.pending': 'Изображения ожидают отправки',\n 'image.openOriginal': 'Открыть оригинал',\n 'image.openOriginalLabel': '{label}, нажмите, чтобы открыть оригинал',\n 'image.remove': 'Удалить изображение {name}',\n 'image.original': 'Оригинал',\n 'image.label': 'Изображение',\n 'image.loadFailed': 'Не удалось загрузить изображение; нажмите, чтобы повторить',\n 'image.loading': 'Загрузка изображения…',\n 'image.preview': 'Просмотр оригинала',\n 'image.closePreview': 'Закрыть просмотр оригинала',\n 'image.unsupportedType': 'Поддерживаются только изображения PNG, JPG, WebP и GIF',\n 'image.tooMany': 'Сообщение может содержать до {count} изображений',\n 'image.fileTooLarge': 'Каждое изображение должно быть меньше {size}',\n 'image.totalTooLarge': 'Суммарный размер изображений превышает {size}; удалите часть и повторите',\n 'image.tooManyPixels': 'Разрешение изображения слишком высокое; сожмите его и повторите',\n 'image.dimensionTooLarge': 'Стороны изображения не должны превышать {size}px; уменьшите его и повторите',\n 'image.modelUnsupported': 'Текущая модель не поддерживает изображения; переключитесь на модель с их поддержкой',\n 'image.sendFailed': 'Не удалось отправить изображения ({reason}); добавьте их заново и повторите',\n 'file.attach': 'Добавить вложение',\n 'file.pending': 'Файлы ожидают отправки',\n 'file.remove': 'Удалить файл {name}',\n 'file.uploading': 'Загрузка…',\n 'file.uploadFailed': 'Не удалось загрузить; нажмите, чтобы повторить',\n 'file.retry': 'Повторить загрузку {name}',\n 'file.stillUploading': 'Файлы ещё загружаются; дождитесь окончания загрузки',\n 'file.sessionUnavailable': 'Сессия недоступна: загрузка файлов невозможна',\n 'file.notStaged': 'Файл ещё не загружен полностью; добавьте его заново',\n 'file.label': 'Файл',\n 'context.aria': 'Использовано {percent} контекста',\n 'context.used': 'контекста использовано',\n 'context.system': 'Системный промпт',\n 'context.tools': 'Определения инструментов',\n 'context.messages': 'Сообщения',\n 'settings.enter.title': 'Поведение отправки во время работы агента',\n 'settings.enter.description': 'Что делают Enter и кнопка отправки, пока агент работает; Cmd/Ctrl+Enter использует другое поведение',\n 'settings.enter.queue': 'В очередь',\n 'settings.enter.steer': 'Отправить сразу',\n 'access.preset.readOnly': 'Только чтение',\n 'access.preset.workspaceWrite': 'Запись в рабочую папку',\n 'access.preset.fullAccess': 'Полный доступ',\n 'access.confirm.title': 'Включить «Полный доступ»?',\n 'access.confirm.description': '«Полный доступ» уменьшает число этапов подтверждения и позволяет агенту напрямую выполнять больше действий, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете текущей задаче.',\n 'access.confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'access.confirm.cancel': 'Отмена',\n 'access.confirm.enable': 'Включить «Полный доступ»',\n 'hero.headline': 'К неизведанному',\n 'hero.preview': 'Предпросмотр',\n 'hero.chooseWorkspace': 'Выбрать рабочее пространство',\n 'session.hierarchy': 'Иерархия сессий',\n 'todo.title': 'Задачи',\n 'todo.progress.done': '{done} выполнено',\n 'todo.progress.active': '{active} в процессе',\n 'todo.progress.pending': '{pending} ожидает',\n 'todo.rowTitle': 'Обновить список задач',\n 'todo.completed': '{done}/{total} выполнено',\n 'command.attachmentsUnsupported': '/{command} не принимает вложения; сначала удалите их',\n 'ask.rowTitle': 'Задать вопрос',\n 'ask.waiting': 'ожидание',\n 'ask.cancelled': 'отменено',\n 'ask.cancelledDetail': 'Этот набор вопросов был отменён до отправки ответов.',\n 'ask.interrupted': 'прервано',\n 'ask.interruptedDetail': 'Этот набор вопросов был прерван до отправки ответов.',\n 'ask.answered': '{answered}/{total} отвечено',\n 'ask.skipped': 'Не отвечено',\n 'bash.running': 'Выполняется',\n 'bash.failed': 'Ошибка',\n 'bash.stopped': 'Остановлено',\n 'row.running': 'Выполняется',\n 'row.failed': 'Ошибка',\n 'row.stopped': 'Остановлено',\n 'row.input': 'ВВОД',\n 'row.output': 'ВЫВОД',\n 'row.inspect': 'Просмотр',\n 'tool.title.search': 'Поиск',\n 'tool.title.read': 'Чтение',\n 'tool.title.bash': 'Bash',\n 'tool.title.write': 'Запись',\n 'tool.title.edit': 'Правка',\n 'tool.title.code': 'Код',\n 'tool.title.generic': 'Вызов инструмента',\n 'tool.title.inspect': 'Просмотр',\n 'tool.title.runCordis': 'Запустить плагин Cordis',\n 'tool.title.stopCordis': 'Остановить плагин Cordis',\n 'tool.title.removeCordis': 'Удалить плагин Cordis',\n 'tool.title.pwsh': 'Pwsh',\n 'tool.title.readImage': 'Прочитать изображение',\n 'tool.title.grep': 'Grep',\n 'tool.title.glob': 'Glob',\n 'tool.title.webSearch': 'Поиск',\n 'tool.title.webFetch': 'Запрос',\n 'diff.files.one': '{count} файл',\n 'diff.files.other': '{count} файлов',\n 'diff.collapseAria': 'Свернуть изменения',\n 'diff.expandAria': 'Показать ещё {count} строк изменений',\n 'diff.expandRest': '… ещё {count} строк',\n 'read.window': 'Показано {shown} из {total} строк',\n 'read.collapseAria': 'Свернуть содержимое',\n 'read.expandAria': 'Показать ещё {count} строк',\n 'read.expandRest': '… ещё {count} строк',\n 'search.paths': '{shown} путей',\n 'search.paths.truncated': 'Показано {shown} из {total} путей',\n 'search.matches': '{shown} совпадений · {files} файлов',\n 'search.matches.truncated': 'Показано {shown} из {total} совпадений · {files} файлов',\n 'search.noResults': 'Ничего не найдено',\n 'search.collapseAria': 'Свернуть результаты',\n 'search.expandAria': 'Показать ещё {count} строк результатов',\n 'search.expandRest': '… ещё {count} строк',\n 'web.noResults': 'Ничего не найдено',\n 'web.sourcesTruncated': 'Список источников обрезан',\n 'web.http': 'HTTP',\n 'web.contentTruncated': 'Содержимое обрезано',\n 'details.running': 'Выполняется…',\n 'queue.count': 'В очереди: {n}',\n 'queue.image': 'Изображение в очереди сообщения',\n 'queue.file': 'Файл {name} в очереди',\n 'queue.edit': 'Изменить сообщение из очереди',\n 'queue.edit.unsupported': 'Содержит нетекстовый контент; редактирование пока не поддерживается',\n 'queue.save': 'Сохранить сообщение из очереди',\n 'queue.cancelEdit': 'Отменить редактирование',\n 'queue.remove': 'Удалить сообщение из очереди',\n 'queue.steer': 'Отправить сразу',\n 'queue.steer.unavailable': 'Отправка сразу доступна только пока агент работает',\n 'queue.editFailed': 'Не удалось изменить: сообщение могло уже начать отправляться.',\n 'queue.removeFailed': 'Не удалось удалить: сообщение могло уже начать отправляться.',\n 'queue.steerFailed': 'Не удалось отправить сразу. Повторите попытку.',\n 'terminal.signal': 'сигнал {signal}',\n 'terminal.exitCode': 'код выхода {code}',\n 'terminal.running': 'Выполняется',\n 'terminal.failed': 'Ошибка',\n 'terminal.done': 'Готово',\n 'terminal.noOutput': 'Нет вывода',\n 'terminal.collapseAria': 'Свернуть вывод',\n 'terminal.expandAria': 'Развернуть оставшиеся строки вывода ({n})',\n 'terminal.expandRest': '… ещё строк: {n}',\n 'terminal.sendInput': '(отправить ввод)',\n 'terminal.session': 'Терминал {sessionId}',\n 'input.send.queue': 'Отправить в очередь',\n 'input.send.steer': 'Отправить сразу',\n 'queue.sending': 'Отправка…',\n },\n 'deliverables': {\n 'produced.label': 'Изменённые файлы',\n 'produced.moreOne': '+ 1 файл',\n 'produced.more': '+ {count} файлов',\n 'produced.open': 'Открыть {name}',\n 'presented.action': 'Открыть',\n 'presented.all': 'Все файлы: {count}',\n 'presented.collapse': 'Свернуть',\n 'presented.collapseAria': 'Свернуть список созданных файлов',\n 'presented.defaultApp': 'Открыть в приложении по умолчанию',\n 'presented.directory': 'Открыть папку с файлом',\n 'presented.directoryError': 'Не удалось открыть папку с файлом. Повторите.',\n 'presented.directoryOpened': 'Запрошено открытие папки с файлом',\n 'presented.directoryOpening': 'Открываем папку с файлом…',\n 'presented.error': 'Не удалось открыть. Нажмите, чтобы повторить.',\n 'presented.expandAria': 'Показать все созданные файлы ({count})',\n 'presented.explorer': 'Показать в Проводнике',\n 'presented.file': 'Файл',\n 'presented.finder': 'Показать в Finder',\n 'presented.hostError': 'Не удалось прочитать сведения о рабочем столе хоста',\n 'presented.more': 'Другие действия с файлом {name}',\n 'presented.nativeUnavailable': 'У этого файла нет доступного пути на хосте. Откройте его в боковой панели.',\n 'presented.open': 'Открыть {name} в приложении по умолчанию',\n 'presented.opened': 'Открыто в приложении по умолчанию',\n 'presented.opening': 'Открываем…',\n 'presented.preview': 'Просмотр в боковой панели',\n 'presented.previewButton': 'Открыть {name} в боковой панели',\n 'presented.previewCard': 'Просмотреть {name} в боковой панели',\n 'presented.retry': 'Повторить',\n 'presented.revealed': 'Запрошен показ в файловом менеджере',\n 'presented.revealError': 'Не удалось показать в файловом менеджере. Повторите.',\n 'presented.revealing': 'Показываем в файловом менеджере…',\n 'presented.unavailable': 'На этом хосте нет рабочего стола, чтобы открывать файлы или папки',\n 'row.error': 'Доставка не удалась',\n 'row.inspect': 'Просмотреть вызов',\n 'row.ok': 'Доставлено',\n 'row.running': 'Доставляем',\n 'row.stopped': 'Прервано',\n 'row.title': 'Созданные файлы',\n },\n 'goal': {\n 'phase.active': 'Активная цель',\n 'phase.paused': 'Приостановленная цель',\n 'phase.blocked': 'Заблокированная цель',\n 'objective.aria': 'Содержимое цели',\n 'commandInput.aria': 'Ввод команды',\n 'action.save': 'Сохранить цель',\n 'action.cancel': 'Отменить правку',\n 'action.pause': 'Приостановить цель',\n 'action.resume': 'Возобновить цель',\n 'action.edit': 'Изменить цель',\n 'action.clear': 'Удалить цель',\n 'phase.active.disarmed': 'Цель неактивна',\n },\n 'slash.menu': {\n 'command': 'Команды',\n 'skill': 'Навыки',\n 'subagent': 'Субагенты',\n 'loading': 'Загрузка…',\n 'drill.aria': 'Обзор папки',\n 'drill.hint': 'Обзор папки',\n 'drill.key': 'Tab',\n 'crumbs.aria': 'Навигация по папкам',\n 'suggestions.aria': 'Возможные варианты по триггеру',\n },\n 'job': {\n 'count.live.one': '{count} фоновая задача выполняется',\n 'count.live.other': '{count} фоновых задач выполняется',\n 'count.idle.one': '{count} фоновая задача',\n 'count.idle.other': '{count} фоновых задач',\n 'list.aria': 'Фоновые задачи',\n 'status.running': 'выполняется',\n 'status.stopping': 'останавливается',\n 'status.completed': 'завершена',\n 'status.killed': 'отменена',\n 'status.failed': 'ошибка',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'duration.hours': '{hours} ч {minutes} мин',\n 'duration.title.live': 'Выполняется {duration}',\n 'duration.title.done': 'Заняло {duration}',\n },\n 'feedback': {\n 'action.like': 'Хороший ответ',\n 'action.likeActive': 'Снять оценку',\n 'action.dislike': 'Плохой ответ',\n 'action.dislikeActive': 'Снять оценку',\n 'error.conflict': 'Этот отзыв изменён в другом месте; показано актуальное состояние',\n 'error.load': 'Не удалось загрузить отзыв',\n 'error.generic': 'Не удалось сохранить отзыв',\n 'category.instruction-following': 'Понимание и выполнение инструкций',\n 'category.other': 'Другое',\n 'category.product-interaction': 'Возможности продукта и взаимодействие',\n 'category.resource-cost': 'Расход ресурсов и стоимость',\n 'category.security-privacy-permission': 'Безопасность, приватность и разрешения',\n 'category.service-stability': 'Стабильность сервиса',\n 'category.task-result': 'Результат задачи',\n 'dialog.categories': 'Категория отзыва',\n 'dialog.detail': 'Подробности отзыва',\n 'dialog.hint': 'Добавьте подробности, чтобы помочь нам стать лучше. В отправку войдёт журнал текущего диалога.',\n 'dialog.title': 'Отправить отзыв',\n 'error.noteTooLarge': 'Описание слишком длинное; сократите его и отправьте снова',\n 'toast.recorded': 'Спасибо за отзыв',\n },\n 'model': {\n 'command.description': 'Выбор модели для этого диалога',\n 'option.loadError': 'Не удалось загрузить каталог: {message}',\n 'trigger.fallback': 'Выбрать модель',\n 'trigger.loading': 'Загрузка моделей…',\n 'trigger.selectAria': 'Выбрать модель',\n 'trigger.aria': 'Выбрать модель, сейчас {model}',\n 'trigger.ariaEffort': 'Выбрать модель, сейчас {model}, уровень рассуждения {effort}',\n 'menu.aria': 'Модель и уровень рассуждения',\n 'menu.model': 'Модель',\n 'menu.effort': 'Уровень рассуждения',\n 'effort.providerDefault': 'По умолчанию',\n 'status.loading': 'Обновление списка моделей…',\n 'error.action': 'Не удалось выполнить операцию с моделью: {message}',\n 'action.reload': 'Перезагрузить',\n 'warning.groupLoad': 'Не удалось загрузить {name}: {message}',\n 'empty.models': 'Нет доступных моделей.',\n 'blocked.composer': 'Эта модель недоступна — выберите другую, чтобы продолжить',\n 'empty.efforts': 'У этой модели нет уровней рассуждения.',\n 'option.deepseekV4Flash.description': 'Быстрая, эффективная и экономная; подходит для сосредоточенных, рутинных или параллельных задач.',\n 'option.deepseekV4Pro.description': 'Усиленное агентное программирование, знания и сложные рассуждения; для комплексных или критичных к качеству задач с большей стоимостью.',\n },\n 'settings.permission': {\n 'title': 'Права доступа',\n 'description': 'Выберите режим прав по умолчанию для новых сессий',\n 'loading': 'Загрузка',\n 'unavailable': 'Недоступно',\n 'preset.readOnly': 'Только чтение',\n 'preset.workspaceWrite': 'Запись в рабочую папку',\n 'preset.fullAccess': 'Полный доступ',\n 'confirm.title': 'Включить «Полный доступ»?',\n 'confirm.description': '«Полный доступ» позволяет новым сессиям пропускать шаги подтверждения и выполнять больше действий напрямую, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете последующим задачам.',\n 'confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'confirm.cancel': 'Отмена',\n 'confirm.enable': 'Включить «Полный доступ»',\n },\n 'permission.access': {\n 'preset.readOnly': 'Только чтение',\n 'preset.workspaceWrite': 'Запись в рабочую папку',\n 'preset.fullAccess': 'Полный доступ',\n 'confirm.title': 'Включить «Полный доступ»?',\n 'confirm.description': '«Полный доступ» уменьшает число этапов подтверждения и позволяет агенту напрямую выполнять больше действий, включая чувствительные операции, изменение файлов или внешние команды. Используйте его, только если доверяете текущей задаче.',\n 'confirm.acknowledge': 'Я понимаю риски и хочу продолжить',\n 'confirm.cancel': 'Отмена',\n 'confirm.enable': 'Включить «Полный доступ»',\n },\n 'plan': {\n 'chip.label': 'План',\n 'chip.on.aria': 'Режим планирования включён, нажмите, чтобы выключить',\n 'chip.on.title': 'Режим планирования включён — нажмите, чтобы выключить (/plan off)',\n 'chip.off.aria': 'Режим планирования выключен, нажмите, чтобы включить',\n 'chip.off.title': 'Режим планирования выключен — нажмите, чтобы включить (/plan)',\n 'chip.exitFailed': 'Не удалось выйти из режима планирования',\n },\n 'reference': {\n 'section.files': 'Файлы и папки',\n 'section.sessions': 'Сессии',\n 'candidate.noCwd': '(нет рабочей папки)',\n 'crumb.root': 'Рабочая папка',\n 'time.now': 'сейчас',\n 'time.minutes': '{n} мин',\n 'time.hours': '{n} ч',\n 'time.days': '{n} д',\n 'time.months': '{n} мес',\n 'time.years': '{n} г',\n },\n 'schedule.catalog': {\n 'trigger.one': '{count} напоминание',\n 'trigger.other': '{count} напоминаний',\n 'list.aria': 'Активные напоминания',\n 'status.scheduled': 'Запланировано',\n 'status.overdue': 'Просрочено',\n 'frequency.once': 'Однократно',\n 'frequency.every': 'Каждые {value} {unit}',\n 'unit.day.one': 'день',\n 'unit.day.other': 'дней',\n 'unit.hour.one': 'час',\n 'unit.hour.other': 'часов',\n 'unit.minute.one': 'минута',\n 'unit.minute.other': 'минут',\n 'unit.second.one': 'секунда',\n 'unit.second.other': 'секунд',\n 'relative.now': 'Срок наступил',\n 'relative.future': 'через {value} {unit}',\n 'relative.overdue': 'Просрочено на {value} {unit}',\n },\n 'settings': {\n 'trigger': 'Настройки',\n 'title': 'Настройки',\n 'close': 'Закрыть',\n 'openDocument': 'Открыть файл конфигурации',\n 'openDocument.error': 'Не удалось открыть файл конфигурации',\n 'general.nav': 'Основные',\n 'connection.error': 'Отключено',\n 'connection.retry': 'Подключиться сейчас',\n 'connection.connecting': 'Переподключение',\n 'connection.connected': 'Подключено',\n 'connection.reconnect': 'Отключено, подключиться сейчас',\n 'connection.restart': 'Переподключение выполняется автоматически, переподключиться сейчас',\n },\n 'settings.models': {\n 'nav': 'Модели',\n 'title': 'Модели',\n 'intro': 'Введите API-ключи, чтобы использовать модели указанных провайдеров.',\n 'edit': 'Изменить',\n 'editProvider': 'Изменить {provider}',\n 'remove': 'Удалить',\n 'removeProvider': 'Удалить {provider}',\n 'deleteTitle': 'Удалить {provider}?',\n 'deleteDescription': 'Удаление {provider} уберёт его конфигурацию. Используемые им учётные данные управляются отдельно и будут сохранены.',\n 'deleteDescriptionWithCredential': 'Удаление {provider} уберёт его конфигурацию и сохранённый API-ключ.',\n 'deleteConfirm': 'Удалить {provider}',\n 'deleting': 'Удаление {provider}…',\n 'add': 'Добавить провайдера',\n 'provider': 'Провайдер',\n 'close': 'Закрыть',\n 'cancel': 'Отмена',\n 'apply': 'Применить',\n 'applying': 'Применение…',\n 'savedProvider': 'Сохранено: {provider}.',\n 'credentialConfigured': 'API-ключ настроен',\n 'credentialMissing': 'API-ключ отсутствует',\n 'readOnly': 'Документ настроек в этой сборке доступен только для чтения.',\n 'loadFailed': 'Не удалось загрузить каталог провайдеров',\n 'conflict': 'Пока эта карточка была открыта, настройки изменились в другом месте. Закройте её и откройте заново, чтобы редактировать актуальные значения.',\n 'retry': 'Повторить',\n 'keyInput': 'API-ключ',\n 'keyPlaceholder': 'Введите API-ключ',\n 'keyPlaceholderNative': 'Введите API-ключ или оставьте поле пустым, чтобы использовать аутентификацию из окружения',\n 'keyStored': 'Настроен — введите новое значение, чтобы заменить',\n 'keyEnvLocked': 'Предоставлен окружением запуска (только для чтения)',\n 'customized': 'Изменённые настройки',\n 'baseUrl': 'Базовый URL',\n 'baseUrlDefault': 'По умолчанию у провайдера',\n 'models': 'Модели',\n 'modelsInherited': 'Используются настройки адаптера по умолчанию',\n 'modelsCustomized': 'Изменённый каталог моделей',\n 'resetModels': 'Восстановить значения по умолчанию',\n 'model': 'Модель',\n 'modelId': 'ID модели',\n 'modelName': 'Отображаемое имя',\n 'modelNamePlaceholder': 'Если пусто — используется ID модели',\n 'contextWindow': 'Контекстное окно',\n 'contextWindowPlaceholder': 'Используется значение по умолчанию провайдера',\n 'maxTokens': 'Максимум выходных токенов',\n 'maxTokensPlaceholder': 'Используется значение по умолчанию провайдера',\n 'modelAdvanced': 'Возможности',\n 'addModel': 'Добавить модель',\n 'removeModel': 'Удалить модель',\n 'modelsEmpty': 'В селекторе не будет показано ни одной модели. ID вне списка можно отправлять напрямую.',\n 'keyBlank': 'Введите API-ключ или оставьте поле пустым, чтобы сохранить имеющийся.',\n 'keyBlankNew': 'Введите API-ключ или оставьте поле пустым, если провайдер использует другой способ аутентификации.',\n 'keyIllegalCharacters': 'Формат этого API-ключа недействителен. Проверьте его.',\n 'modelIdRequired': 'ID модели обязателен.',\n 'modelIdDuplicate': 'ID модели должен быть уникальным.',\n 'modelNameInvalid': 'Отображаемое имя не может быть пустым.',\n 'modelContextInvalid': 'Контекстное окно должно быть положительным числом, например 131072, 256K или 1M.',\n 'modelMaxTokensInvalid': 'Максимум выходных токенов должен быть положительным числом, например 8192, 64K или 1M.',\n 'advancedHint': 'Остальные поля находятся в settings.yaml; редактируйте соответствующий раздел напрямую.',\n 'modelCapacityInvalid': 'Возможность должна быть числом, при желании с суффиксом K или M.',\n 'modelDuplicate': 'Каждый ID модели может встречаться только один раз.',\n 'modelContextWindow': 'Контекстное окно',\n 'modelMaxTokens': 'Максимум выходных токенов',\n 'fetchModels': 'Получить доступные модели',\n 'fetching': 'Запрос к провайдеру…',\n 'fetchNeedsBaseUrl': 'Сначала введите базовый URL, затем получайте модели.',\n 'fetchEmpty': 'Провайдер не указал модели. Добавьте их вручную.',\n 'fetchTitle': 'Выберите модели для добавления',\n 'fetchDescription': 'Это модели, доступные у провайдера. Выберите те, что нужно добавить.',\n 'fetchSelectAll': 'Выбрать все',\n 'fetchDeselectAll': 'Снять выбор',\n 'fetchAdopt': 'Добавить выбранные',\n 'customAdd': 'Добавить своего провайдера',\n 'customTitle': 'Свой провайдер',\n 'customTag': 'Свой',\n 'customRoute': 'ID провайдера',\n 'customRouteHint': 'Идентификатор в нижнем регистре, начинающийся с буквы; уникально именует провайдера в запросах и как имя учётных данных.',\n 'customRouteInvalid': 'Начинайте с буквы в нижнем регистре; далее — буквы в нижнем регистре, цифры и дефисы.',\n 'customRouteTaken': 'Этот ID уже использует другой провайдер.',\n 'customDisplayName': 'Отображаемое имя',\n 'customApi': 'Протокол API',\n 'customApiUnset': 'Не выбран',\n 'customNeedsBaseUrl': 'Своему провайдеру нужен базовый URL.',\n 'customNeedsModels': 'Своему провайдеру нужна хотя бы одна модель.',\n 'create': 'Создать провайдера',\n 'creating': 'Создание…',\n 'welcomeTitle': 'Уведомление о внутреннем тестировании',\n 'welcomeBody': 'DeepSeek Harness 0.1 находится в стадии тестирования среди разработчиков Harness. Многие области ещё требуют доработки, и мы будем рады отзывам от сообщества разработчиков. Основные плагины и базовые API DeepSeek Harness будут активно развиваться в ближайшие месяцы.\\n\\nМы рассчитываем вместе с разработчиками по всему миру исследовать пределы возможностей интеллекта, опираясь на открытую, свободно используемую и компонуемую инфраструктуру. Приглашаем разработчиков Harness присоединиться к экосистеме плагинов DSH.',\n 'welcomeContinue': 'Продолжить',\n 'welcomeError': 'Не удалось сохранить подтверждение. Попробуйте ещё раз.',\n 'onboardingTitle': 'Добавьте API-ключ, чтобы начать',\n 'onboardingDescription': 'Настройте официального провайдера DeepSeek, чтобы начать работу.',\n 'onboardingLater': 'Настроить позже',\n 'onboardingSave': 'Сохранить и продолжить',\n 'onboardingSaving': 'Сохранение…',\n 'keyRequired': 'Введите API-ключ, чтобы продолжить.',\n 'fetchSearch': 'Поиск моделей',\n 'fetchNoMatches': 'Нет подходящих моделей.',\n 'customBaseUrlPlaceholder': 'https://gateway.example/v1',\n 'settingsPathUnresolvable': 'не удалось разрешить путь настроек',\n },\n 'settings.pluginInventory': {\n 'tab': 'Список плагинов',\n 'loading': 'Чтение плагинов…',\n 'error': 'Плагины временно недоступны.',\n 'retry': 'Повторить',\n 'search': 'Поиск плагинов',\n 'empty': 'Нет доступных плагинов.',\n 'emptySearch': 'Нет подходящих плагинов.',\n 'enabledTag': 'Включён',\n 'disabledTag': 'Отключён',\n 'configuration': 'Конфигурация',\n 'unobserved': 'Не подключён',\n 'pending': 'Ожидание зависимостей',\n 'loadingPhase': 'Загрузка',\n 'active': 'Подключён',\n 'failed': 'Ошибка подключения',\n 'unloading': 'Отключение',\n 'presetTitle': 'Плагины сессии',\n 'presetSubtitle': 'Собираются для каждой сессии пресетами агента',\n 'countUnit': 'плагины',\n 'switcherLabel': 'Выберите пресет агента для просмотра',\n 'presetOptionDefault': '{name} (по умолчанию)',\n 'presetOptionBroken': '{name} (не удалось загрузить)',\n 'globalTitle': 'Глобальные плагины',\n 'globalSubtitle': 'Общие для системы и всех сессий',\n 'presetProvidedDetail': 'Глобально отключён; пресеты агента включают его на уровне сессии',\n 'enabledIn': 'Включён в',\n 'viewInPreset': 'Открыть в группе пресета',\n 'matchesInOtherPresets': 'Ещё совпадений в других пресетах: {count} ',\n 'failedCountLabel': 'ошибок',\n 'conditionalTag': 'Условно',\n 'presetEnabledTag': 'Включён через пресеты',\n 'failedTag': 'Сбой',\n 'moduleLabel': 'Модуль',\n 'fromPreset': 'Из',\n 'condition': 'Отключается, когда',\n 'runtime': 'Состояние',\n },\n 'settings.plugins': {\n 'nav': 'Плагины',\n 'title': 'Плагины',\n 'intro': 'Настройка и просмотр плагинов, установленных в этой сборке.',\n 'tabs': 'Виды плагинов',\n 'configurableTab': 'Конфигурация плагинов',\n 'empty': 'Эта сборка не открывает настроек плагинов.',\n 'overridden': 'Переопределено',\n 'reset': 'Сбросить к значению по умолчанию',\n 'readOnly': 'В этой сборке настройки хранятся только для чтения.',\n 'expand': 'Показать настройки',\n 'collapse': 'Скрыть настройки',\n 'save': 'Сохранить',\n 'saving': 'Сохранение…',\n 'discard': 'Отменить изменения',\n 'unsaved': 'Не сохранено',\n 'saveFailed': 'Сборка не приняла эти значения; они оставлены для исправления.',\n 'invalidNumber': 'Введите число или оставьте поле пустым, чтобы использовать значение по умолчанию.',\n 'bashTitle': 'Терминал',\n 'bashDescription': 'Ограничения для каждой команды, которую выполняет агент.',\n 'bashTimeoutMs': 'Тайм-аут команды (мс)',\n 'bashTimeoutMsHint': 'Сколько может выполняться одна команда, прежде чем будет завершена.',\n 'bashMaxOutputBytes': 'Лимит вывода на поток (байт)',\n 'bashMaxOutputBytesHint': 'Вывод сверх лимита сохраняется во временный файл, а не теряется.',\n 'agentLoopTitle': 'Цикл агента',\n 'agentLoopDescription': 'Как агент распределяет вызовы инструментов.',\n 'agentLoopMaxParallel': 'Параллельные вызовы инструментов',\n 'agentLoopMaxParallelHint': 'Верхний предел параллельных вызовов в пределах одного шага.',\n 'webSearchTitle': 'Веб-поиск',\n 'webSearchDescription': 'Поисковый провайдер DeepSeek.',\n 'webSearchApiKey': 'API-ключ',\n 'webSearchApiKeyHint': 'Хранится вне файла настроек. Оставьте пустым, чтобы сохранить текущий ключ.',\n 'webSearchApiKeySet': 'Ключ настроен.',\n 'webSearchApiKeyUnset': 'Ключ не настроен; поиск недоступен, пока он не будет добавлен.',\n 'webSearchBaseUrl': 'Эндпоинт',\n 'webSearchBaseUrlHint': 'Оставьте пустым, чтобы использовать адрес провайдера по умолчанию.',\n 'webSearchMaxUses': 'Максимум поисков за запрос',\n 'webSearchMaxUsesHint': 'Сколько раз один запрос может искать, прежде чем должен дать ответ.',\n 'subagentModelSelectionTitle': 'Субагенты',\n 'subagentModelSelectionDescription': 'Укажите, какие модели агенты могут выбирать для субагентов.',\n 'subagentModelSelectionToggle': 'Разрешить агентам выбирать модели для субагентов',\n 'subagentModelSelectionChoose': 'При включении агенты могут выбирать провайдера, модель и уровень рассуждения для каждого субагента из авторизованных моделей ниже. Применяется только к новым сессиям.',\n 'subagentModelSelectionAllowed': 'Модели, доступные агентам для выбора',\n 'subagentModelSelectionLoading': 'Загрузка моделей…',\n 'subagentModelSelectionLoadFailed': 'Не удалось загрузить модели.',\n 'subagentModelSelectionRetry': 'Повторить',\n 'subagentModelSelectionPartial': 'Некоторые провайдеры моделей не загрузились; сохранённые выборки по-прежнему можно удалить.',\n 'subagentModelSelectionUnavailable': 'Сейчас недоступно',\n 'subagentModelSelectionUnavailableGroup': 'Сохранено, но сейчас недоступно',\n 'subagentModelSelectionEmpty': 'Ни один провайдер моделей сейчас не предлагает моделей.',\n 'subagentModelSelectionRequired': 'Перед сохранением выберите хотя бы одну модель.',\n 'subagentModelSelectionConflict': 'Настройки изменены в другом месте. Отмените черновик и повторите.',\n 'subagentModelSelectionOff': 'Субагенты используют настроенные значения по умолчанию или наследуют модель родительского агента. Сохранённые выборки моделей остаются.',\n },\n 'sidebar': {\n 'session.new': 'Новая сессия',\n 'session.new.label': 'Новая сессия',\n 'toggle.open': 'Открыть боковую панель',\n 'toggle.collapse': 'Свернуть боковую панель',\n 'panels.label': 'Глобальные панели',\n },\n 'skill': {\n 'row.title': 'Навык',\n 'row.running': 'Загрузка навыка',\n 'row.failed': 'Не удалось загрузить навык',\n 'row.stopped': 'Загрузка навыка прервана',\n 'row.instructions': 'Инструкции',\n 'row.inspect': 'Просмотр',\n 'menu.userOnly': 'только пользователь',\n },\n 'subagent': {\n 'diagnostic.corrupt': 'повреждённая запись сессии',\n 'diagnostic.unsupported': 'неподдерживаемая версия записи субагента',\n 'diagnostic.unavailable': 'запись сессии временно недоступна',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'duration.hours': '{hours} ч {minutes} мин {seconds} с',\n 'duration.days': '{days} д',\n 'duration.daysHours': '{days} д {hours} ч',\n 'duration.months': '~{months} мес',\n 'duration.monthsDays': '~{months} мес {days} д',\n 'duration.years': '~{years} г',\n 'duration.yearsMonths': '~{years} г {months} мес',\n 'duration.exactDays': '{days} д {hours} ч {minutes} мин {seconds} с',\n 'duration.exactTitle': 'Общее время активности: {duration}',\n 'loading.label': 'Загрузка субагентов…',\n 'loading.aria': 'Загрузка субагентов',\n 'load.error': 'Не удалось загрузить субагентов',\n 'retry': 'Повторить',\n 'mode.oneShot': 'одноразовый',\n 'mode.continuable': 'можно продолжить',\n 'activity.running': 'выполняется',\n 'activity.inactive': 'не выполняется',\n 'branch.collapse': 'Свернуть потомков {label}',\n 'branch.expand': 'Развернуть потомков {label}',\n 'count.total.one': '{count} субагент',\n 'count.total.other': '{count} субагентов',\n 'count.running.one': '{count} субагент выполняется',\n 'count.running.other': '{count} субагентов выполняется',\n 'switcher.aria': 'Переключить субагента: {title}',\n 'tree.aria': 'Сессии субагентов',\n 'readonly.oneShot.title': 'Запись одноразового субагента',\n 'readonly.title': 'Этот субагент пока доступен только для чтения',\n 'readonly.oneShot.body': 'Одноразовые задачи не принимают продолжений; здесь можно посмотреть полную запись выполнения.',\n 'readonly.body': 'Родительская сессия сейчас не в сети; откройте её заново, чтобы продолжить отправку сообщений.',\n 'tokens.thousand': '{value} тыс.',\n 'tokens.million': '{value} млн',\n 'tokens.total': '{value} ток',\n },\n 'settings.theme': {\n 'appearance.title': 'Оформление',\n 'appearance.light': 'Светлая',\n 'appearance.dark': 'Тёмная',\n 'appearance.system': 'Как в системе',\n 'fontSize.title': 'Размер шрифта',\n 'fontSize.description': 'Влияет только на содержимое беседы',\n 'fontSize.unit': 'px',\n 'fontSize.increase': 'Увеличить размер шрифта',\n 'fontSize.decrease': 'Уменьшить размер шрифта',\n },\n 'trajectory': {\n 'view.trajectory': 'Траектория',\n 'toolbar.aria': 'Панель траектории',\n 'toolbar.duration': 'Длительность',\n 'toolbar.useActualDuration': 'Фактическая длительность',\n 'toolbar.useEqualWidth': 'Равная ширина операций',\n 'toolbar.actualTime': 'Фактическое время',\n 'toolbar.turns': 'Раунды',\n 'toolbar.expandTurns': 'Развернуть раунды',\n 'toolbar.collapseTurns': 'Свернуть раунды',\n 'toolbar.calls': 'Вызовы',\n 'toolbar.expandCalls': 'Развернуть вызовы',\n 'toolbar.collapseCalls': 'Свернуть вызовы',\n 'toolbar.search': 'Поиск по траектории',\n 'toolbar.searchPlaceholder': 'Поиск',\n 'column.input': 'Ввод',\n 'column.model': 'Модель',\n 'column.tools': 'Инструменты',\n 'status.pending': 'Ожидает',\n 'timing.notAvailable': 'Недоступно',\n 'timing.notRecorded': 'Не записано',\n 'timing.stepStartUnavailable': 'Недоступно время начала шага',\n 'timing.firstTokenUnavailable': 'Недоступно время первого токена',\n 'timing.usageUnavailable': 'Данные об использовании недоступны',\n 'timing.outputTokensUnavailable': 'Недоступно число выходных токенов',\n 'timing.durationTooShort': 'Длительность слишком мала',\n 'timing.started': 'Начало',\n 'timing.totalDuration': 'Общая длительность',\n 'timing.ttft': 'TTFT',\n 'timing.generation': 'Генерация',\n 'timing.throughput': 'Пропускная способность',\n 'timing.duration': 'Длительность',\n 'timing.source': 'Источник времени',\n 'timing.sessionTimestamps': 'Метки времени сессии',\n 'timing.sessionTimestampsRunning': 'Метки времени сессии (выполняется)',\n 'usage.input': 'Ввод',\n 'tab.tools': 'Инструменты',\n 'record.noContent': 'Нет содержимого',\n 'record.noPayload': 'Ввод не зафиксирован',\n 'record.noResult': 'Результат не зафиксирован',\n 'record.resultJson': 'Результат JSON',\n 'record.outputJson': 'Результат JSON',\n 'record.thinking': 'Рассуждение',\n 'record.tools': 'Инструменты',\n 'block.openSummaryTitle': 'Открыть сводку вызова',\n 'history.loadingEarlier': 'Загрузка более ранней истории…',\n 'history.loadingEarlierAria': 'Загрузка более ранней истории…',\n 'history.loadEarlier': 'Загрузить более раннюю историю',\n 'history.clickToLoadEarlier': 'Нажмите, чтобы загрузить более раннюю историю',\n 'details.event': 'Детали события',\n 'details.resize': 'Изменить размер панели деталей',\n 'details.resizeTitle': 'Перетащите, чтобы изменить размер. Двойной клик — сброс.',\n 'details.close': 'Закрыть детали',\n 'details.model': 'Модель',\n 'timeline.aria': 'Таймлайн траектории',\n 'timeline.overviewAria': 'Обзор таймлайна; перетаскивайте по горизонтали, чтобы фокусироваться на событиях',\n 'timeline.noTimingData': 'Нет данных о времени',\n 'timeline.total': 'Всего: {duration}',\n 'timeline.started': 'Начало: {time}',\n 'layout.toolCallOnly': 'Только вызов инструмента',\n 'kind.system': 'SYSTEM',\n 'kind.user': 'USER',\n 'kind.context': 'CONTEXT',\n 'kind.compacted': 'COMPACTED',\n 'kind.message': 'Сообщение',\n 'kind.assistant': 'ASSISTANT',\n 'kind.tool': 'TOOL',\n 'kind.subtool': 'SUBTOOL',\n 'kind.sub': 'Sub',\n 'column.output': 'Вывод',\n 'column.think': 'Размышление',\n 'column.time': 'Время',\n 'turn.label': 'Ход {turn}',\n 'section.betweenTurns': 'Между ходами',\n 'group.message': 'Сообщение',\n 'group.step': 'Шаг {step}',\n 'group.compaction': 'Сжатие {seq}',\n 'status.failed': 'Ошибка',\n 'status.completed': 'Завершено',\n 'timing.showLocalTime': 'Показать локальное время',\n 'timing.showUnixTimestamp': 'Показать Unix-метку времени',\n 'timing.request': 'Время запроса',\n 'unit.milliseconds': '{value} мс',\n 'unit.seconds': '{value} с',\n 'unit.tokens': '{value} ток',\n 'unit.tokensPerSecond': '{value} ток/с',\n 'usage.tokens': 'Токены',\n 'usage.reasoning': 'Размышление',\n 'usage.content': 'Содержимое',\n 'usage.notReported': 'Данные об использовании не сообщаются',\n 'usage.cached': 'Из кэша',\n 'usage.cacheCreated': 'Запись в кэш',\n 'usage.other': 'Прочее',\n 'usage.output': 'Выход',\n 'usage.thisRequest': 'Этот запрос',\n 'usage.sessionCumulative': 'Суммарно по сессии',\n 'options.notRecorded': 'Параметры не записаны',\n 'options.json': 'JSON параметров запроса',\n 'source.unknown': 'Неизвестно',\n 'source.user': 'Пользователь',\n 'source.plugin': 'Плагин',\n 'source.pluginNamed': 'Плагин · {plugin}',\n 'source.goal': 'Цель',\n 'source.goalRound': 'Цель · Раунд {round}',\n 'source.notRecorded': 'Источник не записан',\n 'source.messageJson': 'JSON источника сообщения',\n 'tab.summary': 'Сводка',\n 'tab.rawOutput': 'Исходный вывод',\n 'tab.preview': 'Предпросмотр',\n 'tab.raw': 'Исходный текст',\n 'tab.source': 'Источник',\n 'tab.payload': 'Запрос',\n 'tab.result': 'Результат',\n 'tab.schema': 'Схема',\n 'tab.timing': 'Время',\n 'tab.diff': 'Дифф',\n 'tab.systemPrompt': 'Системный промпт',\n 'tab.options': 'Параметры',\n 'tab.usage': 'Использование',\n 'record.toolCallOnly': '(только вызов инструмента)',\n 'record.noOutput': 'Нет вывода',\n 'record.schemaUnavailable': 'Схема недоступна',\n 'record.parameters': 'Параметры',\n 'record.json': 'JSON',\n 'record.parametersJson': 'JSON параметров',\n 'record.namedParametersJson': 'JSON параметров {name}',\n 'record.payloadJson': 'JSON запроса',\n 'record.systemPromptMissing': 'В этом запросе нет системного промпта',\n 'record.toolsMissing': 'В этом запросе нет инструментов',\n 'record.systemPrompt': 'Системный промпт',\n 'block.openSummary': 'Открыть сводку вызова инструментов для блока #{index}',\n 'block.label': 'Блок #{index} {type}',\n 'history.loadingTrajectory': 'Загрузка траектории…',\n 'request.label': 'Запрос #{request}',\n 'request.labelCompaction': 'Запрос #{request} · Сжатие',\n 'request.compaction': 'Сжатие · {section}',\n 'request.compactionPurpose': 'Сжатие',\n 'request.retryProgress': '{retry} из {maximum}',\n 'request.collapsedSummary': 'Свёрнутая сводка {kind}, {summary}',\n 'request.collapsedTurn': 'хода',\n 'request.collapsedAssistant': 'ассистента',\n 'request.rowAria': '{request}{kind}, {content}',\n 'request.rowPrefix': 'Запрос {request}, ',\n 'request.rowAriaCompaction': 'Запрос {request}, сжатие',\n 'request.noContent': 'нет содержимого',\n 'summary.toolCalls.one': '{count} вызов инструмента',\n 'summary.toolCalls.other': '{count} вызовов инструментов',\n 'summary.steps.one': '{count} шаг',\n 'summary.steps.other': '{count} шагов',\n 'details.status': 'Состояние',\n 'details.purpose': 'Назначение',\n 'details.provider': 'Провайдер',\n 'details.toolCalls': 'Вызовы инструментов',\n 'details.subtoolCalls': 'Вложенные вызовы',\n 'details.error': 'Ошибка',\n 'details.failure.auth': 'Недействительный API-ключ',\n 'details.retry': 'Повтор',\n 'details.scheduled': 'Запланирован',\n 'details.retryDelay': 'Задержка повтора',\n 'details.result': 'Результат',\n 'details.compacted': 'Сжато',\n 'details.assistantMessage': 'Сообщение ассистента',\n 'details.source': 'Источник',\n 'details.hierarchy': 'Иерархия',\n 'details.toolCall': 'Вызов инструмента',\n 'timeline.ttftDecoding': 'TTFT {ttft} · Декодирование {decoding}',\n 'layout.compacting': 'Сжатие контекста…',\n 'layout.compactionFailed': 'Сжатие не удалось',\n 'layout.compacted': 'Контекст сжат',\n 'layout.imageOnly': 'Изображения ×{count}',\n 'layout.fileAttachments': 'Файлы ×{count}',\n 'layout.initialSystemPrompt': 'Начальный системный промпт',\n 'layout.systemPromptUpdated': 'Системный промпт обновлён',\n 'layout.toolsUpdated': 'Инструменты обновлены',\n 'layout.systemPromptAndToolsUpdated': 'Системный промпт и инструменты обновлены',\n 'layout.compactionInterrupted': 'Сжатие было прервано до завершения.',\n },\n 'question': {\n 'error.incomplete': 'Сначала завершите этот вопрос.',\n 'error.unanswered': 'Выберите вариант или введите свой ответ.',\n 'nav.prev': 'Предыдущий вопрос',\n 'nav.next': 'Следующий вопрос',\n 'nav.minimize': 'Свернуть карточку вопроса',\n 'nav.maximize': 'Развернуть карточку вопроса',\n 'nav.cancel': 'Отменить все вопросы',\n 'option.recommended': 'Рекомендуется',\n 'custom.placeholder': 'Введите ваш ответ',\n 'action.skip': 'Пропустить вопрос',\n 'action.next': 'Далее',\n 'plan.header': 'План на рассмотрении',\n 'plan.approve': 'Утвердить',\n 'plan.decline': 'Отклонить',\n 'plan.discuss': 'Обсудить в чате',\n },\n 'workflowRun': {\n 'run.title': '{name}',\n 'run.members.one': '{count} участник',\n 'run.members.other': '{count} участников',\n 'run.empty': 'Участники не запущены',\n 'phase.unassigned': 'Без фазы',\n 'phase.empty': 'Пустое имя фазы',\n 'statusCount.running': 'Выполняется: {count}',\n 'statusCount.completed': 'Завершено: {count}',\n 'statusCount.failed': 'Ошибка: {count}',\n 'statusCount.cancelled': 'Отменено: {count}',\n 'statusCount.interrupted': 'Прервано: {count}',\n 'member.empty': 'Пустое имя участника',\n 'member.open': 'Открыть {name}',\n 'status.running': 'Выполняется',\n 'status.completed': 'Завершено',\n 'status.failed': 'Ошибка',\n 'status.cancelled': 'Отменено',\n 'status.interrupted': 'Прервано',\n },\n 'workspace': {\n 'group.ungrouped': 'Без группы',\n 'session.new': 'Новая сессия',\n 'section.workspaces': 'Рабочие пространства',\n 'section.sessions': 'Сессии',\n 'viewOptions.label': 'Параметры вида',\n 'groupBy.label': 'Группировка',\n 'groupBy.workspace': 'По рабочим пространствам',\n 'groupBy.flat': 'Единым списком',\n 'orderBy.label': 'Сортировка',\n 'orderBy.manual': 'Вручную',\n 'orderBy.updated': 'По обновлению',\n 'sessions.expand': 'Показать ещё {n}',\n 'sessions.collapse': 'Свернуть',\n 'empty.none': 'Пока нет сессий',\n 'empty.noMatches': 'Ничего не найдено',\n 'workspace.add': 'Добавить рабочее пространство',\n 'search.sessions.aria': 'Поиск сессий',\n 'search.placeholder': 'Поиск сессий…',\n 'search.clear': 'Очистить поиск',\n 'search.results.aria': 'Результаты поиска',\n 'search.pending': 'Поиск по истории сессий…',\n 'search.unavailable': 'Контентный поиск временно недоступен. Показываем совпадения по имени.',\n 'search.noMatches': 'Нет подходящих сессий',\n 'search.hasMore': 'Показаны первые {n}. Сузьте поиск.',\n 'menu.addWorkspace': 'Добавить рабочее пространство…',\n 'picker.loading': 'Загрузка рабочих пространств…',\n 'conflict.named': 'Рабочее пространство с именем «{name}» уже существует.',\n 'folderError.title': 'Не удалось открыть папку',\n 'folderError.retry': 'Выбрать снова',\n 'rename': 'Переименовать',\n 'rename.workspace.title': 'Переименовать рабочее пространство',\n 'rename.session.title': 'Переименовать сессию',\n 'field.workspaceName': 'Имя рабочего пространства',\n 'field.sessionName': 'Имя сессии',\n 'delete.workspace': 'Удалить рабочее пространство',\n 'delete.desc': 'Это удалит «{name}» из списка рабочих пространств. Папка и журналы сессий сохранятся; их сессии появятся в разделе «Без группы».',\n 'delete.pending': 'Удаление рабочего пространства…',\n 'menu.fork': 'Создать ответвление сессии',\n 'menu.archiveSession': 'Архивировать сессию',\n 'sessions.count.one': '{n} сессия',\n 'sessions.count.other': '{n} сессий',\n 'actions.workspace.aria': 'Действия рабочего пространства {name}',\n 'actions.session.aria': 'Действия сессии {name}',\n 'actions.newSession.aria': 'Новая сессия в {name}',\n 'status.running': 'Выполняется',\n 'status.subagentsRunning.one': '{n} субагент выполняется',\n 'status.subagentsRunning.other': '{n} субагентов выполняется',\n 'status.idle': 'Ожидает',\n 'status.waitingApproval': 'Ожидает одобрения',\n 'status.planReview': 'План на рассмотрении',\n 'status.waitingAnswer': 'Ожидает ответа',\n 'status.completed': 'Завершено',\n 'schedule.active': 'Есть активная запланированная задача',\n 'hover.created': 'Создано {time}',\n 'hover.copied': 'Скопировано',\n 'date.ymd': '{d}.{m}.{y}',\n 'time.now': 'только что',\n 'time.minutes': '{n} мин',\n 'time.hours': '{n} ч',\n 'time.days': '{n} д',\n 'time.months': '{n} мес',\n 'time.years': '{n} г',\n 'time.ago': '{t} назад',\n },\n 'agent-team': {\n 'memberStatus.running': 'Выполняется',\n 'memberStatus.idle': 'Простой',\n 'memberStatus.inactive': 'Неактивен',\n 'memberStatus.provisioning': 'Подготовка',\n 'memberStatus.failed': 'Ошибка',\n 'status.pending': 'Ожидание',\n 'status.in_progress': 'В процессе',\n 'status.completed': 'Завершено',\n 'trigger': 'Команда агентов',\n 'refresh': 'Обновить команду',\n 'close': 'Закрыть',\n 'loading': 'Загрузка команды…',\n 'empty': 'Общих задач пока нет',\n 'roster': 'Участники',\n 'tasks': 'Общие задачи',\n 'model': 'Модель',\n 'open': 'Открыть диалог с участником',\n 'create': 'Новая задача',\n 'subject': 'Тема задачи',\n 'description': 'Описание задачи',\n 'blockers': 'ID блокирующих задач (через запятую)',\n 'scopes': 'Области записи (через запятую)',\n 'save': 'Сохранить',\n 'cancel': 'Отмена',\n 'edit': 'Изменить',\n 'complete': 'Завершить',\n 'reopen': 'Открыть заново',\n 'delete': 'Удалить',\n 'owner': 'Исполнитель',\n 'unowned': 'Без исполнителя',\n 'blockedBy': 'Блокируется',\n 'writeScopes': 'Области записи',\n 'ready': 'Готово к работе',\n 'blocked': 'Заблокировано зависимостями',\n 'conflict': 'Состояние задачи изменилось, она перезагружена. Проверьте её перед повтором.',\n },\n 'cordis': {\n 'row.defineTitle': 'Зарегистрировать плагин Cordis',\n 'row.runTitle': 'Запустить плагин Cordis',\n 'row.updateTitle': 'Обновить плагин Cordis',\n 'row.stopTitle': 'Остановить плагин Cordis',\n 'row.removeTitle': 'Удалить плагин Cordis',\n 'purpose.missing': '(цель не указана)',\n 'status.idle': 'Готов',\n 'status.awaitingApproval': 'Ожидает одобрения',\n 'status.failed': 'Ошибка запуска',\n 'status.clientPending': 'Client готов к активации',\n 'status.running': 'Выполняется',\n 'status.removed': 'Удалён',\n 'status.superseded': 'Доступен более новый запуск',\n 'run.removed': 'Этого пакета больше не существует',\n 'run.superseded': 'Ниже доступна более новая карточка запуска',\n 'panel.hint': 'Управление запуском находится на панели Cordis над настройками',\n 'panel.plugins.aria': 'Плагины Cordis',\n 'panel.approvals.aria': 'Одобрения Cordis',\n 'panel.trigger': 'Плагин Cordis',\n 'panel.runningCount': '{count} в работе',\n 'panel.title': 'Плагины Cordis',\n 'panel.empty': 'Плагины ещё не определены',\n 'panel.loading': 'Чтение…',\n 'panel.readFailed': 'Не удалось прочитать список плагинов: {message}',\n 'panel.group.current': 'Эта сессия',\n 'panel.group.others': 'Другие сессии',\n 'panel.version': 'Версия',\n 'panel.current': 'Текущая: {packageId}',\n 'panel.next': 'Следующая: {packageId}',\n 'action.approve': 'Разрешить',\n 'action.approveOnce': 'Разрешить только эту версию',\n 'action.approvePlugin': 'Разрешить будущие версии этого плагина',\n 'action.decline': 'Отклонить',\n 'action.run': 'Запустить',\n 'action.stop': 'Остановить',\n 'action.remove': 'Удалить',\n 'action.retry': 'Повторить',\n 'action.rollback': 'Откатить',\n 'action.inspect': 'Просмотр',\n 'render.failedAbdicated': 'Сбой рендеринга в {slot}; восстановлен интерфейс по умолчанию:',\n 'render.failedHeld': 'Сбой рендеринга в {slot}:',\n 'a11y.defining': 'Идёт определение плагина',\n 'a11y.failed': 'Определение не удалось',\n 'a11y.stopped': 'Определение прервано',\n 'body.source': 'Исходный код плагина',\n 'body.hostCode': 'Хост',\n 'body.clientCode': 'Клиент',\n 'body.output': 'Результат',\n 'body.copy': 'Копировать',\n 'body.copied': 'Скопировано',\n },\n 'session-log-download': {\n 'header.action': 'Журнал сессии',\n 'dialog.preparingTitle': 'Экспорт сессии',\n 'dialog.preparingDescription': 'Готовится ZIP-архив с этой сессией, её подсессиями и вложениями.',\n 'dialog.successTitle': 'Загрузка сессии началась',\n 'dialog.successDescription': 'Браузер загружает ZIP-архив сессии.',\n 'dialog.errorTitle': 'Не удалось экспортировать сессию',\n 'dialog.close': 'Закрыть',\n 'dialog.commandFailed': 'Не удалось запустить экспорт сессии.',\n },\n 'chat': {\n 'view.chat': 'Чат',\n 'number.groupSeparator': ' ',\n 'duration.compactSeconds': '{seconds} с',\n 'duration.compactMinutes': '{minutes} мин {seconds} с',\n 'duration.milliseconds': '{milliseconds} мс',\n 'stats.counts': '{turns} ходов, {steps} шагов',\n 'stats.cacheHit': 'Попадание в кэш {percent}%',\n 'chat.loadingHistory': 'Загрузка истории…',\n 'chat.loadError': 'Не удалось загрузить историю: {message} ({code})',\n 'chat.loadOlder': 'Загрузить ранее',\n 'chat.toBottom': 'Вниз',\n 'chat.deepDiving': 'Глубокое исследование…',\n 'chat.turnNavigation.label': 'Навигация по ходам',\n 'chat.turnNavigation.jump': 'Перейти к ходу {turn}',\n 'chat.turnNavigation.jumpLoad': 'Загрузить и перейти к ходу {turn}',\n 'chat.turnNavigation.turn': 'Ход {turn}',\n 'settings.transcript.title': 'Отображение диалога',\n 'settings.transcript.description': 'Управляет содержимым процесса в завершённых ходах',\n 'settings.transcript.normal': 'Обычный',\n 'settings.transcript.compact': 'Компактный',\n 'fileOpen.title': 'Не удалось открыть файл',\n 'fileOpen.unknown': 'Не удалось открыть этот файл',\n 'message.extraBlock': 'Дополнительный блок содержимого',\n 'message.systemPrompt': 'Системный промпт',\n 'message.contextInjection': 'Инъекция контекста',\n 'message.contextRecall': 'Межсессонный поиск',\n 'message.referenceSummary': 'Ссылка на сессию · {labels}',\n 'message.referenceSeparator': ', ',\n 'message.context.instructions.loaded': 'загружено',\n 'message.context.instructions.added': 'добавлено',\n 'message.context.instructions.updated': 'обновлено',\n 'message.context.instructions.removed': 'удалено',\n 'message.context.catalog.replaced': 'Заменённый каталог',\n 'message.context.catalog.more': '… ещё {count}',\n 'message.context.snapshot.supersedes': 'Заменяет предыдущие снимки',\n 'message.context.relay.from': 'Из сессии {session}',\n 'message.context.recall.counts': 'Сохранено {retained} · Пропущено {omitted}',\n 'message.context.recall.truncated': 'обрезано',\n 'message.compaction': 'Контекст сжат',\n 'message.compaction.running': 'Сжатие контекста…',\n 'message.compaction.completed': 'Сжато {items} записей истории (~{tokens} токенов)',\n 'message.compaction.expand': 'Показать сводку сжатия',\n 'message.compaction.unavailable': 'Сводка сжатия недоступна',\n 'message.compaction.commandTitle': 'compact',\n 'message.think': 'Размышление',\n 'message.unknownSurface': 'Неизвестное surface-событие: {type}',\n 'message.unknownBlock': 'Неизвестный блок содержимого',\n 'message.turnProcess.toolCalls.one': '{count} вызов инструмента',\n 'message.turnProcess.toolCalls.other': '{count} вызовов инструментов',\n 'message.turnProcess.messages.one': '{count} сообщение',\n 'message.turnProcess.messages.other': '{count} сообщений',\n 'message.turnProcess.subagents.one': '{count} субагент',\n 'message.turnProcess.subagents.other': '{count} субагентов',\n 'message.turnProcess.thoughtForAWhile': 'Думал некоторое время',\n 'message.turnProcess.separator': ' · ',\n 'message.stopped': 'Остановлено',\n 'message.branch': 'Ответвить новый диалог',\n 'message.branchUnavailable': 'Доступно только на последнем сообщении завершённого хода',\n 'message.retry.active': 'Повтор запроса к модели',\n 'message.retry.cancelled': 'Повтор запроса к модели отменён',\n 'message.retry.started': 'Запрос к модели повторён',\n 'message.retry.scheduled': 'Ожидание повтора запроса к модели',\n 'message.retry.status': '{label} ({retry}/{maximum}) · {seconds} с',\n 'message.retry.delay': 'Задержка повтора: ',\n 'message.retry.failure': 'Причина сбоя: ',\n 'message.failure.auth': 'Недействительный API-ключ',\n 'message.turnError': 'Этот ход завершился с ошибкой',\n 'message.maxTokens': 'Достигнут лимит выходных токенов',\n 'message.maxTokens.hint': 'Ответ обрезан; уже выведенное сохранено в диалоге. Отправьте «продолжай», чтобы модель завершила ответ.',\n 'message.ranFor': 'Выполнялся {duration}',\n 'message.tokensPerSecond': '{tps} ток/с',\n 'message.turnUsage.title': 'Расход хода',\n 'message.turnUsage.consumed': 'Расход {total}',\n 'message.turnUsage.model': 'Провайдер / модель',\n 'message.turnUsage.cacheHit': 'Попадание в кэш',\n 'message.turnUsage.input': 'Вход без кэша',\n 'message.turnUsage.cacheRead': 'Чтение из кэша',\n 'message.turnUsage.cacheWrite': 'Запись в кэш',\n 'message.turnUsage.output': 'Выход',\n 'message.turnUsage.reasoning': ' (из них размышление {tokens})',\n 'message.turnUsage.count': '{count} ток',\n 'message.turnTime.title': 'Время и скорость хода',\n 'message.turnTime.duration': 'Общее время хода',\n 'message.turnTime.speed': 'Скорость вывода (TPS)',\n 'message.turnTime.ttft': 'Время до первого токена (TTFT)',\n 'duration.seconds': '{seconds} с',\n 'duration.minutes': '{minutes} мин {seconds} с',\n 'command.running': 'Выполняется…',\n 'command.failed': 'Команда завершилась с ошибкой',\n 'command.done': 'Завершено',\n 'command.title': 'Команда',\n 'row.running': 'Выполняется',\n 'row.failed': 'Ошибка',\n 'json.truncated': '… обрезано, всего {total} символов',\n 'clock.md': '{d}.{m}',\n 'clock.ymd': '{d}.{m}.{y}',\n 'message.systemPromptUpdate': 'Системный промпт обновлён',\n 'stats.dialog.title': 'Статистика сессии',\n 'stats.dialog.usageTitle': 'Использование токенов',\n 'stats.dialog.llmTime': 'Время модели',\n 'stats.dialog.toolTime': 'Время инструментов',\n 'stats.dialog.ttft': 'Среднее время до первого токена (TTFT)',\n 'stats.dialog.speed': 'Скорость вывода (ток./с)',\n },\n 'directory-browser': {\n 'browser.title': 'Выбор рабочего каталога',\n 'browser.home': 'Домой',\n 'browser.newFolder': 'Новая папка',\n 'browser.folderName': 'Имя папки',\n 'browser.createIn': 'Новая папка в \"{name}\"',\n 'browser.untitledFolder': 'Папка без имени',\n 'browser.create': 'Создать',\n 'browser.cancel': 'Отмена',\n 'browser.open': 'Открыть',\n 'browser.editPath': 'Изменить путь',\n 'browser.loading': 'Загрузка…',\n 'browser.truncated': 'Слишком много папок; показано только начало списка.',\n 'browser.showHidden': 'Показывать скрытые файлы',\n },\n 'open-in-app': {\n 'open.title': 'Открыть рабочую область в {app}',\n 'open.tooltip': 'Открыть локально',\n 'open.error': 'Не удалось открыть',\n 'menu.toggle': 'Выберите приложение для открытия',\n 'menu.aria': 'Открыть в',\n 'app.cursor': 'Cursor',\n 'app.vscode': 'VS Code',\n 'app.vscodeinsiders': 'VS Code Insiders',\n 'app.windsurf': 'Windsurf',\n 'app.zed': 'Zed',\n 'app.sublimetext': 'Sublime Text',\n 'app.xcode': 'Xcode',\n 'app.androidstudio': 'Android Studio',\n 'app.intellij': 'IntelliJ IDEA',\n 'app.pycharm': 'PyCharm',\n 'app.webstorm': 'WebStorm',\n 'app.phpstorm': 'PhpStorm',\n 'app.goland': 'GoLand',\n 'app.rider': 'Rider',\n 'app.rustrover': 'RustRover',\n 'app.fork': 'Fork',\n 'app.sourcetree': 'Sourcetree',\n 'app.github': 'GitHub Desktop',\n 'app.tower': 'Tower',\n 'app.gitkraken': 'GitKraken',\n 'app.smartgit': 'SmartGit',\n 'app.sublimemerge': 'Sublime Merge',\n 'app.ghostty': 'Ghostty',\n 'app.warp': 'Warp',\n 'app.iterm': 'iTerm2',\n 'app.kitty': 'kitty',\n 'app.windowsterminal': 'Windows Terminal',\n 'app.gitbash': 'Git Bash',\n 'app.gnometerminal': 'GNOME Terminal',\n 'app.konsole': 'Konsole',\n 'app.finder': 'Finder',\n 'app.explorer': 'Проводник',\n 'app.filemanager': 'Файлы',\n 'app.terminal': 'Терминал',\n },\n 'sidebarCodePreview': {\n 'code.copied': 'Скопировано',\n 'code.copy': 'Копировать',\n 'error.notFound': 'Файл не найден. Возможно, он перемещён или удалён.',\n 'error.notRegularFile': 'Это не обычный файл, показывать нечего.',\n 'error.notText': 'Это не текстовый файл, предпросмотр пока недоступен.',\n 'error.tooLarge': 'Страница превышает лимит {limit} и не может быть прочитана.',\n 'error.unavailable': 'Не удалось прочитать: {message}',\n 'footnotes': 'Сноски',\n 'viewer.label': 'Markdown',\n 'viewer.text': 'Обычный текст',\n 'wrap.aria': 'Перенос строк',\n 'wrap.disable': 'Отключить перенос строк',\n 'wrap.enable': 'Включить перенос строк',\n },\n 'sidebarFiles': {\n 'entry.other': 'Это не файл и не каталог, открыть нельзя.',\n 'error.notDirectory': 'Это не каталог.',\n 'error.notFound': 'Каталог исчез. Возможно, он перемещён или удалён.',\n 'error.outsideWorkspace': 'Каталог вне рабочей области, боковая панель его не читает.',\n 'error.unavailable': 'Не удалось прочитать: {message}',\n 'guide.description': 'Просмотр файлов рабочей области этой сессии',\n 'guide.title': 'Файлы рабочей области',\n 'type.label': 'Файлы',\n },\n 'sidebarRight': {\n 'chrome.collapse': 'Свернуть боковую панель',\n 'chrome.collapseAria': 'Свернуть правую боковую панель',\n 'chrome.exitFullscreen': 'Выйти из полноэкранного режима',\n 'chrome.expand': 'Открыть боковую панель',\n 'chrome.expandAria': 'Открыть правую боковую панель',\n 'chrome.toFullscreen': 'Во весь экран',\n 'dock.addTab': 'Новая вкладка',\n 'dock.closeFloat': 'Закрыть',\n 'dock.closeTab': 'Закрыть',\n 'dock.dockFloat': 'Вернуть в боковую панель',\n 'dock.drop.bottom': 'Добавить нижнюю область',\n 'dock.drop.center': 'Переместить сюда',\n 'dock.drop.left': 'Добавить область слева',\n 'dock.drop.right': 'Добавить область справа',\n 'dock.drop.top': 'Добавить верхнюю область',\n 'dock.emptyPane': 'Пустая область',\n 'dock.splitPane': 'Разделить',\n 'dock.splitPaneDisabled': 'Максимум две области',\n 'dock.splitPaneNarrow': 'Недостаточно ширины для разделения — расширьте боковую панель',\n 'tab.guide.title': 'Начало',\n 'tab.unavailable': 'Пока ничто здесь не умеет отображать такой контент.',\n },\n}\n","/**\n * Russian (ru) language pack, browser half. Registers `ru` as an external\n * selectable language and contributes a `ru` dictionary for every client\n * locale namespace, following the language-pack pattern from\n * `@deepseek-ai/dsh-client-locale` (addLanguage + per-locale register).\n */\nimport type { Context as ClientContext } from '@deepseek-ai/cordis'\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\nimport { RU_DICTS, RU_LABEL } from './dicts.ts'\n\n/** Required service: the locale registry that owns languages and dictionaries. */\nexport const inject = ['locale']\n\n/**\n * Client plugin body: add `ru` to the selectable language catalog and register\n * a ru dictionary for every namespace this pack contributes. Registration is\n * an effect, so the contributed language and dictionaries are torn down with\n * this plugin's fiber.\n * @param ctx - client root context.\n */\nexport function apply(ctx: ClientContext): void {\n ctx.effect(\n () => ctx.locale.addLanguage({ id: 'ru', label: RU_LABEL, fallback: 'en' }),\n 'locale-ru: language',\n )\n for (const [ns, dict] of Object.entries(RU_DICTS)) {\n ctx.effect(() => ctx.locale.register(ns, 'ru', dict), `locale-ru: ${ns} dictionary`)\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED