@goodandready/dsh-russian-lang 0.1.16 → 0.1.17
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 +767 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -19,6 +19,195 @@ window.__ModuleLoader__.load({
|
|
|
19
19
|
|
|
20
20
|
/** namespace -> { ключ: перевод } */
|
|
21
21
|
const RU = {
|
|
22
|
+
"agentTeams": {
|
|
23
|
+
"action.openActivityPanel": "Открыть панель активности",
|
|
24
|
+
"activity.badgeAria": "Активность и история команд агентов, {count} записей команд",
|
|
25
|
+
"activity.collapse": "Свернуть панель активности",
|
|
26
|
+
"activity.dockRight": "Закрепить справа",
|
|
27
|
+
"activity.empty": "Нет активности команды",
|
|
28
|
+
"activity.float": "Переключиться на плавающую панель",
|
|
29
|
+
"activity.panelAria": "Панель активности команд агентов",
|
|
30
|
+
"activity.panelButton": "Панель активности",
|
|
31
|
+
"activity.title": "Активность команд агентов",
|
|
32
|
+
"archive.discardedLabel": "План отменен · Архивная история",
|
|
33
|
+
"archive.label": "Завершено · Архивная история",
|
|
34
|
+
"assignment.discarded": "План не выполнен",
|
|
35
|
+
"assignment.empty": "Нет задач",
|
|
36
|
+
"assignment.label": "Капитан назначен",
|
|
37
|
+
"assignment.staged": "Запланированная задача",
|
|
38
|
+
"captain.name": "Капитан",
|
|
39
|
+
"captain.role": "Разделить · Делегировать · Синтезировать",
|
|
40
|
+
"captain.state.awaitingFeedback": "Ожидание отзыва",
|
|
41
|
+
"captain.state.collected": "Все полученные отчеты",
|
|
42
|
+
"captain.state.discarded": "Отменено",
|
|
43
|
+
"captain.state.settled": "Оплачено",
|
|
44
|
+
"captain.state.staged": "Ожидает одобрения",
|
|
45
|
+
"captain.state.takeover": "Работаю над {tasks}",
|
|
46
|
+
"captain.state.waiting": "Ожидание отчетов",
|
|
47
|
+
"captain.state.working": "{count} активных",
|
|
48
|
+
"captain.summary": "Назначено {tasks} задач {members} участникам",
|
|
49
|
+
"captain.summary.awaitingFeedback": "Черновой вариант сохранен; ожидаем ваших указаний по доработке в чате",
|
|
50
|
+
"captain.summary.discarded": "План отменён: {members} участников не созданы и {tasks} задачи не выполнены",
|
|
51
|
+
"captain.summary.staged": "Запланировано {tasks} задач и {members} участников; ожидают утверждения",
|
|
52
|
+
"captain.summary.withTakeover": "Назначено {tasks} участникам · Капитан владеет {captainTasks}",
|
|
53
|
+
"card.memberCount": "{count} участников",
|
|
54
|
+
"delegation.aria": "Карта делегирования капитана",
|
|
55
|
+
"dependency.aria": "Цепочка зависимостей задач",
|
|
56
|
+
"dependency.hint.chain": "Наведите для подсветки зависимостей · Нажмите, чтобы закрепить",
|
|
57
|
+
"dependency.hint.parallel": "Нет зависимостей · Нажмите для подробностей",
|
|
58
|
+
"dependency.hint.pinned": "{taskId} закреплена · Esc для сброса",
|
|
59
|
+
"dependency.parallel": "Параллельные задачи",
|
|
60
|
+
"dependency.title": "Зависимости задач",
|
|
61
|
+
"format.listSeparator": ",",
|
|
62
|
+
"member.model": "{model}",
|
|
63
|
+
"member.state.delivered": "Доставлено",
|
|
64
|
+
"member.state.failed": "Имеются сбои",
|
|
65
|
+
"member.state.left": "Левая команда",
|
|
66
|
+
"member.state.notCreated": "Не создано",
|
|
67
|
+
"member.state.pending": "Ожидание",
|
|
68
|
+
"member.state.removed": "Удалено",
|
|
69
|
+
"member.state.staged": "Не создан",
|
|
70
|
+
"member.state.stopped": "Остановлено",
|
|
71
|
+
"member.state.unassigned": "Ожидание назначения",
|
|
72
|
+
"member.state.waiting": "Ожидание",
|
|
73
|
+
"member.state.working": "Работает",
|
|
74
|
+
"member.status.delivered": "Задачи выполнены",
|
|
75
|
+
"member.status.discarded": "План отклонён; участник не был создан",
|
|
76
|
+
"member.status.executing": "Работа над {taskId}",
|
|
77
|
+
"member.status.executingModel": "Работа над {taskId} · {model}",
|
|
78
|
+
"member.status.idle": "Готовы продолжить",
|
|
79
|
+
"member.status.settled": "Вся назначенная работа выполнена",
|
|
80
|
+
"member.status.staged": "Будет создан после одобрения",
|
|
81
|
+
"member.status.stopped": "Команда остановлена; требуется явное возобновление",
|
|
82
|
+
"member.status.unknown": "Статус неизвестен",
|
|
83
|
+
"member.status.waitingAssignment": "Ожидание назначения работы от капитана",
|
|
84
|
+
"member.status.waitingOn": "Ожидание {taskId} · {assignee}",
|
|
85
|
+
"member.status.waitingPrerequisite": "Ожидание выполнения предварительных условий",
|
|
86
|
+
"member.status.working": "Работа над назначенными задачами",
|
|
87
|
+
"members.collapse": "Свернуть",
|
|
88
|
+
"members.empty": "Пока нет участников; ожидаем, пока капитан соберёт команду",
|
|
89
|
+
"members.expand": "Развернуть",
|
|
90
|
+
"members.toggle": "Участники {count}",
|
|
91
|
+
"plan.addTask": "Добавить задачу",
|
|
92
|
+
"plan.adding": "Добавление…",
|
|
93
|
+
"plan.approve": "Одобрить и запустить",
|
|
94
|
+
"plan.approveConfirm": "Подтвердить запуск",
|
|
95
|
+
"plan.approveConfirmTitle": "Подтвердить запуск команды",
|
|
96
|
+
"plan.approveHint": "Одобрение создаёт {members} участников и планирует {tasks} задачи.",
|
|
97
|
+
"plan.approveTitle": "План готов?",
|
|
98
|
+
"plan.approveWarning": "Маршруты участников и зависимости нельзя редактировать здесь после запуска.",
|
|
99
|
+
"plan.approving": "Создание участников…",
|
|
100
|
+
"plan.badge": "Ожидание подтверждения",
|
|
101
|
+
"plan.cancel": "Отмена",
|
|
102
|
+
"plan.continue": "Вернуться в чат и исправить",
|
|
103
|
+
"plan.dependencies.count": "{count} зависимостей",
|
|
104
|
+
"plan.dependencies.none": "Нет зависимостей",
|
|
105
|
+
"plan.description": "Участники не были созданы, и задачи не были назначены. Отредактируйте черновик здесь или вернитесь в чат и сообщите Капитану, что нужно изменить.",
|
|
106
|
+
"plan.discard": "Отменить этот план",
|
|
107
|
+
"plan.discardConfirm": "Отменить план",
|
|
108
|
+
"plan.discardConfirmTitle": "Отменить этот план?",
|
|
109
|
+
"plan.discardWarning": "План будет завершён и заархивирован. Участники не были созданы, и задачи выполняться не будут.",
|
|
110
|
+
"plan.discarding": "Отмена…",
|
|
111
|
+
"plan.failed": "Операция не удалась: {message}",
|
|
112
|
+
"plan.feedbackHint": "Капитан спросит в чате. После вашего ответа он пересмотрит этот черновик и снова будет ждать одобрения.",
|
|
113
|
+
"plan.feedbackTitle": "Ожидание ваших указаний по исправлению",
|
|
114
|
+
"plan.flow.aria": "Процесс запуска команды",
|
|
115
|
+
"plan.flow.review": "Просмотреть план",
|
|
116
|
+
"plan.flow.run": "Начать работу",
|
|
117
|
+
"plan.flow.spawn": "Создать участников",
|
|
118
|
+
"plan.member.model": "Модель",
|
|
119
|
+
"plan.member.prompt": "Роль подсказки",
|
|
120
|
+
"plan.member.provider": "Провайдер",
|
|
121
|
+
"plan.member.reasoning": "Усилие на рассуждение",
|
|
122
|
+
"plan.member.reasoningHint": "Оставьте пустым для значения по умолчанию; принимает low, medium, high, xhigh и другие.",
|
|
123
|
+
"plan.member.role": "Роль",
|
|
124
|
+
"plan.member.roleFallback": "Роль не установлена",
|
|
125
|
+
"plan.members.count": "{count} участников",
|
|
126
|
+
"plan.members.empty": "Пока нет запланированных участников",
|
|
127
|
+
"plan.members.title": "Участники и маршруты моделей",
|
|
128
|
+
"plan.model.back": "Назад",
|
|
129
|
+
"plan.model.choose": "Выберите модель",
|
|
130
|
+
"plan.model.currentUnavailable": "{provider}/{model} (нет в текущем каталоге)",
|
|
131
|
+
"plan.model.defaultReasoning": "Усилия по умолчанию при рассуждении",
|
|
132
|
+
"plan.model.empty": "Нет доступных моделей",
|
|
133
|
+
"plan.model.loading": "Загрузка моделей…",
|
|
134
|
+
"plan.model.modelDefault": "Модель по умолчанию ({effort})",
|
|
135
|
+
"plan.model.partialFailure": "{count} каталогов поставщиков не удалось загрузить",
|
|
136
|
+
"plan.model.providerDefault": "Провайдер по умолчанию",
|
|
137
|
+
"plan.model.retry": "Повторить",
|
|
138
|
+
"plan.model.route": "Маршрут: {provider}/{model}",
|
|
139
|
+
"plan.model.triggerAria": "Выберите модель участника, текущая {model}, уровень усилий для рассуждений {effort}",
|
|
140
|
+
"plan.newTask": "Новая тема задачи",
|
|
141
|
+
"plan.newTaskLabel": "Добавить запланированную задачу",
|
|
142
|
+
"plan.pendingEdits": "Сохраните текущие изменения перед запуском команды.",
|
|
143
|
+
"plan.readySummary": "{members} участников · {tasks} задач · {links} зависимостей",
|
|
144
|
+
"plan.remove": "Удалить",
|
|
145
|
+
"plan.removeConfirm": "Подтвердите удаление",
|
|
146
|
+
"plan.removeWarning": "Удаление {task} приведет к пересчету зависимостей ниже по цепочке.",
|
|
147
|
+
"plan.removed": "Задача удалена",
|
|
148
|
+
"plan.returnToChat": "Вернуться в чат",
|
|
149
|
+
"plan.save": "Сохранить",
|
|
150
|
+
"plan.saved": "План сохранён",
|
|
151
|
+
"plan.saving": "Сохранение…",
|
|
152
|
+
"plan.task.assignee": "Исполнитель",
|
|
153
|
+
"plan.task.dependencies": "ID задач зависимостей (через запятую)",
|
|
154
|
+
"plan.task.dependenciesHint": "Например, task-1, task-2; циклы отклонены",
|
|
155
|
+
"plan.task.description": "Описание задачи",
|
|
156
|
+
"plan.task.subject": "Тема задачи",
|
|
157
|
+
"plan.task.unassigned": "Общий пул задач",
|
|
158
|
+
"plan.taskAdded": "Задача добавлена",
|
|
159
|
+
"plan.tasks.count": "{count} задач · {links} зависимостей",
|
|
160
|
+
"plan.tasks.empty": "Нет запланированных задач",
|
|
161
|
+
"plan.tasks.title": "Задачи и зависимости",
|
|
162
|
+
"plan.title": "Проверка плана перед запуском",
|
|
163
|
+
"plan.unsaved": "Не сохранено",
|
|
164
|
+
"progress.aria": "Общий прогресс команды",
|
|
165
|
+
"progress.blocked": "■ Ожидание {count}",
|
|
166
|
+
"progress.delivered": "■ Доставлено {count}",
|
|
167
|
+
"progress.running": "■ В процессе {count}",
|
|
168
|
+
"progress.title": "Общий прогресс",
|
|
169
|
+
"task.assignee.unclaimed": "Невостребованные",
|
|
170
|
+
"task.detail.completed": "Завершено и доставлено",
|
|
171
|
+
"task.detail.noDownstream": "Нет последующих задач",
|
|
172
|
+
"task.detail.noPrerequisite": "Нет требований; готовы начать",
|
|
173
|
+
"task.detail.notRun": "План отменён; задача не была выполнена",
|
|
174
|
+
"task.detail.ready": "Предварительные условия выполнены; можно начинать",
|
|
175
|
+
"task.detail.unlocks": "Разблокирует {tasks} после завершения",
|
|
176
|
+
"task.detail.waitingOn": "Ожидание {tasks}",
|
|
177
|
+
"task.runningAria": "Выполняется",
|
|
178
|
+
"task.status.cancelled": "Отменено",
|
|
179
|
+
"task.status.claimed": "Заявлено",
|
|
180
|
+
"task.status.completed": "Завершено",
|
|
181
|
+
"task.status.failed": "Не удалось",
|
|
182
|
+
"task.status.notRun": "Не запущено",
|
|
183
|
+
"task.status.pending": "Невостребованные",
|
|
184
|
+
"task.summary.allDelivered": "Все {count} задачи доставлены",
|
|
185
|
+
"task.summary.blocked": "{tasks} ожидают выполнения предварительных условий",
|
|
186
|
+
"task.summary.blockedAndRunning": "{tasks}{more} ожидают выполнения предварительных условий; другая работа уже начата",
|
|
187
|
+
"task.summary.discarded": "{count} запланированных задач отменено; ни одна не выполнена",
|
|
188
|
+
"task.summary.ended": "Итог: {completed} доставлено · {cancelled} отменено · {failed} не удалось",
|
|
189
|
+
"task.summary.failedSettled": "{count} ошибок; автоматический цикл остановлен",
|
|
190
|
+
"task.summary.more": "и ещё {count}",
|
|
191
|
+
"task.summary.ready": "{tasks} готовы к началу",
|
|
192
|
+
"task.summary.running": "{tasks} в процессе выполнения",
|
|
193
|
+
"task.summary.staged": "{count} запланированных задач ожидают утверждения",
|
|
194
|
+
"task.summary.waitingBreakdown": "Ожидание, пока капитан распределит работу",
|
|
195
|
+
"task.summary.waitingSchedule": "Ожидание следующего цикла планирования",
|
|
196
|
+
"team.discarded": "Отклонено",
|
|
197
|
+
"team.ended": "Завершено",
|
|
198
|
+
"team.stats.completed": "{completed}/{total} завершено",
|
|
199
|
+
"team.stats.members": "{count} участников",
|
|
200
|
+
"team.stats.messages": "{count} сообщений",
|
|
201
|
+
"team.stop": "Остановить команду",
|
|
202
|
+
"team.stopCancel": "Продолжать работу",
|
|
203
|
+
"team.stopConfirm": "Остановить команду",
|
|
204
|
+
"team.stopDescription": "Это отменяет {tasks} незавершённых задач и останавливает {members} работающих участников. Завершённые результаты сохраняются.",
|
|
205
|
+
"team.stopFailed": "Не удалось остановить команду: {message}",
|
|
206
|
+
"team.stopRequestFailed": "Сервер не смог остановить эту команду. Попробуйте снова.",
|
|
207
|
+
"team.stopTitle": "Остановить “{team}”?",
|
|
208
|
+
"team.stopped": "Остановлено",
|
|
209
|
+
"team.stopping": "Остановка…"
|
|
210
|
+
},
|
|
22
211
|
"betterSidebar": {
|
|
23
212
|
"addPluginsBrowseMore": "Ещё плагины на GitHub (тема: dsh-better-sidebar)",
|
|
24
213
|
"addPluginsEmpty": "Подборки пока нет — опубликуйте свой плагин под темой на GitHub",
|
|
@@ -59,6 +248,7 @@ window.__ModuleLoader__.load({
|
|
|
59
248
|
"close": "Закрыть",
|
|
60
249
|
"closeLeftTabs": "Закрыть вкладки слева",
|
|
61
250
|
"closeOtherTabs": "Закрыть остальные вкладки",
|
|
251
|
+
"closePinnedTerminal": "Закрыть терминал",
|
|
62
252
|
"closeRightTabs": "Закрыть вкладки справа",
|
|
63
253
|
"collapse": "Свернуть панель",
|
|
64
254
|
"collapseBottomPanel": "Свернуть нижнюю панель",
|
|
@@ -85,6 +275,7 @@ window.__ModuleLoader__.load({
|
|
|
85
275
|
"discardDesc": "Изменения «{path}» в рабочем дереве будут отброшены без возможности вернуть.",
|
|
86
276
|
"discardTitle": "Отмена изменений",
|
|
87
277
|
"disconnected": "Терминал отключился, переподключаемся…",
|
|
278
|
+
"dockToSidebar": "Вернуть в боковую панель",
|
|
88
279
|
"download": "Скачать",
|
|
89
280
|
"downloadToView": "Скачать, чтобы посмотреть",
|
|
90
281
|
"edit": "Изменить",
|
|
@@ -107,6 +298,7 @@ window.__ModuleLoader__.load({
|
|
|
107
298
|
"expandBottomPanel": "Развернуть нижнюю панель",
|
|
108
299
|
"explorer": "Проводник",
|
|
109
300
|
"files": "Файлы",
|
|
301
|
+
"floatDropHint": "Отпустите, чтобы открыть в свободном окне",
|
|
110
302
|
"git": "Контроль версий",
|
|
111
303
|
"gitDetail": "Посмотреть изменения",
|
|
112
304
|
"hiddenFiles": "Скрытые файлы",
|
|
@@ -140,6 +332,7 @@ window.__ModuleLoader__.load({
|
|
|
140
332
|
"mermaidZoomIn": "Увеличить",
|
|
141
333
|
"mermaidZoomOut": "Уменьшить масштаб",
|
|
142
334
|
"mermaidZoomReset": "Сбросить",
|
|
335
|
+
"moveToFreeWindow": "Переместить в свободное окно",
|
|
143
336
|
"newFile": "Новый файл",
|
|
144
337
|
"newTab": "Новая вкладка",
|
|
145
338
|
"newTerminal": "Новый терминал",
|
|
@@ -172,8 +365,19 @@ window.__ModuleLoader__.load({
|
|
|
172
365
|
"openWithVscode": "VS Code",
|
|
173
366
|
"openWithZed": "Зед",
|
|
174
367
|
"parent": "Родительская папка",
|
|
368
|
+
"pinAgentTerminal": "Закрепить терминал агента",
|
|
175
369
|
"pinOpenWith": "Закрепить в меню",
|
|
370
|
+
"pinTerminal": "Закрепить терминал",
|
|
371
|
+
"pinToGlobal": "Закрепить для всех",
|
|
372
|
+
"pinToWorkspace": "Закрепить в рабочей области",
|
|
373
|
+
"pinnedRailLabel": "Закреплённые терминалы",
|
|
374
|
+
"pinnedTerminalKindAgent": "Терминал агента",
|
|
375
|
+
"pinnedTerminalKindUi": "Терминал интерфейса",
|
|
376
|
+
"pinnedTerminalScopeGlobal": "Закреплено глобально",
|
|
377
|
+
"pinnedTerminalScopeWorkspace": "Закреплено в рабочей области",
|
|
378
|
+
"pinnedTerminalTooltip": "{kind} · {scope} · {cwd}",
|
|
176
379
|
"pluginDocsPanelDesc": "Глобальные документы в боковой панели DSH: читайте свои заметки в формате Markdown из любого рабочего пространства — список файлов, структура, открытие в Chrome / VS Code и кнопки копирования; директория документов настраивается (по умолчанию ~/.dsh/docs)",
|
|
380
|
+
"pluginEgoBrowserDesc": "Браузер агента для DeepSeek Harness: 32 инструмента ego_* управляют реальным Chromium, с нативной боковой панелью \"ego browser\", которая предоставляет живой просмотр каждой страницы, посещаемой агентом — вы можете кликать, перетаскивать и печатать, чтобы взять управление на себя. Регистрирует вкладку автоматически, если присутствует better-sidebar, в противном случае переходит на плавающий пузырь.",
|
|
177
381
|
"pluginFlowglassDesc": "Граф потока живого сеанса с тремя полосами для пользователя, ассистента и вызовов инструментов, а также параллельными группами, ветвями под-агентов, детализацией и текущим статусом; регистрирует вкладку Flowglass в нативном режиме при установке better-sidebar и сохраняет отдельный выдвижной ящик в качестве резерва.",
|
|
178
382
|
"pluginGitForgeDesc": "Вкладка Git Forge: библиотека аккаунтов GitHub/Gitea (и других форков) + права на проекты + политика жесткого пуша; токены остаются в локальных секретах (никогда в контексте модели); инструмент GitForge только для чтения и помощник для HTTPS-учетных данных агента",
|
|
179
383
|
"pluginGitRemotesDesc": "Вкладка Git Remotes: ветка, upstream, отставание и опережение, fetch (с необязательным prune), pull только ff-only и push после подтверждения во вкладке. Не заменяет встроенную вкладку git со стадированием и коммитами, не предлагает force-push и не даёт модели инструмент автопуша",
|
|
@@ -189,6 +393,7 @@ window.__ModuleLoader__.load({
|
|
|
189
393
|
"producedOpen": "Открыть в панели",
|
|
190
394
|
"referenceFile": "@файл",
|
|
191
395
|
"refresh": "Обновить",
|
|
396
|
+
"refreshUnsavedConfirm": "Файл изменился на диске. Обновление приведёт к потере несохранённых изменений. Продолжить?",
|
|
192
397
|
"retry": "Повторить",
|
|
193
398
|
"revertCommit": "Откатить коммит",
|
|
194
399
|
"revertDesc": "Создать в текущей ветке новый коммит, отменяющий «{subject}».",
|
|
@@ -207,6 +412,9 @@ window.__ModuleLoader__.load({
|
|
|
207
412
|
"settingsBrowserHttpsTitle": "Открывать https-страницы в панели",
|
|
208
413
|
"settingsBrowserLinksDesc": "Если включено, клик по внешней ссылке открывает панель, а не новое окно; http и https управляются отдельными переключателями ниже; Ctrl/Cmd+клик всегда в обход",
|
|
209
414
|
"settingsBrowserLinksTitle": "Открывать внешние ссылки из диалога в панели",
|
|
415
|
+
"settingsBrowserLoopbackDesc": "Разделённый запятыми список разрешённых адресов локальной петли (например, localhost:5174 или 127.0.0.1:8080), которые может посещать боковой браузер; пустое значение блокирует все локальные адреса по умолчанию. Песочница всё ещё применяется — страницы не могут читать данные GUI.",
|
|
416
|
+
"settingsBrowserLoopbackPlaceholder": "например, localhost:5174, 127.0.0.1:8080",
|
|
417
|
+
"settingsBrowserLoopbackTitle": "Разрешенные локальные адреса",
|
|
210
418
|
"settingsBrowserSandboxDesc": "С выключенной песочницей любой открытый сайт работает в том же origin, что и интерфейс: он может читать данные сессии и действовать от вашего имени. Включайте только для полностью доверенных сайтов",
|
|
211
419
|
"settingsBrowserSandboxTitle": "Отключить песочницу браузера (небезопасно)",
|
|
212
420
|
"settingsConflict": "Настройку изменили в другом окне — повторите",
|
|
@@ -233,6 +441,8 @@ window.__ModuleLoader__.load({
|
|
|
233
441
|
"settingsOpenPathDesc": "Открывать файловые ссылки из диалога (строки инструментов, созданные файлы, упоминания) в редакторе панели, а не в системном приложении",
|
|
234
442
|
"settingsOpenPathTitle": "Открывать файлы из диалога в панели",
|
|
235
443
|
"settingsOpenTitle": "Разворачивать для новых диалогов",
|
|
444
|
+
"settingsOpenToolsDesc": "Когда включено, модель может активно открывать файлы, папки и HTTP(S)-страницы в боковой панели через инструмент sidebar_open (по умолчанию отключено).",
|
|
445
|
+
"settingsOpenToolsTitle": "Внедрите инструмент sidebar-open для модели",
|
|
236
446
|
"settingsPopup": "Настройки функции",
|
|
237
447
|
"settingsPopupDesc": "Параметры для «{feature}»",
|
|
238
448
|
"settingsSaveFailed": "Не удалось сохранить",
|
|
@@ -263,6 +473,7 @@ window.__ModuleLoader__.load({
|
|
|
263
473
|
"settingsWidthDesc": "Какую долю ширины окна занимает панель в новых диалогах (20–60)",
|
|
264
474
|
"settingsWidthSuffix": "%",
|
|
265
475
|
"settingsWidthTitle": "Ширина по умолчанию",
|
|
476
|
+
"showInFolder": "Показать в папке",
|
|
266
477
|
"sideChat": "Боковой чат (бета)",
|
|
267
478
|
"sideChatCancel": "Остановить",
|
|
268
479
|
"sideChatCancelTitle": "Прервать текущий ход (запланированные задачи сохраняются)",
|
|
@@ -294,6 +505,7 @@ window.__ModuleLoader__.load({
|
|
|
294
505
|
"stage": "В индекс",
|
|
295
506
|
"stageAll": "Всё в индекс",
|
|
296
507
|
"staged": "В индексе",
|
|
508
|
+
"statusTruncated": "Слишком много изменений; показаны первые 2,000 записей",
|
|
297
509
|
"subagent": "Задачи",
|
|
298
510
|
"subagentCount": "субагентов: {count}",
|
|
299
511
|
"subagentCountRunning": "субагентов: {count} · работает: {running}",
|
|
@@ -320,8 +532,10 @@ window.__ModuleLoader__.load({
|
|
|
320
532
|
"timeJustNow": "только что",
|
|
321
533
|
"timeMinutesAgo": "{n} мин назад",
|
|
322
534
|
"timeYesterday": "вчера",
|
|
535
|
+
"toc": "Содержание",
|
|
323
536
|
"truncation": "Файл слишком большой — показаны первые 512 КБ",
|
|
324
537
|
"unpinOpenWith": "Открепить",
|
|
538
|
+
"unpinTerminal": "Открепить",
|
|
325
539
|
"unsaved": "Не сохранено",
|
|
326
540
|
"unstage": "Из индекса",
|
|
327
541
|
"unstageAll": "Всё из индекса",
|
|
@@ -345,7 +559,8 @@ window.__ModuleLoader__.load({
|
|
|
345
559
|
"viewerHtml": "HTML",
|
|
346
560
|
"viewerImage": "Изображение",
|
|
347
561
|
"viewerMarkdown": "Markdown",
|
|
348
|
-
"viewerPdf": "PDF"
|
|
562
|
+
"viewerPdf": "PDF",
|
|
563
|
+
"worktree": "Рабочее дерево"
|
|
349
564
|
},
|
|
350
565
|
"command": {
|
|
351
566
|
"listbox.aria": "Совпадения /{command}",
|
|
@@ -689,30 +904,71 @@ window.__ModuleLoader__.load({
|
|
|
689
904
|
"browser.untitledFolder": "Без имени"
|
|
690
905
|
},
|
|
691
906
|
"dsh-context": {
|
|
907
|
+
"agents.billed": "{n} выставлено к оплате",
|
|
908
|
+
"agents.chip.count": "{n} агентов",
|
|
909
|
+
"agents.chip.running": "{n} запущено",
|
|
910
|
+
"agents.chip.tokens": "{n} токенов в контексте",
|
|
911
|
+
"agents.continuable": "продолжаемый",
|
|
912
|
+
"agents.legend.free": "свободное окно",
|
|
913
|
+
"agents.more": "Ещё {n} не показано",
|
|
914
|
+
"agents.oneshot": "одноразовый",
|
|
915
|
+
"agents.open": "нажмите, чтобы открыть →",
|
|
916
|
+
"agents.requests": "{n} запросов",
|
|
917
|
+
"agents.running": "выполняется",
|
|
918
|
+
"agents.self": "текущий",
|
|
919
|
+
"agents.solo": "Пока нет суб-агентов — когда агент делегирует работу через инструмент суб-агентов, сеть будет отображаться здесь",
|
|
920
|
+
"agents.sub": "Живой контекст этого агента и его подчиненных агентов · нажмите на узел, чтобы открыть его сессию",
|
|
921
|
+
"agents.title": "Сеть агентов",
|
|
922
|
+
"attach.close": "Закрыть",
|
|
692
923
|
"attach.image": "Изображение",
|
|
693
924
|
"attach.images": "Изображения",
|
|
694
925
|
"attach.loadFailed": "Не удалось загрузить · нажмите, чтобы повторить",
|
|
695
926
|
"attach.loading": "…",
|
|
696
927
|
"attach.open": "Открыть изображение полностью",
|
|
697
928
|
"attach.other": "Другой контент",
|
|
929
|
+
"attach.preview": "Превью изображения",
|
|
698
930
|
"attach.raw": "Сырой",
|
|
699
931
|
"attach.sent": "Отправлено",
|
|
700
932
|
"attach.token": "Токен",
|
|
701
933
|
"attach.tokensTip": "Расчетная стоимость токенов через официальное преобразование размера изображения DeepSeek (ограничение в 384 токена на изображение)",
|
|
702
934
|
"block.answer": "Ответ",
|
|
935
|
+
"block.content": "Контент",
|
|
936
|
+
"block.line": "1 строка",
|
|
937
|
+
"block.lines": "{n} строк",
|
|
938
|
+
"block.result": "Результат",
|
|
939
|
+
"block.summary": "Сводка",
|
|
703
940
|
"block.thinking": "Обоснование",
|
|
941
|
+
"brief.input": "В",
|
|
942
|
+
"brief.inputTip": "Что было введено после предыдущего ответа и перед этим запросом — обычно результаты предыдущего вызова инструмента; начало нового оборота не содержит ничего нового",
|
|
943
|
+
"brief.locate": "Показать в контекстном браузере",
|
|
944
|
+
"brief.more": "+{n}",
|
|
945
|
+
"brief.noInputs": "(ничего нового)",
|
|
946
|
+
"brief.reply": "Ответ",
|
|
947
|
+
"brief.replyTip": "Что модель вернула на этом шаге (текстовый ответ или вызовы инструментов) — результаты вызовов отображаются в строке In следующего бара",
|
|
948
|
+
"brief.turn": "Пользователь",
|
|
949
|
+
"brief.turnTip": "Сообщение пользователя, которое открыло этот ход — каждый шаг хода ссылается на него",
|
|
704
950
|
"browser.approx": "Некоторые удаленные сообщения этого шага превышают срок хранения — приведенное ниже восстановление является приблизительным",
|
|
705
951
|
"browser.deltaHint": "по сравнению с предыдущим ходом",
|
|
706
952
|
"browser.items": "{n} элементов",
|
|
707
953
|
"browser.live": "В прямом эфире (Следующий запрос)",
|
|
708
954
|
"browser.liveNow": "В прямом эфире · Следующий запрос",
|
|
955
|
+
"browser.loadFailed": "Не удалось загрузить — нажмите, чтобы повторить",
|
|
709
956
|
"browser.loading": "Загрузка полного содержимого из более старой истории сеанса…",
|
|
710
957
|
"browser.missingLive": "… {n} предыдущих сообщений также являются частью контекста (за пределами предоставленного окна)",
|
|
711
958
|
"browser.noContent": "Полное содержимое находится за пределами загруженного окна сообщений (загрузите более старую историю в Чате для просмотра)",
|
|
712
959
|
"browser.noEpoch": "Содержание заголовка (Системное сообщение / Схемы инструментов) этого шага находится за пределами удержания",
|
|
713
960
|
"browser.noHeader": "Обслуживается устаревшей версией плагина: только оценка токенов, без содержимого",
|
|
961
|
+
"browser.notInLog": "Этот элемент больше не находится в журнале сессии (возможно, он был удалён или очищен)",
|
|
714
962
|
"browser.preview": "Предварительный просмотр",
|
|
963
|
+
"browser.rowNoMatch": "Нет строк, соответствующих текущему фильтру",
|
|
964
|
+
"browser.search.assistant": "Фильтровать по ответам или звонкам…",
|
|
965
|
+
"browser.search.inject": "Фильтровать введённый контекст…",
|
|
966
|
+
"browser.search.tool": "Фильтровать по инструменту или аргументам…",
|
|
967
|
+
"browser.search.user": "Фильтровать по тексту сообщения…",
|
|
715
968
|
"browser.title": "Контекстный браузер",
|
|
969
|
+
"call.exit": "выход {n}",
|
|
970
|
+
"call.fail": "Не удалось",
|
|
971
|
+
"call.ok": "ОК",
|
|
716
972
|
"cat.assistant": "Сообщения ассистента",
|
|
717
973
|
"cat.inject": "Введённый контекст",
|
|
718
974
|
"cat.system": "Системное сообщение",
|
|
@@ -722,6 +978,7 @@ window.__ModuleLoader__.load({
|
|
|
722
978
|
"cmd.close": "Закрыть",
|
|
723
979
|
"cmd.desc": "Просмотр текущего контекста макияжа, просмотр состава по шагам",
|
|
724
980
|
"detail.actual": "Фактический запрос {n}",
|
|
981
|
+
"detail.cache": "Кэш {n}%",
|
|
725
982
|
"detail.estTotal": "Примерно ≈ {n}",
|
|
726
983
|
"detail.lastStep": "Последний шаг",
|
|
727
984
|
"detail.output": "Вывод {n}",
|
|
@@ -730,6 +987,8 @@ window.__ModuleLoader__.load({
|
|
|
730
987
|
"error": "Не удалось прочитать данные контекста:",
|
|
731
988
|
"error.retry": "Повторить",
|
|
732
989
|
"ev.compaction": "Контекст сжат (резюме заменено {n} сообщений)",
|
|
990
|
+
"ev.mode.plan.off": "Режим плана выключен",
|
|
991
|
+
"ev.mode.plan.on": "Режим планирования включён",
|
|
733
992
|
"ev.model": "Модель изменена: {a} → {b}",
|
|
734
993
|
"ev.prune": "Вывод инструмента обрезан",
|
|
735
994
|
"ev.skill": "Навык внедрён ({name})",
|
|
@@ -738,6 +997,76 @@ window.__ModuleLoader__.load({
|
|
|
738
997
|
"events.range": "Поверните {t} · Шаг {a}→{b}",
|
|
739
998
|
"events.rangeTo": "Поверните {a} · Шаг {as} → Поверните {b} · Шаг {bs}",
|
|
740
999
|
"events.title": "Контекстные события",
|
|
1000
|
+
"files.chipTip": "{files} файлов · {ops} операций",
|
|
1001
|
+
"files.deltaTip": "Совокупное изменение строк, оцененное по аргументам вызовов редактирования/записи: + добавлено / − удалено",
|
|
1002
|
+
"files.empty": "Нет чтений, записей или поиска файлов в этом диапазоне",
|
|
1003
|
+
"files.errs": "{n} не удалось",
|
|
1004
|
+
"files.files": "{n} файлов",
|
|
1005
|
+
"files.form.dir": "Каталог",
|
|
1006
|
+
"files.form.image": "Изображение",
|
|
1007
|
+
"files.form.text": "Файл",
|
|
1008
|
+
"files.glyph.archive": "Архив",
|
|
1009
|
+
"files.glyph.assets": "Активы",
|
|
1010
|
+
"files.glyph.build": "Результат сборки",
|
|
1011
|
+
"files.glyph.config": "Конфигурация",
|
|
1012
|
+
"files.glyph.data": "Данные / манифест",
|
|
1013
|
+
"files.glyph.database": "База данных",
|
|
1014
|
+
"files.glyph.deps": "Зависимости",
|
|
1015
|
+
"files.glyph.docker": "Docker",
|
|
1016
|
+
"files.glyph.docs": "Документы",
|
|
1017
|
+
"files.glyph.document": "Документ",
|
|
1018
|
+
"files.glyph.font": "Шрифт",
|
|
1019
|
+
"files.glyph.hidden": "Каталог метаданных",
|
|
1020
|
+
"files.glyph.ignore": "Игнорировать правила",
|
|
1021
|
+
"files.glyph.lang.c": "C",
|
|
1022
|
+
"files.glyph.lang.cpp": "C++",
|
|
1023
|
+
"files.glyph.lang.csharp": "C#",
|
|
1024
|
+
"files.glyph.lang.dart": "Dart",
|
|
1025
|
+
"files.glyph.lang.go": "Перейти",
|
|
1026
|
+
"files.glyph.lang.html": "HTML",
|
|
1027
|
+
"files.glyph.lang.java": "Java",
|
|
1028
|
+
"files.glyph.lang.js": "JavaScript",
|
|
1029
|
+
"files.glyph.lang.kotlin": "Kotlin",
|
|
1030
|
+
"files.glyph.lang.lua": "Lua",
|
|
1031
|
+
"files.glyph.lang.php": "PHP",
|
|
1032
|
+
"files.glyph.lang.ruby": "Рубин",
|
|
1033
|
+
"files.glyph.lang.rust": "Ржавчина",
|
|
1034
|
+
"files.glyph.lang.scala": "Скала",
|
|
1035
|
+
"files.glyph.lang.svelte": "Свелт",
|
|
1036
|
+
"files.glyph.lang.swift": "Быстро",
|
|
1037
|
+
"files.glyph.lang.ts": "TypeScript",
|
|
1038
|
+
"files.glyph.lang.vue": "Вью",
|
|
1039
|
+
"files.glyph.license": "Лицензия",
|
|
1040
|
+
"files.glyph.lock": "Файл блокировки",
|
|
1041
|
+
"files.glyph.log": "Войти",
|
|
1042
|
+
"files.glyph.markdown": "Документ с разметкой",
|
|
1043
|
+
"files.glyph.media": "Медиа",
|
|
1044
|
+
"files.glyph.notebook": "Блокнот",
|
|
1045
|
+
"files.glyph.python": "Питон",
|
|
1046
|
+
"files.glyph.root": "Корневая папка рабочей области",
|
|
1047
|
+
"files.glyph.scripts": "Скрипты",
|
|
1048
|
+
"files.glyph.sheet": "Таблица",
|
|
1049
|
+
"files.glyph.shell": "Оболочка",
|
|
1050
|
+
"files.glyph.style": "Стили",
|
|
1051
|
+
"files.glyph.tests": "Тесты",
|
|
1052
|
+
"files.hits": "{n} попаданий",
|
|
1053
|
+
"files.kind.all": "Все",
|
|
1054
|
+
"files.kind.image": "Изображения",
|
|
1055
|
+
"files.kind.read": "Читать",
|
|
1056
|
+
"files.kind.search": "Искали",
|
|
1057
|
+
"files.kind.write": "Написано",
|
|
1058
|
+
"files.locate": "Показать эту операцию в Обозревателе контекста",
|
|
1059
|
+
"files.noMatch": "Нет файлов, соответствующих текущим фильтрам",
|
|
1060
|
+
"files.open": "Открыть на вашем устройстве",
|
|
1061
|
+
"files.readEst": "Строк прочитано, оценка на основе аргумента limit",
|
|
1062
|
+
"files.readTip": "Прочитайте строки {a}–{b}",
|
|
1063
|
+
"files.scopeLatest": "До последнего · следует за выбором трендового графика",
|
|
1064
|
+
"files.search": "Фильтровать по пути…",
|
|
1065
|
+
"files.sort.count": "Самый активный",
|
|
1066
|
+
"files.sort.latest": "Последние",
|
|
1067
|
+
"files.sort.path": "По пути",
|
|
1068
|
+
"files.sortTip": "Сортировать файлы по количеству операций (выбранного вида при активной метке вида), последней активности или пути",
|
|
1069
|
+
"files.title": "Активность файла",
|
|
741
1070
|
"footer": "Оценка: та же эвристика с фиксированной плотностью, что и встроенный tokenMeter в dsh (~4 символа ≈ 1 токен); «фактическое» — это использование, сообщаемое провайдером.",
|
|
742
1071
|
"form.catalog": "Обновление каталога",
|
|
743
1072
|
"form.context": "Контекстная инъекция",
|
|
@@ -746,16 +1075,22 @@ window.__ModuleLoader__.load({
|
|
|
746
1075
|
"form.recall": "Напомнить",
|
|
747
1076
|
"form.relay": "Агентский ретранслятор",
|
|
748
1077
|
"form.snapshot": "Снимок состояния",
|
|
1078
|
+
"gran.delta": "Дельта",
|
|
1079
|
+
"gran.modeHint": "Итого: суммарное значение; Дельта: изменение по сравнению с предыдущим запросом",
|
|
749
1080
|
"gran.step": "Шаг",
|
|
1081
|
+
"gran.total": "Всего",
|
|
750
1082
|
"gran.turn": "Повернуть",
|
|
751
1083
|
"kind.compaction": "Компактный",
|
|
752
1084
|
"kind.inject": "Внедрить",
|
|
1085
|
+
"kind.mode": "Режим",
|
|
753
1086
|
"kind.model": "Переключить",
|
|
754
1087
|
"kind.prune": "Обрезать",
|
|
755
1088
|
"loading": "Чтение журнала сессии…",
|
|
756
1089
|
"node.calls": "Звонки",
|
|
757
1090
|
"node.empty": "(пустой ответ)",
|
|
1091
|
+
"node.failed": "Выполнение инструмента завершилось с ошибкой",
|
|
758
1092
|
"node.nonText": "(сообщение без текста)",
|
|
1093
|
+
"node.skillTag": "Навык · {name}",
|
|
759
1094
|
"node.snapshot": "Снимок:",
|
|
760
1095
|
"node.toolResult": "Результат инструмента",
|
|
761
1096
|
"nodes.empty": "Нет видимых сообщений прямо сейчас",
|
|
@@ -776,6 +1111,14 @@ window.__ModuleLoader__.load({
|
|
|
776
1111
|
"rich.raw": "Сырьё",
|
|
777
1112
|
"rich.toMd": "Просмотреть как Markdown",
|
|
778
1113
|
"rich.toRaw": "Просмотреть исходный текст",
|
|
1114
|
+
"settings.collapse": "Свернуть",
|
|
1115
|
+
"settings.desc": "Настройки отображения для панели Context",
|
|
1116
|
+
"settings.expand": "Развернуть",
|
|
1117
|
+
"settings.fileSort": "Сортировка файлов по умолчанию",
|
|
1118
|
+
"settings.gran": "Гранулярность трендов по умолчанию",
|
|
1119
|
+
"settings.mode": "Отображение трендов по умолчанию",
|
|
1120
|
+
"settings.readOnly": "Настройки доступны только для чтения в этой среде",
|
|
1121
|
+
"settings.title": "Контекст",
|
|
779
1122
|
"stats.cacheHit": "Кэш-попадания",
|
|
780
1123
|
"stats.compactions": "Компактизации",
|
|
781
1124
|
"stats.cost": "Расч. стоимость",
|
|
@@ -785,21 +1128,32 @@ window.__ModuleLoader__.load({
|
|
|
785
1128
|
"stats.costPriceHead": "Тарифы за 1 миллион токенов (пиковый | внепиковый по половине цены):",
|
|
786
1129
|
"stats.costTip": "Примерная совокупная стоимость всей сессии по прайс-листу DeepSeek: входные данные разделены по попаданию/промаху кэша, выходные данные включают рассуждения; каждый запрос оценивается по пиковой ставке (01:00–04:00, 06:00–10:00 UTC) или по половинной ставке вне пикового времени в зависимости от времени запроса. Применяется к deepseek-v4-flash / deepseek-v4-pro на любом провайдере; цены зафиксированы, только для справки.",
|
|
787
1130
|
"stats.hint": "За период сохранённой истории (аналогично графику истории)",
|
|
1131
|
+
"stats.images": "Изображения",
|
|
788
1132
|
"stats.injects": "Инъекции",
|
|
789
1133
|
"stats.prunes": "Чернослив",
|
|
790
1134
|
"stats.steps": "Шаги",
|
|
791
1135
|
"stats.title": "Статистика контекста",
|
|
1136
|
+
"stats.toolCalls": "Вызовы инструментов",
|
|
792
1137
|
"stats.turns": "Переключается",
|
|
793
1138
|
"tab": "Контекст",
|
|
794
1139
|
"tip.actual": "(фактическое {n})",
|
|
1140
|
+
"tip.delta": "Дельта {n}",
|
|
795
1141
|
"tip.step": "Повернуть {t} · Шаг {s}",
|
|
796
1142
|
"tip.total": "Всего ≈ {n}",
|
|
797
1143
|
"tip.turn": "Поверните {t} · {n} шагов",
|
|
798
1144
|
"tool.desc": "Описание",
|
|
799
1145
|
"tool.jsonHide": "Свернуть",
|
|
800
1146
|
"tool.jsonToggle": "Просмотреть сырой JSON",
|
|
1147
|
+
"tool.noMatch": "Нет инструментов, соответствующих текущему фильтру",
|
|
801
1148
|
"tool.params": "Параметры",
|
|
802
1149
|
"tool.paramsEmpty": "(без параметров)",
|
|
1150
|
+
"tool.plugin": "Регистрирующий плагин этого инструмента (для справки)",
|
|
1151
|
+
"tool.search": "Фильтровать по названию, описанию или параметрам…",
|
|
1152
|
+
"tool.sort.name": "По имени",
|
|
1153
|
+
"tool.sort.size": "По размеру",
|
|
1154
|
+
"tool.sortTip": "Сортировать инструменты по размеру токена (по умолчанию) или по названию",
|
|
1155
|
+
"tool.unknown": "Неизвестный плагин",
|
|
1156
|
+
"tool.unknownTitle": "Инструмент был зарегистрирован до загрузки контекстного плагина, или его плагин был выгружен, поэтому его провайдер не может быть определен",
|
|
803
1157
|
"tools.more": "из {n}",
|
|
804
1158
|
"tools.top": "Лучшие схемы инструментов:",
|
|
805
1159
|
"trend.empty": "Отправьте сообщение, и состав контекста каждого запроса модели появится здесь",
|
|
@@ -863,6 +1217,45 @@ window.__ModuleLoader__.load({
|
|
|
863
1217
|
"settings.unavailable": "Обвязка еще не опубликовала настройки этого плагина. Если она только что перезапустилась, раздел появится сам через несколько секунд.",
|
|
864
1218
|
"settings.unsaved": "Несохранённые изменения"
|
|
865
1219
|
},
|
|
1220
|
+
"dsh-key-limits": {
|
|
1221
|
+
"activeNoSession": "сессия",
|
|
1222
|
+
"activeNone": "—",
|
|
1223
|
+
"add": "Добавить",
|
|
1224
|
+
"addKey": "Добавить ключ",
|
|
1225
|
+
"allSub": "Все ключи",
|
|
1226
|
+
"allTitle": "Лимиты подписки",
|
|
1227
|
+
"balance": "Баланс",
|
|
1228
|
+
"cancel": "Отмена",
|
|
1229
|
+
"close": "Закрыть",
|
|
1230
|
+
"dataPath": "Данные: ~/.dsh/storages/dsh-key-limits/",
|
|
1231
|
+
"delete": "Удалить",
|
|
1232
|
+
"deleteConfirm": "Удалить ключ «",
|
|
1233
|
+
"errTitle": "Ограничения ключа: ошибка интерфейса",
|
|
1234
|
+
"extra": "Дополнительно",
|
|
1235
|
+
"fillFields": "Заполните:",
|
|
1236
|
+
"floatTitle": "Лимиты клавиш — клик: все, перетаскивание: перемещение",
|
|
1237
|
+
"labelOptional": "Метка (необязательно)",
|
|
1238
|
+
"loading": "Загрузка…",
|
|
1239
|
+
"noQuota": "Нет данных о квоте",
|
|
1240
|
+
"noSubs": "Ключей пока нет",
|
|
1241
|
+
"oneTitle": "Лимиты активных ключей",
|
|
1242
|
+
"pctLeft": "слева",
|
|
1243
|
+
"pickDash": "— выбрать —",
|
|
1244
|
+
"pickProvider": "Выберите провайдера",
|
|
1245
|
+
"refresh": "Обновить",
|
|
1246
|
+
"refreshAll": "Обновить все",
|
|
1247
|
+
"refreshing": "Обновление…",
|
|
1248
|
+
"remaining": "осталось",
|
|
1249
|
+
"retry": "Повторить",
|
|
1250
|
+
"save": "Сохранить",
|
|
1251
|
+
"saveError": "ошибка сохранения",
|
|
1252
|
+
"secret": "Секрет / ключ",
|
|
1253
|
+
"stale": "устаревший",
|
|
1254
|
+
"subtitle": "API-ключи и квоты подписки",
|
|
1255
|
+
"title": "Лимиты ключей",
|
|
1256
|
+
"uiHint": "Плавающий чип и строка компоновки — интерфейс cordis.",
|
|
1257
|
+
"updated": "Обновлено"
|
|
1258
|
+
},
|
|
866
1259
|
"dsh-market": {
|
|
867
1260
|
"actWhy": "Почему не активен?",
|
|
868
1261
|
"agentBusyInstall": "Агент в настоящее время работает — дождитесь завершения (или отмените его) перед установкой. Установка изменяет файлы плагина, поэтому работающий агент может завершиться с ошибкой в процессе.",
|
|
@@ -948,6 +1341,13 @@ window.__ModuleLoader__.load({
|
|
|
948
1341
|
"checkWarnings": "Предупреждения",
|
|
949
1342
|
"checkWarningsEmpty": "Предупреждений нет",
|
|
950
1343
|
"cmdDetails": "Команда установки",
|
|
1344
|
+
"comments": "Комментарии",
|
|
1345
|
+
"commentsError": "Не удалось загрузить комментарии. Проверьте подключение и попробуйте снова.",
|
|
1346
|
+
"commentsLoading": "Загрузка комментариев…",
|
|
1347
|
+
"commentsNote": "Комментарии поступают из GitHub Discussions. Открытие этого подключается к giscus.app и GitHub; для публикации требуется аккаунт GitHub.",
|
|
1348
|
+
"commentsOnGitHub": "Прочитайте обсуждение на GitHub",
|
|
1349
|
+
"commentsRetry": "Попробуйте снова",
|
|
1350
|
+
"commentsTitle": "Комментарии",
|
|
951
1351
|
"compatRiskBanner": "Обнаружен риск несовместимости — откройте Диагностику перед перезапуском или откатите эту операцию.",
|
|
952
1352
|
"confirm": "Подтвердить",
|
|
953
1353
|
"confirmInstall": "Подтвердить установку",
|
|
@@ -1073,6 +1473,21 @@ window.__ModuleLoader__.load({
|
|
|
1073
1473
|
"nextPage": "Дальше",
|
|
1074
1474
|
"noGroups": "Групп пока нет — создайте",
|
|
1075
1475
|
"notInstalled": "Не установлен",
|
|
1476
|
+
"noteAdd": "Заметка",
|
|
1477
|
+
"noteEdit": "Редактировать заметку",
|
|
1478
|
+
"noteMine": "Моя заметка",
|
|
1479
|
+
"notePlaceholder": "Опишите это своими словами. Это заменит описание автора.",
|
|
1480
|
+
"noteSave": "Сохранить",
|
|
1481
|
+
"noteSeeMine": "Вернуться к моей заметке",
|
|
1482
|
+
"noteSeeTheirs": "Показать описание автора",
|
|
1483
|
+
"noteTheirs": "Оригинал",
|
|
1484
|
+
"notesCommits": "Коммиты",
|
|
1485
|
+
"notesCommitsRecent": "Последние коммиты (могут не совпадать с установленной версией — только для справки)",
|
|
1486
|
+
"notesLink": "Что изменилось",
|
|
1487
|
+
"notesLoadFail": "Обновления сейчас недоступны — попробуйте позже.",
|
|
1488
|
+
"notesNone": "Этот плагин не публикует заметки об обновлениях.",
|
|
1489
|
+
"notesNpm": "Время публикации версии",
|
|
1490
|
+
"notesRelease": "Заметки о выпуске",
|
|
1076
1491
|
"opBlockedCard": "Невозможно установить · подробности",
|
|
1077
1492
|
"opClear": "Очистить выполненные",
|
|
1078
1493
|
"opClose": "Свернуть",
|
|
@@ -1108,6 +1523,7 @@ window.__ModuleLoader__.load({
|
|
|
1108
1523
|
"orderSuggestHint": "Предложенный порядок (отсортирован по правилам before/after):",
|
|
1109
1524
|
"orderTrialFail": "Статическая проверка композиции не прошла: {0}",
|
|
1110
1525
|
"orderUp": "↑",
|
|
1526
|
+
"orphanBundle": "⚠️ Следующий запуск завершится ошибкой: профиль объявляет эти пакеты, но они не установлены. Переустановите их или удалите из dsh.profile.bundles в файле package.json профиля:",
|
|
1111
1527
|
"orphanIdRequired": "нет идентификатора",
|
|
1112
1528
|
"orphanInsertNotArray": "неверный формат",
|
|
1113
1529
|
"orphanInsertTargetMissing": "цель не найдена",
|
|
@@ -1312,6 +1728,228 @@ window.__ModuleLoader__.load({
|
|
|
1312
1728
|
"webdavUrl": "Адрес файла копии",
|
|
1313
1729
|
"webdavUser": "Имя пользователя (необязательно)"
|
|
1314
1730
|
},
|
|
1731
|
+
"dsh-skill-hub": {
|
|
1732
|
+
"badge.source.bundled": "в комплекте",
|
|
1733
|
+
"badge.source.custom": "Пользовательский",
|
|
1734
|
+
"badge.source.project-agents": "проект .агенты",
|
|
1735
|
+
"badge.source.project-dsh": "проект .dsh",
|
|
1736
|
+
"badge.source.runtime": "время выполнения",
|
|
1737
|
+
"badge.source.user-agents": "пользователь .агенты",
|
|
1738
|
+
"badge.source.user-dsh": "пользователь .dsh",
|
|
1739
|
+
"delete.confirm": "Переместить в корзину",
|
|
1740
|
+
"delete.confirmText": "Переместить \"{name}\" в корзину? Его можно будет восстановить в любое время.",
|
|
1741
|
+
"delete.confirmTitle": "Переместить в корзину?",
|
|
1742
|
+
"detail.addedAt": "Добавлено",
|
|
1743
|
+
"detail.back": "Назад к списку",
|
|
1744
|
+
"detail.groups": "Группы",
|
|
1745
|
+
"detail.loading": "Загрузка тела навыка…",
|
|
1746
|
+
"detail.path": "Путь",
|
|
1747
|
+
"detail.provider": "Провайдер",
|
|
1748
|
+
"detail.updatedAt": "Обновлено",
|
|
1749
|
+
"detail.whenToUse": "Когда использовать",
|
|
1750
|
+
"entry.label": "Навыки",
|
|
1751
|
+
"entry.tooltip": "Центр навыков: просматривайте, группируйте и синхронизируйте локальные навыки",
|
|
1752
|
+
"err.dismiss": "Скрыть",
|
|
1753
|
+
"filter.allSources": "Все источники",
|
|
1754
|
+
"filter.private": "Личное",
|
|
1755
|
+
"form.busy": "Создание…",
|
|
1756
|
+
"form.cancel": "Отмена",
|
|
1757
|
+
"form.capabilityHint": "Выбор способности: повторяемый метод → навык; внешняя система → MCP; долгосрочные знания → база знаний.",
|
|
1758
|
+
"form.desc": "Описание (одно предложение о маршрутизации)",
|
|
1759
|
+
"form.descPlaceholder": "Одна строка о том, что она делает (с триггерными словами) — агенты автоматически активируются из этого",
|
|
1760
|
+
"form.error": "Создание не удалось:",
|
|
1761
|
+
"form.name": "Название навыка (в формате kebab-case, например, code-review)",
|
|
1762
|
+
"form.root": "Целевой корень",
|
|
1763
|
+
"form.submit": "Создать",
|
|
1764
|
+
"form.success": "Создано:",
|
|
1765
|
+
"group.bundled": "В комплекте",
|
|
1766
|
+
"group.custom": "Пользовательские каталоги",
|
|
1767
|
+
"group.other": "Другие источники",
|
|
1768
|
+
"group.project-agents": "Проект .agents/навыки",
|
|
1769
|
+
"group.project-dsh": "Проект .dsh/навыки",
|
|
1770
|
+
"group.runtime": "Время выполнения",
|
|
1771
|
+
"group.user-agents": "Пользователь ~/.agents/skills",
|
|
1772
|
+
"group.user-dsh": "Пользователь ~/.dsh/skills",
|
|
1773
|
+
"groups.closeAll": "Закрыть все",
|
|
1774
|
+
"groups.conflictText": "Эти навыки также активированы в других группах; их отключение повлияет на эти группы:",
|
|
1775
|
+
"groups.conflictTitle": "Закрыть эту группу?",
|
|
1776
|
+
"groups.delete": "Удалить сцену",
|
|
1777
|
+
"groups.edit": "Редактировать",
|
|
1778
|
+
"groups.empty": "Сцен пока нет. Создайте одну и начните классифицировать навыки.",
|
|
1779
|
+
"groups.keepOn": "Продолжать",
|
|
1780
|
+
"groups.membersHint": "Выберите навыки для добавления в эту сцену (включая отключенные навыки).",
|
|
1781
|
+
"groups.merge": "Объединить",
|
|
1782
|
+
"groups.namePlaceholder": "Название сцены",
|
|
1783
|
+
"groups.new": "Новая сцена",
|
|
1784
|
+
"groups.noCollections": "Пока нет групп источников. Импортируйте навыки с рынка, чтобы сгруппировать их по источникам.",
|
|
1785
|
+
"groups.noWritable": "Нет доступных для записи навыков в этой группе (навыки только для чтения нельзя переключить из хаба)",
|
|
1786
|
+
"groups.personal": "Личное",
|
|
1787
|
+
"groups.project": "Проект",
|
|
1788
|
+
"groups.rename": "Сохранить имя",
|
|
1789
|
+
"groups.saveMembers": "Сохранить участников",
|
|
1790
|
+
"groups.subdivide": "Разделить",
|
|
1791
|
+
"legend.hint": "Не более одной точки на навык; отсутствие точки = нельзя вызвать.",
|
|
1792
|
+
"legend.model": "Модель, доступная для вызова — агенты могут вызывать автоматически",
|
|
1793
|
+
"legend.user": "Пользовательский вызов — только явный вызов",
|
|
1794
|
+
"market.add": "Добавить",
|
|
1795
|
+
"market.addPlaceholder": "владелец/репозиторий или https://github.com/…",
|
|
1796
|
+
"market.addSource": "Добавить источник",
|
|
1797
|
+
"market.branchConfirm": "Подтвердить",
|
|
1798
|
+
"market.branchHint": "В этом репозитории нет релизов. Выберите ветку для отслеживания (по умолчанию main):",
|
|
1799
|
+
"market.branchTitle": "Выберите ветку",
|
|
1800
|
+
"market.catalog.anthropics": "Официальная коллекция навыков Anthropic (Claude Skills)",
|
|
1801
|
+
"market.catalog.mattpocock": "Коллекция навыков Matt Pocock",
|
|
1802
|
+
"market.catalog.openDesign": "Коллекция навыков дизайна (design-templates)",
|
|
1803
|
+
"market.catalog.superpowers": "Коллекция навыков сообщества Superpowers",
|
|
1804
|
+
"market.catalogHint": "Кураторские репозитории навыков — добавьте один для сканирования и установки с проверкой обновлений.",
|
|
1805
|
+
"market.check": "Проверить",
|
|
1806
|
+
"market.checkAll": "Проверить все",
|
|
1807
|
+
"market.checkUpdate": "Проверить наличие обновлений",
|
|
1808
|
+
"market.checking": "Проверка…",
|
|
1809
|
+
"market.deleteSource": "Удалить источник",
|
|
1810
|
+
"market.deletedUpstream": "{count} удалённых вышестоящих",
|
|
1811
|
+
"market.installed": "{count} установлено",
|
|
1812
|
+
"market.newRelease": "Новый релиз v{version}",
|
|
1813
|
+
"market.noSources": "Нет источников рынка. Добавьте один из встроенного каталога ниже или введите репозиторий GitHub.",
|
|
1814
|
+
"market.removeHint": "Удаление источника не влияет на установленные навыки.",
|
|
1815
|
+
"market.scan": "Сканировать",
|
|
1816
|
+
"market.scanning": "Сканирование…",
|
|
1817
|
+
"market.sync": "Синхронизация",
|
|
1818
|
+
"market.syncCancel": "Пропустить",
|
|
1819
|
+
"market.syncNone": "Локальные навыки из этого репозитория еще не отслеживаются.",
|
|
1820
|
+
"market.syncText": "Источник рынка согласован с {ref}. Обновить эти локальные навыки?",
|
|
1821
|
+
"market.syncTitle": "Обновить локальные навыки",
|
|
1822
|
+
"market.syncing": "Синхронизация…",
|
|
1823
|
+
"market.title": "Рынок",
|
|
1824
|
+
"market.upToDate": "Обновлено",
|
|
1825
|
+
"market.updatable": "{count} доступно для обновления",
|
|
1826
|
+
"market.update": "Обновить",
|
|
1827
|
+
"market.updateAll": "Обновить все",
|
|
1828
|
+
"market.updateAllConfirmText": "Обновляемые навыки этих источников будут перезаписаны их последними версиями из вышестоящих репозиториев:",
|
|
1829
|
+
"market.updateAllConfirmTitle": "Обновить каждый навык?",
|
|
1830
|
+
"market.updateAllDone": "Обновлено {count} источников",
|
|
1831
|
+
"market.updateAllItem": "{repo} ({count} навыков)",
|
|
1832
|
+
"market.updateCount": "Обновить {count}",
|
|
1833
|
+
"market.updated": "Доступны обновления",
|
|
1834
|
+
"panel.count": "{count} навыков всего",
|
|
1835
|
+
"panel.diagnostics": "Диагностика обнаружения",
|
|
1836
|
+
"panel.disabled": "Отключено",
|
|
1837
|
+
"panel.disabledCount": "{count} отключено",
|
|
1838
|
+
"panel.empty": "Нет подходящих навыков.",
|
|
1839
|
+
"panel.emptyAll": "Ещё не установлено ни одного навыка. Создайте первый.",
|
|
1840
|
+
"panel.enabled": "Включено",
|
|
1841
|
+
"panel.incomplete": "(каталог может быть неполным)",
|
|
1842
|
+
"panel.loading": "Загрузка…",
|
|
1843
|
+
"panel.new": "Новый навык",
|
|
1844
|
+
"panel.search": "Поиск навыков…",
|
|
1845
|
+
"panel.title": "Центр навыков",
|
|
1846
|
+
"panel.workspaceClear": "Очистить рабочую область",
|
|
1847
|
+
"panel.workspaceHint": "Введите путь к проекту, чтобы также отобразить навыки из .dsh/skills и .agents/skills этого рабочего пространства (только для чтения); очистите + Enter, чтобы вернуться к пользовательскому представлению.",
|
|
1848
|
+
"panel.workspacePlaceholder": "Путь к рабочей области (нажмите Enter для применения)",
|
|
1849
|
+
"repo.cancel": "Отмена",
|
|
1850
|
+
"repo.cancelled": "Отменено · {imported}/{total} сохранено, временные файлы удалены",
|
|
1851
|
+
"repo.clearAll": "Очистить",
|
|
1852
|
+
"repo.empty": "Импортируемые навыки не найдены.",
|
|
1853
|
+
"repo.existing": "Существующий",
|
|
1854
|
+
"repo.failed": "Не удалось {count}",
|
|
1855
|
+
"repo.files": "{count} файлов · {size}",
|
|
1856
|
+
"repo.import": "Импортировать выбранные ({count})",
|
|
1857
|
+
"repo.imported": "Импортировано {count}",
|
|
1858
|
+
"repo.importing": "Импорт…",
|
|
1859
|
+
"repo.importingCurrent": "Импорт: {name} ({done}/{total})",
|
|
1860
|
+
"repo.ready": "Найдено {count} импортируемых навыков",
|
|
1861
|
+
"repo.root.designTemplates": "Шаблоны дизайна {design-templates}",
|
|
1862
|
+
"repo.root.generic": "{root}",
|
|
1863
|
+
"repo.root.skills": "Навыки",
|
|
1864
|
+
"repo.selectAll": "Выбрать все",
|
|
1865
|
+
"repo.skippedExisting": "Пропущено существующих {count}",
|
|
1866
|
+
"row.delete": "Переместить в корзину",
|
|
1867
|
+
"row.disable": "Отключить",
|
|
1868
|
+
"row.enable": "Включить",
|
|
1869
|
+
"row.open": "Просмотреть детали {name} (Enter)",
|
|
1870
|
+
"row.readonly": "только для чтения",
|
|
1871
|
+
"settings.announceToAgent": "Сообщить агенту",
|
|
1872
|
+
"settings.announceToAgentHint": "Добавляет раздел с системным приглашением, чтобы агенты знали, как взаимодействовать, когда пользователи упоминают управление навыками.",
|
|
1873
|
+
"settings.collapse": "Скрыть настройки",
|
|
1874
|
+
"settings.description": "Управляйте локальным каталогом навыков dsh: просматривайте, группируйте, синхронизируйте и создавайте шаблоны навыков.",
|
|
1875
|
+
"settings.discard": "Отменить",
|
|
1876
|
+
"settings.dotModelColor": "Цвет точки, доступной для вызова модели",
|
|
1877
|
+
"settings.dotModelColorHint": "Цвет синей точки «model-callable» в панели навыков и чате / меню (#rrggbb).",
|
|
1878
|
+
"settings.dotUserColor": "Цвет точки, вызываемый пользователем",
|
|
1879
|
+
"settings.dotUserColorHint": "Цвет зелёной точки «только для пользователя» на панели навыков и в чате / меню (#rrggbb).",
|
|
1880
|
+
"settings.enabled": "Включить плагин",
|
|
1881
|
+
"settings.enabledHint": "Отключает маршруты хаба, записи и объявления.",
|
|
1882
|
+
"settings.expand": "Показать настройки",
|
|
1883
|
+
"settings.inherit": "Наследовать",
|
|
1884
|
+
"settings.notExposed": "Это развертывание не предоставляет доступ к пространству имен настроек.",
|
|
1885
|
+
"settings.off": "Выключено",
|
|
1886
|
+
"settings.on": "Включено",
|
|
1887
|
+
"settings.overridden": "Переопределено",
|
|
1888
|
+
"settings.readOnly": "Это развертывание сохраняет настройки только для чтения.",
|
|
1889
|
+
"settings.reset": "Сбросить до значений по умолчанию",
|
|
1890
|
+
"settings.save": "Сохранить",
|
|
1891
|
+
"settings.saveFailed": "Развертывание не приняло эти значения; они были оставлены для вас, чтобы исправить.",
|
|
1892
|
+
"settings.saving": "Сохранение…",
|
|
1893
|
+
"settings.showGroupSummary": "Показать сводки групп",
|
|
1894
|
+
"settings.showGroupSummaryHint": "Обобщить количество вызовов и время последнего использования после заголовков групп.",
|
|
1895
|
+
"settings.showUseCount": "Показать количество вызовов",
|
|
1896
|
+
"settings.showUseCountHint": "Показывать количество янтарных призывов рядом с названием каждого навыка.",
|
|
1897
|
+
"settings.showUseTime": "Показать время последнего использования",
|
|
1898
|
+
"settings.showUseTimeHint": "Показывать относительное время последнего использования в строке имени (например, \"3 дн. назад\").",
|
|
1899
|
+
"settings.statsScanMinutes": "Интервал автостатистики (минуты)",
|
|
1900
|
+
"settings.statsScanMinutesHint": "Как часто выполняется сканирование журнала сеансов в фоновом режиме (минимум 1); интенсивные сканирования автоматически увеличивают интервал.",
|
|
1901
|
+
"settings.statsWindowDays": "Окно статистики (дни)",
|
|
1902
|
+
"settings.statsWindowDaysHint": "Учитывать использование только за последние N дней (по умолчанию 14); 0 = полная история. Изменения применяются сразу.",
|
|
1903
|
+
"settings.title": "Центр навыков",
|
|
1904
|
+
"settings.unsaved": "Не сохранено",
|
|
1905
|
+
"sort.added": "Добавлено",
|
|
1906
|
+
"sort.name": "По имени",
|
|
1907
|
+
"source.check": "Проверить наличие обновлений",
|
|
1908
|
+
"source.checkHint": "Нажмите, чтобы проверить наличие обновлений в вышестоящем репозитории",
|
|
1909
|
+
"source.checking": "Проверка…",
|
|
1910
|
+
"source.clearTrash": "Очистить корзину",
|
|
1911
|
+
"source.clearTrashConfirm": "Удалить навсегда",
|
|
1912
|
+
"source.clearTrashConfirmText": "Навыки в корзине будут удалены навсегда и не могут быть восстановлены.",
|
|
1913
|
+
"source.clearTrashConfirmTitle": "Очистить корзину?",
|
|
1914
|
+
"source.commit": "Синхронизированный коммит",
|
|
1915
|
+
"source.deleteConfirmText": "Эти навыки были удалены в основном репозитории; их локальные папки перемещены в корзину (можно восстановить):",
|
|
1916
|
+
"source.deleteConfirmTitle": "Следовать удалению вышестоящего?",
|
|
1917
|
+
"source.deleteGroup": "Удалить группу",
|
|
1918
|
+
"source.deleteGroupHint": "Удалить все {count} навыки в этой группе",
|
|
1919
|
+
"source.deleteGroupText": "Все {count} навыки в группе \"{name}\" будут перемещены в корзину (восстановление возможно); навыки только для чтения будут пропущены:",
|
|
1920
|
+
"source.deleteGroupTitle": "Удалить группу?",
|
|
1921
|
+
"source.deleted": "{count} удалённых вышестоящих",
|
|
1922
|
+
"source.error": "Проверка не пройдена",
|
|
1923
|
+
"source.private": "Личный навык (не привязан к вышестоящему источнику; проверка обновлений отсутствует)",
|
|
1924
|
+
"source.restore": "Восстановить",
|
|
1925
|
+
"source.sync": "Синхронизация",
|
|
1926
|
+
"source.syncConfirmText": "Это перезаписывает локальные изменения этих навыков последней версией из основного репозитория:",
|
|
1927
|
+
"source.syncConfirmTitle": "Синхронизировать навыки?",
|
|
1928
|
+
"source.syncing": "Синхронизация…",
|
|
1929
|
+
"source.throttled": "Проверено недавно",
|
|
1930
|
+
"source.trash": "Корзина",
|
|
1931
|
+
"source.unverified": "upstream еще не проверен",
|
|
1932
|
+
"source.upToDate": "Обновлено",
|
|
1933
|
+
"source.updated": "{count} обновлений",
|
|
1934
|
+
"time.daysAgo": "{value} д. назад",
|
|
1935
|
+
"time.hoursAgo": "{value} ч назад",
|
|
1936
|
+
"time.justNow": "только что",
|
|
1937
|
+
"time.minutesAgo": "{value} мин. назад",
|
|
1938
|
+
"time.weeksAgo": "{value} недель назад",
|
|
1939
|
+
"update.available": "Доступно обновление: v{version} (текущая v{current})",
|
|
1940
|
+
"update.check": "Проверить наличие обновлений",
|
|
1941
|
+
"update.checking": "Проверка…",
|
|
1942
|
+
"update.error": "Не удалось проверить обновление: {error}",
|
|
1943
|
+
"update.newVersion": "Новая версия v{version}",
|
|
1944
|
+
"update.unavailable": "Нет доступного релиза",
|
|
1945
|
+
"update.upToDate": "Актуальная версия: v{version}",
|
|
1946
|
+
"update.viewRelease": "Просмотр релиза",
|
|
1947
|
+
"view.flat": "Плоский",
|
|
1948
|
+
"view.grouped": "Сгруппировано",
|
|
1949
|
+
"view.market": "Рынок",
|
|
1950
|
+
"view.scenes": "Сцены",
|
|
1951
|
+
"view.sources": "Источники"
|
|
1952
|
+
},
|
|
1315
1953
|
"dsh-subscriptions": {
|
|
1316
1954
|
"accountLabel": "Аккаунт",
|
|
1317
1955
|
"addAccount": "+ Добавить аккаунт",
|
|
@@ -1830,6 +2468,11 @@ window.__ModuleLoader__.load({
|
|
|
1830
2468
|
"activeAccount": "Активный аккаунт",
|
|
1831
2469
|
"activeAccountAuto": "Авто (первый доступный аккаунт)",
|
|
1832
2470
|
"activeAccountHint": "Закрепите предпочтительный аккаунт; применяется к следующему запросу после сохранения. Если выбранный аккаунт исчерпан, запросы будут перенаправлены на другой доступный аккаунт.",
|
|
2471
|
+
"advancedInvalid": "Число в расширенных настройках не готово к сохранению; раскройте, чтобы исправить.",
|
|
2472
|
+
"advancedOverriddenMany": "{count} настроено",
|
|
2473
|
+
"advancedOverriddenOne": "1 настроенный",
|
|
2474
|
+
"advancedSettings": "Дополнительно",
|
|
2475
|
+
"advancedSettingsHint": "Редко используемые параметры: базовый URL API, рабочая директория, тайм-ауты и фильтрация моделей.",
|
|
1833
2476
|
"apiBase": "Базовый URL API",
|
|
1834
2477
|
"apiBaseHint": "По умолчанию используется https://api.commandcode.ai; обычно оставляйте как есть.",
|
|
1835
2478
|
"apiKey": "API-ключ",
|
|
@@ -1838,6 +2481,11 @@ window.__ModuleLoader__.load({
|
|
|
1838
2481
|
"apiKeySet": "Настроено",
|
|
1839
2482
|
"apiKeyUnset": "Не настроено",
|
|
1840
2483
|
"cancel": "Отмена",
|
|
2484
|
+
"cardConfiguredHint": "API-ключ готов. Чтобы заменить его, добавить ротацию аккаунтов, проверить использование или изменить базовый API, откройте страницу \"Command Code\" в Настройках.",
|
|
2485
|
+
"cardLoadingHint": "Загрузка конфигурации командного кода…",
|
|
2486
|
+
"cardRegistrationHint": "Эта карта предоставлена плагином Command Code; для отображения всех элементов управления требуется более новая версия DeepSeek Harness.",
|
|
2487
|
+
"cardRouteActive": "Активный",
|
|
2488
|
+
"cardTitle": "Подключение командного кода",
|
|
1841
2489
|
"discard": "Отменить",
|
|
1842
2490
|
"filterModelsByPlan": "Скрыть модели вне тарифного плана",
|
|
1843
2491
|
"filterModelsByPlanHint": "Если включено, в выборе моделей отображаются только те, что входят в вашу подписку; при наличии баланса кредитов по запросу показывается полный каталог.",
|
|
@@ -2477,14 +3125,73 @@ window.__ModuleLoader__.load({
|
|
|
2477
3125
|
"view.usage": "Статистика"
|
|
2478
3126
|
},
|
|
2479
3127
|
"usageStats": {
|
|
3128
|
+
"account.balanceMode": "Баланс API",
|
|
3129
|
+
"account.blocked": "Запрос к учетной записи был заблокирован локальной политикой безопасности. Проверьте настройки HTTPS, same-origin и private-network.",
|
|
3130
|
+
"account.health.age": "Возраст данных",
|
|
3131
|
+
"account.health.lastAttempt": "Последняя попытка",
|
|
3132
|
+
"account.health.lastSuccess": "Последний успех",
|
|
3133
|
+
"account.health.provenance": "Источник",
|
|
3134
|
+
"account.invalidResponse": "Провайдер вернул нераспознанные данные о квоте.",
|
|
3135
|
+
"account.loading": "Загрузка поставщиков…",
|
|
3136
|
+
"account.provenance.configured": "Настроено",
|
|
3137
|
+
"account.provenance.experimental": "Экспериментальный",
|
|
3138
|
+
"account.provenance.official": "Официальный API",
|
|
3139
|
+
"account.provenance.provider": "API провайдера",
|
|
3140
|
+
"account.provenance.unknown": "Неизвестно",
|
|
3141
|
+
"account.provider": "Текущий провайдер",
|
|
3142
|
+
"account.reason.allAddressesUnreachable": "Ни один из проверенных сетевых адресов не доступен.",
|
|
3143
|
+
"account.reason.blockedNetwork": "Запрос на учетную запись был заблокирован политикой локальной сети.",
|
|
3144
|
+
"account.reason.dnsResolutionFailed": "Имя хоста поставщика не удалось разрешить.",
|
|
3145
|
+
"account.reason.noValidatedAddress": "Не было доступно ни одного проверенного адреса поставщика.",
|
|
3146
|
+
"account.reason.rateLimited": "Провайдер ограничил проверку аккаунтов по частоте запросов.",
|
|
3147
|
+
"account.reason.sub2apiBalanceShapeUnrecognized": "Конечная точка баланса Sub2API вернула данные в нераспознанном формате.",
|
|
3148
|
+
"account.reason.timeout": "Запрос аккаунта завершился по тайм-ауту.",
|
|
3149
|
+
"account.reason.unauthorized": "Учетные данные аккаунта были отклонены.",
|
|
3150
|
+
"account.reason.unknown": "Проверка учетной записи завершилась неудачей без безопасного диагностического сообщения.",
|
|
3151
|
+
"account.reason.upstreamInvalidJson": "Вверх по течению возвращен нечитаемый JSON",
|
|
3152
|
+
"account.reason.upstreamInvalidResponse": "Восходящий поток вернул нераспознанный ответ.",
|
|
3153
|
+
"account.reason.upstreamNotJson": "Ответ вышестоящего сервера не был в формате JSON",
|
|
3154
|
+
"account.reason.upstreamTooLarge": "Ответ от вышестоящего сервера превысил допустимый размер.",
|
|
3155
|
+
"account.status.blocked": "Заблокировано",
|
|
3156
|
+
"account.status.invalidResponse": "Неверный ответ",
|
|
3157
|
+
"account.status.loading": "Загрузка",
|
|
3158
|
+
"account.status.stale": "Устаревшие данные",
|
|
3159
|
+
"account.status.unknown": "Неизвестно",
|
|
3160
|
+
"account.title": "Аккаунт провайдера",
|
|
3161
|
+
"action.close": "Закрыть",
|
|
3162
|
+
"action.nextMonth": "Следующий месяц",
|
|
3163
|
+
"action.prevMonth": "Предыдущий месяц",
|
|
3164
|
+
"action.refresh": "Обновить",
|
|
3165
|
+
"action.retry": "Повторить",
|
|
3166
|
+
"action.today": "Сегодня",
|
|
3167
|
+
"balance.available": "доступно",
|
|
3168
|
+
"balance.error": "Не удалось получить баланс: {message}",
|
|
3169
|
+
"balance.granted": "Предоставлено",
|
|
3170
|
+
"balance.loading": "Получение баланса…",
|
|
3171
|
+
"balance.noCredential": "{ref} не настроен (отредактируйте ~/.dsh/.credentials.yaml)",
|
|
3172
|
+
"balance.noSchemeTag": "нет баланса API",
|
|
3173
|
+
"balance.provider": "Провайдер",
|
|
3174
|
+
"balance.remaining": "Доступный баланс",
|
|
3175
|
+
"balance.title": "Баланс счета",
|
|
3176
|
+
"balance.toppedUp": "Пополнено",
|
|
3177
|
+
"balance.total": "Общий баланс",
|
|
3178
|
+
"balance.unavailable": "недоступно",
|
|
3179
|
+
"balance.unsupported": "У этого провайдера нет публичного интерфейса для проверки баланса.",
|
|
3180
|
+
"balance.used": "Использовано",
|
|
2480
3181
|
"billing.monthly": "≈ {amount}/мес",
|
|
2481
3182
|
"billing.parts": "Композиция",
|
|
2482
3183
|
"billing.projected": "Прогнозируемое использование на конец месяца",
|
|
2483
3184
|
"billing.tokenOnly": "расчет на основе использования",
|
|
2484
3185
|
"billing.total": "Ориентировочные ежемесячные траты",
|
|
2485
3186
|
"budget.exceeded": "превышен бюджет",
|
|
3187
|
+
"budget.level.critical": "Превышение бюджета",
|
|
3188
|
+
"budget.level.normal": "Обычный",
|
|
3189
|
+
"budget.level.unknown": "Неполная стоимость",
|
|
3190
|
+
"budget.level.warning": "Близко к бюджету",
|
|
2486
3191
|
"budget.over": "{pct}% бюджета использовано",
|
|
3192
|
+
"budget.period.monthly": "Ожидаемый за этот месяц",
|
|
2487
3193
|
"budget.remaining": "осталось",
|
|
3194
|
+
"budget.summary": "{period}: {spent} / {limit} · {level}",
|
|
2488
3195
|
"budget.title": "Ежемесячный бюджет",
|
|
2489
3196
|
"budget.used": "использовано",
|
|
2490
3197
|
"col.cacheRead": "Чтение кэша",
|
|
@@ -2522,6 +3229,13 @@ window.__ModuleLoader__.load({
|
|
|
2522
3229
|
"details.open": "Открыть подробности в новом окне",
|
|
2523
3230
|
"details.title": "Детали звонка · сессия × модель",
|
|
2524
3231
|
"details.updated": "Обновлено",
|
|
3232
|
+
"duration.daysHours": "{days}д {hours}ч",
|
|
3233
|
+
"duration.hoursMinutes": "{hours}ч {minutes}м",
|
|
3234
|
+
"duration.minutes": "{minutes}м",
|
|
3235
|
+
"export.dailyCsv": "Ежедневный CSV",
|
|
3236
|
+
"export.json": "Полный JSON",
|
|
3237
|
+
"export.sessionsCsv": "Сессии CSV",
|
|
3238
|
+
"export.title": "Экспорт без секретов",
|
|
2525
3239
|
"filter.all": "Все рабочие пространства",
|
|
2526
3240
|
"filter.scope": "Фильтровать статистику по одной рабочей директории",
|
|
2527
3241
|
"footnote.disclaimer": "Стоимость рассчитана на основе установленных тарифов и не является счетом.",
|
|
@@ -2536,6 +3250,12 @@ window.__ModuleLoader__.load({
|
|
|
2536
3250
|
"heatmap.title": "Тепловая карта активности (52 недели)",
|
|
2537
3251
|
"heatmap.wed": "Ср",
|
|
2538
3252
|
"lastUpdated": "Обновлено",
|
|
3253
|
+
"month.names": "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек",
|
|
3254
|
+
"month.year": "{month} {year}",
|
|
3255
|
+
"orcarouter.addError": "Не удалось добавить OrcaRouter. Пожалуйста, попробуйте ещё раз.",
|
|
3256
|
+
"orcarouter.choiceSuffix": "(Спонсированная интеграция)",
|
|
3257
|
+
"panel.badge": "Использование/Баланс",
|
|
3258
|
+
"panel.updatedAt": "Обновлено в {time}",
|
|
2539
3259
|
"perf.empty": "Нет данных о производительности (отсутствуют временные метки в журналах)",
|
|
2540
3260
|
"perf.est": "прибл.",
|
|
2541
3261
|
"perf.latencyAvg": "Средняя задержка",
|
|
@@ -2580,6 +3300,27 @@ window.__ModuleLoader__.load({
|
|
|
2580
3300
|
"state.error": "Не удалось загрузить",
|
|
2581
3301
|
"state.loading": "Вычисление…",
|
|
2582
3302
|
"state.retry": "Повторить",
|
|
3303
|
+
"subscription.error": "Не удалось использовать подписку: {message}",
|
|
3304
|
+
"subscription.loading": "Получение данных об использовании подписки…",
|
|
3305
|
+
"subscription.notConfigured": "Настройте {refs} для отображения текущего использования подписки.",
|
|
3306
|
+
"subscription.planUnknown": "План подписки",
|
|
3307
|
+
"subscription.rateLimited": "Провайдер ограничивает частоту проверок; попробуйте позже.",
|
|
3308
|
+
"subscription.resets": "Сбросится через {time}",
|
|
3309
|
+
"subscription.status.notConfigured": "Не настроено",
|
|
3310
|
+
"subscription.status.ok": "В прямом эфире",
|
|
3311
|
+
"subscription.status.rateLimited": "Ограничение по частоте запросов",
|
|
3312
|
+
"subscription.status.unauthorized": "Войдите снова",
|
|
3313
|
+
"subscription.status.unavailable": "Недоступно",
|
|
3314
|
+
"subscription.title": "Использование подписки",
|
|
3315
|
+
"subscription.unauthorized": "Учетные данные истекли; обновите их и повторите попытку.",
|
|
3316
|
+
"subscription.unavailable": "Провайдер не вернул распознаваемых окон квот.",
|
|
3317
|
+
"subscription.used": "{value}% использовано",
|
|
3318
|
+
"subscription.window.daily": "Ежедневное окно",
|
|
3319
|
+
"subscription.window.mcp": "Ежемесячная квота MCP",
|
|
3320
|
+
"subscription.window.monthly": "Ежемесячное окно",
|
|
3321
|
+
"subscription.window.quota": "Общая квота",
|
|
3322
|
+
"subscription.window.session": "5-часовое окно",
|
|
3323
|
+
"subscription.window.weekly": "Еженедельное окно",
|
|
2583
3324
|
"summary.activeDays": "Активные дни",
|
|
2584
3325
|
"summary.avgCost": "Среднее / вызов",
|
|
2585
3326
|
"summary.cacheHit": "Процент попаданий в кеш",
|
|
@@ -2602,6 +3343,31 @@ window.__ModuleLoader__.load({
|
|
|
2602
3343
|
"today.empty": "Сегодня звонков еще не было",
|
|
2603
3344
|
"today.title": "Сегодняшние токены и стоимость",
|
|
2604
3345
|
"today.tokens": "Токены сегодня",
|
|
3346
|
+
"usage.back": "Назад",
|
|
3347
|
+
"usage.cacheRead": "Чтение кэша",
|
|
3348
|
+
"usage.error": "Агрегация использования не удалась: {message}",
|
|
3349
|
+
"usage.heatmap": "Ежедневное использование в этом месяце",
|
|
3350
|
+
"usage.hit.today": "Сегодняшний процент попаданий в кэш",
|
|
3351
|
+
"usage.hitRate": "Кэш-попадание",
|
|
3352
|
+
"usage.input": "Ввод",
|
|
3353
|
+
"usage.legendLess": "Меньше",
|
|
3354
|
+
"usage.legendMore": "Ещё",
|
|
3355
|
+
"usage.loading": "Агрегирование использования…",
|
|
3356
|
+
"usage.month": "В этом месяце",
|
|
3357
|
+
"usage.noModels": "Нет данных по моделям за этот день.",
|
|
3358
|
+
"usage.output": "Вывод",
|
|
3359
|
+
"usage.recent": "Последние 14 дней",
|
|
3360
|
+
"usage.title": "Использование токенов",
|
|
3361
|
+
"usage.today": "Сегодня",
|
|
3362
|
+
"usage.total": "За всё время",
|
|
3363
|
+
"usage.unknownModel": "Неизвестная модель",
|
|
3364
|
+
"weekday.fri": "Ф",
|
|
3365
|
+
"weekday.mon": "М",
|
|
3366
|
+
"weekday.sat": "С",
|
|
3367
|
+
"weekday.sun": "С",
|
|
3368
|
+
"weekday.thu": "Т",
|
|
3369
|
+
"weekday.tue": "Т",
|
|
3370
|
+
"weekday.wed": "В",
|
|
2605
3371
|
"widget.close": "Свернуть",
|
|
2606
3372
|
"widget.hint": "Использование токенов & примерная стоимость",
|
|
2607
3373
|
"widget.hoverHint": "Нажмите, чтобы развернуть",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "Russian localization for the DeepSeek Harness web UI: adds Русский as the third option in the native Settings - General - Language menu. Translates the full core surface (100% coverage of DSH 0.1.1-rc.2) plus 16 community plugin namespaces - 52 namespaces, 2795 strings (many machine-drafted, queued for manual review), with Russian plural forms, count-key plurals, a typography pass (guillemets, em dash, nbsp), a wrong-layout input hint and browser spellcheck. The locale runtime snapshot is extended at runtime on unpatched cores; no files in the DSH installation are modified. The choice is persisted through the plugin-owned russian-lang namespace.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|