@goodandready/dsh-russian-lang 0.2.6 → 0.2.7

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-russian-lang",
3
- "version": "0.2.6",
4
- "description": "Russian localization for the DeepSeek Harness web UI: adds Русский as the third option in the native Settings - General - Language menu. Translates the full core surface (100% coverage of DSH 0.1.1-rc.2) plus 16 community plugin namespaces - 51 namespaces, 2899 strings (about 64% hand-reviewed, the rest machine-drafted and tracked as status: draft), with Russian plural forms, count-key plurals, a typography pass (guillemets, em dash, nbsp), a wrong-layout input hint and browser spellcheck. The locale runtime snapshot is extended at runtime on unpatched cores; no files in the DSH installation are modified. The choice is persisted through the plugin-owned russian-lang namespace.",
3
+ "version": "0.2.7",
4
+ "description": "Russian localization for DeepSeek Harness (DSH v0.1.5-alpha.1+) web UI: adds Русский as the native language option in Settings - General - Language. 100.0% coverage across 5395 keys (1144 core UI keys + 4251 keys across 40+ ecosystem plugins) with zero machine drafts. Features Russian plural forms (one/few/many), automatic typography pass (guillemets, em dashes, non-breaking spaces, optional ё), wrong-layout input hint (Alt+L), browser spellcheck, and runtime snapshot extension without modifying core files.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -96,13 +96,26 @@
96
96
  },
97
97
  "command": {
98
98
  "listbox.aria": "Совпадения /{command}",
99
- "notice.imagesUnsupported": "/{command} не принимает вложения-изображения сначала удалите их",
99
+ "notice.imagesUnsupported": "/{command} не принимает изображения; сначала удалите их",
100
100
  "overlay.aria": "Параметры /{command}",
101
101
  "search.aria": "Фильтр параметров",
102
102
  "search.placeholder": "Поиск…",
103
103
  "status.applying": "Применение…",
104
104
  "status.empty": "Нет параметров",
105
- "status.loading": "Загрузка параметров…"
105
+ "status.loading": "Загрузка параметров…",
106
+ "executing": "Выполнение команды…",
107
+ "completed": "Команда завершена",
108
+ "failed": "Сбой выполнения команды",
109
+ "cancelled": "Команда отменена",
110
+ "timeout": "Превышено время ожидания команды",
111
+ "running": "Выполняется",
112
+ "description.compact": "Сжать раннюю историю диалога",
113
+ "description.export": "Скачать журнал сессии в формате ZIP-архива",
114
+ "description.feedback": "Оставить отзыв о текущей сессии",
115
+ "description.goal": "Установить или просмотреть цель для длительной задачи",
116
+ "description.permission": "Переключить пресет разрешений (режим песочницы и политики подтверждений)",
117
+ "description.plan": "Войти или выйти из режима планирования",
118
+ "notice.attachmentsUnsupported": "/{command} не принимает вложения; сначала удалите их"
106
119
  },
107
120
  "session-log-download": {
108
121
  "dialog.close": "Закрыть",
@@ -216,7 +216,51 @@
216
216
  "web.contentTruncated": "Содержимое обрезано",
217
217
  "web.http": "HTTP",
218
218
  "web.noResults": "Ничего не найдено",
219
- "web.sourcesTruncated": "Список источников обрезан"
219
+ "web.sourcesTruncated": "Список источников обрезан",
220
+ "action.copy": "Копировать сообщение",
221
+ "action.fork": "Ответвить диалог с этой реплики",
222
+ "action.quote": "Цитировать",
223
+ "action.retry": "Повторить генерацию",
224
+ "action.delete": "Удалить сообщение",
225
+ "action.edit": "Редактировать сообщение",
226
+ "status.thinking": "Рассуждение…",
227
+ "status.generating": "Генерация ответа…",
228
+ "status.toolRunning": "Вызов инструмента: {name}",
229
+ "status.interrupted": "Генерация прервана пользователем",
230
+ "tokenUsage": "Токены: {used} / {limit}",
231
+ "contextWindow": "Окно контекста: {percent}%",
232
+ "costEstimate": "Оценочная стоимость: ${cost}",
233
+ "timeElapsed": "Затрачено времени: {time}",
234
+ "modelChanged": "Модель переключена на {model}",
235
+ "presetApplied": "Применён пресет: {preset}",
236
+ "sandboxActive": "Песочница: {mode}",
237
+ "export.title": "Экспорт диалога",
238
+ "export.markdown": "Экспорт в Markdown",
239
+ "export.json": "Экспорт в JSON",
240
+ "turn.number": "Реплика #{n}",
241
+ "turn.details": "Сведения о реплике",
242
+ "attachment.dropBlocked": "В настоящий момент добавление файлов и изображений заблокировано",
243
+ "attachment.dropDesc": "Лимит изображений: до {count} шт., до {size} каждое",
244
+ "attachment.dropTitle": "Перетащите файлы или изображения сюда для добавления",
245
+ "attachment.pending": "Ожидающие вложения",
246
+ "attachment.scrollLeft": "Прокрутить вложения влево",
247
+ "attachment.scrollRight": "Прокрутить вложения вправо",
248
+ "command.attachmentsUnsupported": "/{command} не принимает вложения; сначала удалите их",
249
+ "file.attach": "Прикрепить файл",
250
+ "file.label": "Файл",
251
+ "file.notStaged": "Загрузка файла не завершена; прикрепите заново и повторите попытку",
252
+ "file.pending": "Ожидающие файлы",
253
+ "file.remove": "Удалить файл {name}",
254
+ "file.retry": "Повторить загрузку {name}",
255
+ "file.sessionUnavailable": "Сессия недоступна; загрузка файлов невозможна",
256
+ "file.stillUploading": "Файлы всё ещё загружаются; отправьте сообщение после завершения загрузки",
257
+ "file.uploadFailed": "Сбой загрузки; нажмите для повтора",
258
+ "file.uploading": "Загрузка…",
259
+ "input.send.queue": "Поставить в очередь",
260
+ "input.send.steer": "Направить сообщение",
261
+ "queue.file": "Файл в очереди: {name}",
262
+ "queue.sending": "Отправка…",
263
+ "tool.title.readImage": "Просмотр изображения"
220
264
  },
221
265
  "chat": {
222
266
  "chat.deepDiving": "Глубокий анализ…",
@@ -234,19 +278,19 @@
234
278
  "command.failed": "Команда завершилась с ошибкой",
235
279
  "command.running": "Выполняется…",
236
280
  "command.title": "Команда",
237
- "details.close": "Закрыть сведения",
238
- "details.empty": "Нажмите на строку инструмента в потоке сообщений для просмотра сведений",
281
+ "details.close": "Закрыть детали",
282
+ "details.empty": "Нет дополнительных сведений",
239
283
  "details.input": "Входные данные",
240
- "details.notInWindow": "Этот вызов находится за пределами текущего окна",
241
- "details.output": "Вывод",
284
+ "details.notInWindow": "Реплика за пределами текущего окна контекста",
285
+ "details.output": "Результат",
242
286
  "details.running": "Выполняется…",
243
- "details.title": "Сведения",
287
+ "details.title": "Детали выполнения",
244
288
  "duration.compactMinutes": "{minutes}м {seconds}с",
245
289
  "duration.compactSeconds": "{seconds}с",
246
290
  "duration.milliseconds": "{milliseconds}мс",
247
291
  "duration.minutes": "{minutes}м {seconds}с",
248
292
  "duration.seconds": "{seconds}с",
249
- "fileOpen.folderTitle": "Не удалось открыть папку",
293
+ "fileOpen.folderTitle": "Открыть папку",
250
294
  "fileOpen.folderUnknown": "Не удалось открыть эту папку",
251
295
  "fileOpen.title": "Не удалось открыть файл",
252
296
  "fileOpen.unknown": "Не удалось открыть этот файл",
@@ -328,7 +372,14 @@
328
372
  "stats.tokensPerSecond": "{throughput} ток./с",
329
373
  "stats.toolCall": "Инструмент {duration}",
330
374
  "stats.ttftAverage": "TTFT ср. {duration}",
331
- "view.chat": "Чат"
375
+ "view.chat": "Чат",
376
+ "message.systemPromptUpdate": "Обновление системного промпта",
377
+ "stats.dialog.llmTime": "Время LLM",
378
+ "stats.dialog.speed": "Токенов в секунду (TPS)",
379
+ "stats.dialog.title": "Статистика сессии",
380
+ "stats.dialog.toolTime": "Время инструментов",
381
+ "stats.dialog.ttft": "Среднее время до первого токена (TTFT)",
382
+ "stats.dialog.usageTitle": "Использование токенов"
332
383
  },
333
384
  "trajectory": {
334
385
  "block.label": "Блок #{index} {type}",
@@ -771,7 +822,8 @@
771
822
  "usage.sessionCumulative": "Session cumulative",
772
823
  "usage.thisRequest": "This request",
773
824
  "usage.tokens": "Токены",
774
- "view.trajectory": "Trajectory"
825
+ "view.trajectory": "Trajectory",
826
+ "layout.fileAttachments": "Файлы ×{count}"
775
827
  },
776
828
  "slash.menu": {
777
829
  "crumbs.aria": "Навигация по папкам",
package/ru/06-rest.json CHANGED
@@ -1,144 +1,237 @@
1
1
  {
2
- "model": {
3
- "action.reload": "Обновить",
4
- "blocked.composer": "Эта модель недоступна — выберите другую, чтобы продолжить",
5
- "command.description": "Выбрать модель для этого диалога",
6
- "effort.providerDefault": "По умолчанию",
7
- "empty.efforts": "У этой модели нет уровней рассуждения.",
8
- "empty.models": "Доступных моделей нет.",
9
- "error.action": "Операция с моделью не удалась: {message}",
10
- "menu.aria": "Модель и уровень рассуждения",
11
- "menu.effort": "Уровень рассуждений",
12
- "menu.model": "Модель",
13
- "option.loadError": "Каталог не загрузился: {message}",
14
- "status.loading": "Обновление списка моделей…",
15
- "trigger.aria": "Выбор модели, сейчас {model}",
16
- "trigger.ariaEffort": "Выбор модели, сейчас {model}, уровень рассуждения {effort}",
17
- "trigger.fallback": "Выбрать модель",
18
- "trigger.selectAria": "Выбрать модель",
19
- "warning.groupLoad": "{name} не загрузился: {message}"
20
- },
21
- "job": {
22
- "count.idle.one": "{count} фоновая задача",
23
- "count.idle.few": "{count} фоновые задачи",
24
- "count.idle.many": "{count} фоновых задач",
25
- "count.idle.other": "{count} фоновых задач",
26
- "count.live.one": "{count} фоновая задача выполняется",
27
- "count.live.few": "{count} фоновые задачи выполняется",
28
- "count.live.many": "{count} фоновых задач выполняется",
29
- "count.live.other": "{count} фоновых задач выполняется",
30
- "duration.hours": "{hours} ч {minutes} мин",
31
- "duration.minutes": "{minutes} мин {seconds} с",
32
- "duration.seconds": "{seconds} с",
33
- "duration.title.done": "Заняло {duration}",
34
- "duration.title.live": "Выполняется {duration}",
35
- "list.aria": "Фоновые задачи",
36
- "status.completed": "завершена",
37
- "status.failed": "ошибка",
38
- "status.killed": "отменена",
39
- "status.running": "выполняется",
40
- "status.stopping": "останавливается"
41
- },
42
- "trajectory": {
43
- "toolbar.actualTime": "Реальное время",
44
- "toolbar.aria": "Панель траектории",
45
- "toolbar.calls": "Вызовы",
46
- "toolbar.collapseCalls": "Свернуть вызовы",
47
- "toolbar.collapseTurns": "Свернуть ходы",
48
- "toolbar.duration": "Длительность",
49
- "toolbar.expandCalls": "Развернуть вызовы",
50
- "toolbar.expandTurns": "Развернуть ходы",
51
- "toolbar.search": "Поиск по траектории",
52
- "toolbar.searchPlaceholder": "Поиск",
53
- "toolbar.turns": "Ходы",
54
- "toolbar.useActualDuration": "По реальной длительности",
55
- "toolbar.useEqualWidth": "Операции равной ширины",
56
- "view.trajectory": "Траектория"
57
- },
58
- "directory-browser": {
59
- "browser.cancel": "Отмена",
60
- "browser.create": "Создать",
61
- "browser.createIn": "Новая папка в «{name}»",
62
- "browser.editPath": "Изменить путь",
63
- "browser.folderName": "Имя папки",
64
- "browser.home": "Домашняя папка",
65
- "browser.loading": "Загрузка…",
66
- "browser.newFolder": "Новая папка",
67
- "browser.open": "Открыть",
68
- "browser.showHidden": "Показывать скрытые файлы",
69
- "browser.title": "Выбор рабочей папки",
70
- "browser.truncated": "Слишком много папок; показано только начало.",
71
- "browser.untitledFolder": "Без имени"
72
- },
73
- "question": {
74
- "action.next": "Дальше",
75
- "action.skip": "Пропустить вопрос",
76
- "custom.placeholder": "Впишите свой ответ",
77
- "error.incomplete": "Сначала ответьте на этот вопрос.",
78
- "error.unanswered": "Выберите вариант или впишите свой ответ.",
79
- "nav.cancel": "Закрыть все вопросы",
80
- "nav.maximize": "Развернуть карточку вопроса",
81
- "nav.minimize": "Свернуть карточку вопроса",
82
- "nav.next": "Следующий вопрос",
83
- "nav.prev": "Предыдущий вопрос",
84
- "option.recommended": "Рекомендуем",
85
- "plan.approve": "Утвердить",
86
- "plan.decline": "Отклонить",
87
- "plan.discuss": "Обсудить",
88
- "plan.header": "Проверка плана"
89
- },
90
- "feedback": {
91
- "action.dislike": "Плохой ответ",
92
- "action.dislikeActive": "Убрать оценку",
93
- "action.like": "Хороший ответ",
94
- "action.likeActive": "Убрать оценку",
95
- "error.conflict": "Эту оценку изменили в другом месте; показано актуальное состояние",
96
- "error.generic": "Не удалось сохранить оценку",
97
- "error.load": "Не удалось загрузить оценку",
98
- "note.aria": "Комментарий к оценке",
99
- "note.cancel": "Отмена",
100
- "note.dialog": "Отзыв",
101
- "note.open": "Добавить комментарий",
102
- "note.placeholder": "Что получилось хорошо, а что нет? (необязательно)",
103
- "note.save": "Сохранить"
104
- },
105
- "reference": {
106
- "candidate.file": "Файл",
107
- "candidate.folder": "Папка",
108
- "candidate.noCwd": "(нет cwd)",
109
- "candidate.session": "Сессия",
110
- "section.files": "Файлы и папки",
111
- "section.sessions": "Диалоги сессий"
112
- },
113
- "goal": {
114
- "action.cancel": "Отменить правку",
115
- "action.clear": "Снять цель",
116
- "action.edit": "Изменить цель",
117
- "action.pause": "Приостановить цель",
118
- "action.resume": "Продолжить цель",
119
- "action.save": "Сохранить цель",
120
- "commandInput.aria": "Ввод команды",
121
- "objective.aria": "Формулировка цели",
122
- "phase.active": "Цель в работе",
123
- "phase.blocked": "Цель заблокирована",
124
- "phase.paused": "Цель на паузе"
125
- },
126
- "settings.permission": {
127
- "confirm.acknowledge": "Я понимаю риски и хочу продолжить",
128
- "confirm.cancel": "Отмена",
129
- "confirm.description": "Полный доступ позволяет новым сессиям реже спрашивать подтверждение и действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете будущим задачам.",
130
- "confirm.enable": "Включить полный доступ",
131
- "confirm.title": "Включить полный доступ?",
132
- "description": "Режим разрешений по умолчанию для новых сессий",
133
- "loading": "Загрузка",
134
- "title": "Разрешения",
135
- "unavailable": "Недоступно"
136
- },
137
- "permission.access": {
138
- "confirm.acknowledge": "Я понимаю риски и хочу продолжить",
139
- "confirm.cancel": "Отмена",
140
- "confirm.description": "Полный доступ убирает часть подтверждений и позволяет агенту действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете текущей задаче.",
141
- "confirm.enable": "Включить полный доступ",
142
- "confirm.title": "Включить полный доступ?"
143
- }
2
+ "model": {
3
+ "action.reload": "Обновить",
4
+ "blocked.composer": "Эта модель недоступна — выберите другую, чтобы продолжить",
5
+ "command.description": "Выбрать модель для этого диалога",
6
+ "effort.providerDefault": "По умолчанию",
7
+ "empty.efforts": "У этой модели нет уровней рассуждения.",
8
+ "empty.models": "Доступных моделей нет.",
9
+ "error.action": "Операция с моделью не удалась: {message}",
10
+ "menu.aria": "Модель и уровень рассуждения",
11
+ "menu.effort": "Уровень рассуждений",
12
+ "menu.model": "Модель",
13
+ "option.loadError": "Каталог не загрузился: {message}",
14
+ "status.loading": "Обновление списка моделей…",
15
+ "trigger.aria": "Выбор модели, сейчас {model}",
16
+ "trigger.ariaEffort": "Выбор модели, сейчас {model}, уровень рассуждения {effort}",
17
+ "trigger.fallback": "Выбрать модель",
18
+ "trigger.selectAria": "Выбрать модель",
19
+ "warning.groupLoad": "{name} не загрузился: {message}"
20
+ },
21
+ "job": {
22
+ "count.idle.one": "{count} фоновая задача",
23
+ "count.idle.few": "{count} фоновые задачи",
24
+ "count.idle.many": "{count} фоновых задач",
25
+ "count.idle.other": "{count} фоновых задач",
26
+ "count.live.one": "{count} фоновая задача выполняется",
27
+ "count.live.few": "{count} фоновые задачи выполняется",
28
+ "count.live.many": "{count} фоновых задач выполняется",
29
+ "count.live.other": "{count} фоновых задач выполняется",
30
+ "duration.hours": "{hours} ч {minutes} мин",
31
+ "duration.minutes": "{minutes} мин {seconds} с",
32
+ "duration.seconds": "{seconds} с",
33
+ "duration.title.done": "Заняло {duration}",
34
+ "duration.title.live": "Выполняется {duration}",
35
+ "list.aria": "Фоновые задачи",
36
+ "status.completed": "завершена",
37
+ "status.failed": "ошибка",
38
+ "status.killed": "отменена",
39
+ "status.running": "выполняется",
40
+ "status.stopping": "останавливается"
41
+ },
42
+ "trajectory": {
43
+ "toolbar.actualTime": "Реальное время",
44
+ "toolbar.aria": "Панель траектории",
45
+ "toolbar.calls": "Вызовы",
46
+ "toolbar.collapseCalls": "Свернуть вызовы",
47
+ "toolbar.collapseTurns": "Свернуть ходы",
48
+ "toolbar.duration": "Длительность",
49
+ "toolbar.expandCalls": "Развернуть вызовы",
50
+ "toolbar.expandTurns": "Развернуть ходы",
51
+ "toolbar.search": "Поиск по траектории",
52
+ "toolbar.searchPlaceholder": "Поиск",
53
+ "toolbar.turns": "Ходы",
54
+ "toolbar.useActualDuration": "По реальной длительности",
55
+ "toolbar.useEqualWidth": "Операции равной ширины",
56
+ "view.trajectory": "Траектория"
57
+ },
58
+ "directory-browser": {
59
+ "browser.cancel": "Отмена",
60
+ "browser.create": "Создать",
61
+ "browser.createIn": "Новая папка в «{name}»",
62
+ "browser.editPath": "Изменить путь",
63
+ "browser.folderName": "Имя папки",
64
+ "browser.home": "Домашняя папка",
65
+ "browser.loading": "Загрузка…",
66
+ "browser.newFolder": "Новая папка",
67
+ "browser.open": "Открыть",
68
+ "browser.showHidden": "Показывать скрытые файлы",
69
+ "browser.title": "Выбор рабочей папки",
70
+ "browser.truncated": "Слишком много папок; показано только начало.",
71
+ "browser.untitledFolder": "Без имени"
72
+ },
73
+ "question": {
74
+ "action.next": "Дальше",
75
+ "action.skip": "Пропустить вопрос",
76
+ "custom.placeholder": "Впишите свой ответ",
77
+ "error.incomplete": "Сначала ответьте на этот вопрос.",
78
+ "error.unanswered": "Выберите вариант или впишите свой ответ.",
79
+ "nav.cancel": "Закрыть все вопросы",
80
+ "nav.maximize": "Развернуть карточку вопроса",
81
+ "nav.minimize": "Свернуть карточку вопроса",
82
+ "nav.next": "Следующий вопрос",
83
+ "nav.prev": "Предыдущий вопрос",
84
+ "option.recommended": "Рекомендуем",
85
+ "plan.approve": "Утвердить",
86
+ "plan.decline": "Отклонить",
87
+ "plan.discuss": "Обсудить",
88
+ "plan.header": "Проверка плана"
89
+ },
90
+ "feedback": {
91
+ "action.dislike": "Плохой ответ",
92
+ "action.dislikeActive": "Убрать оценку",
93
+ "action.like": "Хороший ответ",
94
+ "action.likeActive": "Убрать оценку",
95
+ "error.conflict": "Эту оценку изменили в другом месте; показано актуальное состояние",
96
+ "error.generic": "Не удалось сохранить оценку",
97
+ "error.load": "Не удалось загрузить оценку",
98
+ "note.aria": "Комментарий к оценке",
99
+ "note.cancel": "Отмена",
100
+ "note.dialog": "Отзыв",
101
+ "note.open": "Добавить комментарий",
102
+ "note.placeholder": "Что получилось хорошо, а что нет? (необязательно)",
103
+ "note.save": "Сохранить"
104
+ },
105
+ "reference": {
106
+ "candidate.file": "Файл",
107
+ "candidate.folder": "Папка",
108
+ "candidate.noCwd": "(нет cwd)",
109
+ "candidate.session": "Сессия",
110
+ "section.files": "Файлы и папки",
111
+ "section.sessions": "Диалоги сессий"
112
+ },
113
+ "goal": {
114
+ "action.cancel": "Отменить правку",
115
+ "action.clear": "Снять цель",
116
+ "action.edit": "Изменить цель",
117
+ "action.pause": "Приостановить цель",
118
+ "action.resume": "Продолжить цель",
119
+ "action.save": "Сохранить цель",
120
+ "commandInput.aria": "Ввод команды",
121
+ "objective.aria": "Формулировка цели",
122
+ "phase.active": "Цель в работе",
123
+ "phase.blocked": "Цель заблокирована",
124
+ "phase.paused": "Цель на паузе",
125
+ "title": "Цели диалога",
126
+ "phase.active.disarmed": "Неактивная цель"
127
+ },
128
+ "settings.permission": {
129
+ "confirm.acknowledge": "Я понимаю риски и хочу продолжить",
130
+ "confirm.cancel": "Отмена",
131
+ "confirm.description": "Полный доступ позволяет новым сессиям реже спрашивать подтверждение и действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете будущим задачам.",
132
+ "confirm.enable": "Включить полный доступ",
133
+ "confirm.title": "Включить полный доступ?",
134
+ "description": "Режим разрешений по умолчанию для новых сессий",
135
+ "loading": "Загрузка",
136
+ "title": "Разрешения",
137
+ "unavailable": "Недоступно"
138
+ },
139
+ "permission.access": {
140
+ "confirm.acknowledge": "Я понимаю риски и хочу продолжить",
141
+ "confirm.cancel": "Отмена",
142
+ "confirm.description": "Полный доступ убирает часть подтверждений и позволяет агенту действовать напрямую, включая чувствительные операции, изменение файлов и внешние команды. Включайте, только если доверяете текущей задаче.",
143
+ "confirm.enable": "Включить полный доступ",
144
+ "confirm.title": "Включить полный доступ?"
145
+ },
146
+ "sidebarRight": {
147
+ "chrome.collapse": "Свернуть панель",
148
+ "chrome.exitFullscreen": "Выйти из полноэкранного режима",
149
+ "chrome.expand": "Развернуть панель",
150
+ "chrome.toFullscreen": "На весь экран",
151
+ "dock.addTab": "Добавить вкладку",
152
+ "dock.closeFloat": "Закрыть плавающее окно",
153
+ "dock.closeTab": "Закрыть вкладку",
154
+ "dock.dockFloat": "Закрепить в панели",
155
+ "dock.float": "Открепить в окно",
156
+ "dock.moreTabs": "Ещё вкладки",
157
+ "dock.nextTab": "Следующая вкладка",
158
+ "dock.prevTab": "Предыдущая вкладка",
159
+ "dock.reopenClosed": "Открыть закрытую вкладку",
160
+ "dock.splitHoriz": "Разделить по горизонтали",
161
+ "dock.splitVert": "Разделить по вертикали",
162
+ "dock.tabMenu": "Меню вкладки",
163
+ "dock.emptyPane": "Пустая панель",
164
+ "dock.splitPane": "Разделить вправо",
165
+ "dock.splitPaneDisabled": "Максимум две панели",
166
+ "dock.splitPaneNarrow": "Недостаточно ширины для разделения; увеличьте боковую панель",
167
+ "guide.body": "Файлы и артефакты из диалога открываются в этой колонке; элементы ниже открывают больше возможностей.",
168
+ "guide.lead": "В боковой панели отображается то, к чему вам нужен постоянный доступ.",
169
+ "tab.guide.title": "Начало",
170
+ "tab.unavailable": "Пока нет средств для отображения данного типа содержимого."
171
+ },
172
+ "sidebarFiles": {
173
+ "empty": "Файлы не найдены",
174
+ "filter.all": "Все файлы",
175
+ "filter.changed": "Изменённые",
176
+ "filter.placeholder": "Фильтр файлов…",
177
+ "menu.copyPath": "Копировать относительный путь",
178
+ "menu.copyFullPath": "Копировать полный путь",
179
+ "menu.delete": "Удалить",
180
+ "menu.openInEditor": "Открыть в редакторе",
181
+ "menu.rename": "Переименовать",
182
+ "menu.reveal": "Показать в проводнике",
183
+ "refresh": "Обновить дерево файлов",
184
+ "title": "Файлы рабочей области",
185
+ "tree.root": "Корень проекта",
186
+ "entry.other": "Не является файлом или папкой и не может быть открыт.",
187
+ "error.notDirectory": "Указанный путь не является каталогом.",
188
+ "error.notFound": "Каталог больше не существует. Возможно, он был перемещён или удалён.",
189
+ "error.outsideWorkspace": "Каталог находится за пределами рабочей области, чтение заблокировано.",
190
+ "error.unavailable": "Ошибка чтения: {message}",
191
+ "guide.description": "Просматривайте файлы в рабочей области сессии и открывайте любой из них.",
192
+ "guide.title": "Файлы",
193
+ "loading": "Чтение…",
194
+ "noWorkspace": "У этой сессии нет каталога рабочей области.",
195
+ "reload": "Перезагрузить",
196
+ "truncated": "Слишком много записей; показана только часть.",
197
+ "type.label": "Файлы"
198
+ },
199
+ "sidebarTextpreview": {
200
+ "changed": "Изменено",
201
+ "error.notFound": "Файл не найден на диске",
202
+ "error.notRegularFile": "Объект не является обычным файлом",
203
+ "error.notText": "Двоичный файл не может быть отображён как текст",
204
+ "error.outsideWorkspace": "Файл находится за пределами рабочей области",
205
+ "error.tooLarge": "Файл слишком велик; боковая панель не читает файлы более {limit}.",
206
+ "error.unavailable": "Ошибка чтения: {message}",
207
+ "loadMore": "Загрузить больше строк",
208
+ "loading": "Загрузка предпросмотра…",
209
+ "readonly": "Только чтение",
210
+ "title": "Предпросмотр файла",
211
+ "truncated": "Показаны первые {lines} строк из {total}",
212
+ "reload": "Перечитать файл",
213
+ "reloadNow": "Перезагрузить",
214
+ "retry": "Повторить",
215
+ "wrap": "Перенос строк"
216
+ },
217
+ "open-in-app": {
218
+ "cursor": "Открыть в Cursor",
219
+ "custom": "Открыть в {app}",
220
+ "default": "Открыть в системном приложении",
221
+ "failed": "Не удалось открыть файл в {app}: {error}",
222
+ "sublime": "Открыть в Sublime Text",
223
+ "title": "Открыть в приложении",
224
+ "vsc": "Открыть в VSCode",
225
+ "vscInsiders": "Открыть в VSCode Insiders",
226
+ "windsurf": "Открыть в Windsurf",
227
+ "app.explorer": "Проводник Windows",
228
+ "app.filemanager": "Файлы",
229
+ "app.finder": "Finder",
230
+ "app.terminal": "Терминал",
231
+ "menu.aria": "Открыть в",
232
+ "menu.toggle": "Выберите приложение для открытия",
233
+ "open.error": "Не удалось открыть",
234
+ "open.title": "Открыть рабочую область в {app}",
235
+ "open.tooltip": "Открыть локально"
236
+ }
144
237
  }