Repository navigation
Expand file tree
/
Copy pathru-RU.json
More file actions
4490 lines (4490 loc) · 412 KB
/
Copy pathru-RU.json
File metadata and controls
4490 lines (4490 loc) · 412 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"common.loading": "Загрузка...",
"common.generating": "Генерация...",
"common.connecting": "Подключение...",
"common.cancel": "Отмена",
"common.close": "Закрыть",
"common.confirm": "Подтвердить",
"common.more": "Ещё",
"common.refresh": "Обновить",
"common.open": "Открыть",
"common.save": "Сохранить",
"common.saving": "Сохранение...",
"common.delete": "Удалить",
"carousel.previousSlide": "Предыдущий слайд",
"carousel.nextSlide": "Следующий слайд",
"quickPick.title": "Палитра команд",
"quickPick.description": "Поиск и запуск команд, доступных в этом рабочем пространстве.",
"quickPick.placeholder": "Введите команду",
"quickPick.empty": "Подходящих команд нет.",
"quickPick.commandFailed": "Команда не выполнена: {error}",
"quickPick.find.title": "Найти беседы",
"quickPick.find.description": "Поиск бесед в текущем рабочем пространстве.",
"quickPick.find.results": "{current} / {total} результатов",
"quickPick.find.placeholder.conversation": "Поиск бесед...",
"quickPick.find.placeholder.changes": "Поиск изменений файлов...",
"quickPick.find.noResults.conversation": "Беседы не найдены",
"quickPick.find.noResults.changes": "Изменений файлов не найдено",
"quickPick.find.empty.conversation": "Введите для поиска бесед",
"quickPick.find.empty.changes": "Введите для поиска изменённых файлов",
"quickPick.find.previous": "Предыдущий результат",
"quickPick.find.next": "Следующий результат",
"quickPick.find.scope.conversation": "Поиск бесед",
"quickPick.find.scope.changes": "Поиск изменений файлов",
"quickPick.section.recommended": "Рекомендуемые",
"quickPick.section.navigation": "Навигация",
"quickPick.section.panel": "Панели",
"quickPick.section.config": "Настройки",
"quickPick.section.app": "Приложение",
"quickPick.command.newTask": "Новый чат",
"quickPick.command.openWorkspace": "Открыть папку",
"quickPick.command.openFile": "Поиск файлов",
"quickPick.command.settings": "Настройки",
"quickPick.command.previousConversation": "Предыдущая беседа",
"quickPick.command.nextConversation": "Следующая беседа",
"quickPick.command.find": "Найти",
"quickPick.command.goBack": "Назад",
"quickPick.command.goForward": "Вперёд",
"quickPick.command.switchThemeToDark": "Переключить тему на тёмную",
"quickPick.command.switchThemeToLight": "Переключить тему на светлую",
"quickPick.command.mcpServers": "Серверы MCP",
"quickPick.command.personalization": "Персонализация",
"quickPick.command.toggleTerminal": "Показать/скрыть терминал",
"quickPick.command.toggleSidePane": "Показать/скрыть панель",
"quickPick.command.toggleBrowserPanel": "Показать/скрыть панель браузера",
"quickPick.command.toggleDiffPanel": "Переключиться на панель diffs",
"quickPick.command.feedback": "Обратная связь",
"quickPick.command.myTickets": "Мои обращения",
"quickPick.command.community": "Сообщество",
"quickPick.command.login": "Подключиться",
"quickPick.command.logout": "Отключиться",
"commandCenter.placeholder": "Поиск команд, бесед или файлов",
"commandCenter.open": "Поиск",
"commandCenter.noResults": "Нет результатов",
"commandCenter.scope.all": "Все",
"commandCenter.scope.commands": "Быстрые действия",
"commandCenter.scope.conversations": "Беседы",
"commandCenter.scope.files": "Файлы",
"commandCenter.history": "История поиска",
"commandCenter.clearHistory": "Очистить историю поиска",
"commandCenter.expandHistory": "Развернуть историю поиска",
"commandCenter.collapseHistory": "Свернуть историю поиска",
"commandCenter.section.commands": "Быстрые действия",
"commandCenter.section.conversations": "Беседы",
"commandCenter.section.files": "Файлы",
"commandCenter.moreResults": "Показать ещё результаты",
"confirmDialog.taskDeleteTitle": "Удалить эту задачу?",
"confirmDialog.taskDeleteDescription": "Задача «{taskTitle}» будет удалена из этого рабочего пространства, текущая запись не может быть восстановлена.",
"confirmDialog.archivedTaskDeleteTitle": "Удалить эту архивную задачу?",
"confirmDialog.archivedTaskDeleteDescription": "Задача будет удалена из архива, локальные данные сессии будут очищены. Файлы рабочего пространства не будут удалены.",
"confirmDialog.taskArchiveTitle": "Архивировать эту задачу?",
"confirmDialog.taskArchiveDescription": "Задача «{taskTitle}» будет перемещена в список архива и позже сможет быть восстановлена.",
"confirmDialog.projectRemoveTitle": "Удалить этот проект?",
"confirmDialog.projectRemoveDescription": "Проект «{projectName}» будет удалён из боковой панели, но файлы на диске останутся нетронутыми.",
"bots.title": "Боты",
"bots.description": "Подключите внешние чаты и вебхуки к ботам ZCode.",
"bots.listTitle": "Боты",
"bots.addBot": "Новый бот",
"bots.addBinding": "Добавить привязку",
"bots.setup.chooseBot": "Выберите бота",
"bots.setup.createBot": "Создать бота",
"bots.setup.createAndTest": "Проверить и продолжить",
"bots.setup.bindBot": "Привязать бота",
"bots.setup.setBot": "Настроить бота",
"bots.setup.next": "Далее",
"bots.setup.finish": "Готово",
"bots.setup.bindDescription": "Создайте код привязки, затем отправьте команду привязки в личном чате бота.",
"bots.setup.bindCodeCreating": "Создание кода привязки...",
"bots.setup.bindExpiresIn": "Код привязки истекает через {time}",
"bots.setup.bindRegenerating": "Код привязки истёк. Создаём новый...",
"bots.setup.refreshBindCode": "Обновить код",
"bots.setup.bound": "Привязано пользователей: {count}. Продолжите настройку бота.",
"bots.setup.bindAdvanceIn": "Продолжение через {seconds}с.",
"bots.setup.allowedWorkspaces": "Разрешённые рабочие пространства",
"bots.setup.allowedAll": "Разрешить все рабочие пространства (*)",
"bots.setup.allowedSelected": "Разрешить только выбранные рабочие пространства",
"bots.setup.allowedAllShort": "Все",
"bots.setup.allowedSelectedShort": "Выбранные",
"bots.setup.allowedAllDescription": "Этот бот может использовать любое настроенное рабочее пространство.",
"bots.setupDescription.chooseBot": "Выберите стороннего чат-бота для подключения.",
"bots.setupDescription.createBot": "Введите данные бота или вебхука. Следующий шаг проверит доступность.",
"bots.setupDescription.bindBot": "Создайте код привязки и привяжите аккаунт в личном чате бота.",
"bots.setupDescription.setBot": "Настройте контекст по умолчанию, разрешённые рабочие пространства и детализацию ответов.",
"bots.setup.guide.createTitle": "Руководство по подготовке",
"bots.setup.guide.bindTitle": "Руководство по привязке",
"bots.setup.guide.createNote": "Сначала настройте сторонний сервис, затем вернитесь и нажмите «Проверить и продолжить».",
"bots.setup.callbackUrlTitle": "URL обратного вызова",
"bots.setup.callbackUrlDescription.webhook": "Ваша внешняя система должна отправлять входящие коллбэки сообщений на этот адрес. Асинхронные исходные ответы по-прежнему используют URL вебхука, указанный слева.",
"bots.setup.callbackUrlDescription.webhookBind": "Привязка вебхука использует тот же эндпоинт: отправьте запрос привязки на этот адрес с текстом = /bind <код>.",
"bots.setup.guide.telegram.create.1": "Откройте @BotFather в Telegram и создайте нового бота.",
"bots.setup.guide.telegram.create.2": "Скопируйте HTTP API-токен, полученный от BotFather, и вставьте его в эту форму.",
"bots.setup.guide.telegram.create.3": "Рекомендуется уже сейчас открыть личный чат с ботом, так как команду привязки нужно будет отправить туда.",
"bots.setup.guide.telegram.bind.1": "Вернитесь в Telegram и откройте личный чат с созданным ботом.",
"bots.setup.guide.telegram.bind.2": "Если чат ещё не начат, нажмите «Старт» или отправьте любое сообщение, затем отправьте {command}.",
"bots.setup.guide.telegram.bind.3": "Вернитесь сюда после подтверждения успешной привязки в Telegram.",
"bots.setup.guide.weixin.create.1": "Запустите QR-вход Weixin, отсканируйте QR-код в Weixin и подтвердите на телефоне.",
"bots.setup.guide.weixin.create.2": "ZCode автоматически сохраняет bot_token от iLink; после сканирования отправьте любое сообщение боту в Weixin для активации чата.",
"bots.setup.guide.weixin.create.3": "ZCode использует встроенный клиент iLink: `/ilink/bot/getupdates` для длинного опроса и `/ilink/bot/sendmessage` для ответов.",
"bots.setup.guide.weixin.bind.1": "Откройте личный чат Weixin, который хотите привязать.",
"bots.setup.guide.weixin.bind.2": "Отправьте {command}.",
"bots.setup.guide.weixin.bind.3": "Вернитесь сюда после успешной привязки для настройки рабочего пространства и параметров CLI.",
"bots.setup.guide.feishu.create.1": "Создайте собственное приложение в консоли разработчиков Feishu/Lark и включите возможности бота.",
"bots.setup.guide.feishu.create.2": "Скопируйте App ID и App Secret, затем включите постоянные соединения для событий `im.message.receive_v1` и действий карточек.",
"bots.setup.guide.feishu.create.3": "Выберите соответствующий домен Feishu или Lark, затем вставьте данные в форму.",
"bots.setup.guide.feishu.bind.1": "Установите приложение в свой тенант и откройте личный чат с ботом.",
"bots.setup.guide.feishu.bind.2": "Отправьте {command} в этом личном чате.",
"bots.setup.guide.feishu.bind.3": "Вернитесь сюда после успешной привязки для настройки рабочего пространства и параметров CLI.",
"bots.setup.guide.webhook.create.1": "Режим вебхука не требует нативного бота в стороннем продукте; вашей интеграции достаточно отправлять POST-запросы в ZCode.",
"bots.setup.guide.webhook.create.2": "Сначала задайте общий ключ; добавьте также URL исходящего вебхука, если хотите получать асинхронные ответы.",
"bots.setup.guide.webhook.create.3": "Используйте стабильный userId для каждого внешнего пользователя, чтобы привязка и контекст.future относились к одному лицу.",
"bots.setup.guide.webhook.bind.1": "POST-запрос приватного сообщения на эндпоинт `/api/bots/webhook` ZCode.",
"bots.setup.guide.webhook.bind.2": "В теле запроса должен быть указан botId, стабильный userId, `chatType: \"private\"`, а текст установлен в {command}.",
"bots.setup.guide.webhook.bind.3": "Если бот использует секрет, отправьте также `x-zcode-bot-secret`; затем вернитесь сюда после успешной привязки.",
"bots.setup.footer.choose": "Выберите поддерживаемого бота для продолжения.",
"bots.setup.footer.create": "Проверка доступности должна пройти перед привязкой.",
"bots.setup.testSuccess": "Проверка доступности пройдена",
"bots.setup.testFailed": "Проверка доступности не пройдена",
"bots.setup.footer.bind": "Код привязки первоначально разрешает все рабочие пространства; окончательная область будет сохранена на следующем шаге.",
"bots.setup.footer.set": "Завершение активирует бота и возвращает его в список добавленных.",
"bots.setup.discardTitle": "Отклонить настройку бота?",
"bots.setup.discardDescription": "Этот процесс настройки не завершён. Временный бот будет удалён.",
"bots.setup.discardConfirm": "Отклонить настройку",
"bots.refresh": "Обновить ботов",
"bots.namePlaceholder": "Имя бота",
"bots.credentialPlaceholder": "Привязать бота",
"bots.weixinBotTokenPlaceholder": "Сохраняется после QR-входа; можно также вставить bot_token вручную",
"bots.webhookSecretPlaceholder": "Секрет вебхука",
"bots.webhookUrlPlaceholder": "URL исходящего вебхука",
"bots.feishuAppIdPlaceholder": "App ID Feishu",
"bots.feishuAppId": "App ID Feishu",
"bots.feishuAppSecretPlaceholder": "App Secret Feishu",
"bots.callbackSecretPlaceholder": "Секрет обратного вызова",
"bots.feishuRegistrationTitle": "Отсканируйте для создания приложения",
"bots.feishuRegistrationDescription": "Отсканируйте для создания приложения и сохранения данных.",
"bots.feishuRegistrationButton": "Сканировать",
"bots.feishuRegistrationQrAlt": "QR-код регистрации приложения Feishu",
"bots.feishuRegistrationScanHint": "Отсканируйте в Feishu/Lark и подтвердите создание приложения.",
"bots.feishuRegistrationScanHint.feishu": "Отсканируйте в Feishu и подтвердите создание приложения.",
"bots.feishuRegistrationScanHint.lark": "Отсканируйте в Lark и подтвердите создание приложения.",
"bots.feishuRegistrationStarted": "Регистрация Feishu начата",
"bots.feishuRegistrationSuccess": "Данные приложения Feishu заполнены",
"bots.feishuRegistrationFailed": "Не удалось начать регистрацию Feishu: {error}",
"bots.feishuRegistrationExpired": "QR-код истёк. Начните заново.",
"bots.feishuRegistration.access_denied": "Регистрация отклонена.",
"bots.feishuRegistration.expired": "QR-код истёк. Начните заново.",
"bots.feishuRegistration.error": "Регистрация не удалась.",
"bots.enabledToggle": "Включить {name}",
"bots.replyGranularity": "Детализация ответов бота",
"bots.replyGranularity.description": "Уровень детализации сообщений.",
"bots.replyGranularity.assistantChanges": "Стандартный ответ",
"bots.replyGranularity.assistantToolcallsChanges": "Полный ответ",
"bots.replyGranularity.summaryChanges": "Краткий ответ",
"bots.add": "Добавить",
"bots.channel.telegram": "Telegram",
"bots.channel.weixin": "Weixin",
"bots.channel.feishu": "Feishu",
"bots.channel.lark": "Lark",
"bots.channel.dingding": "DingTalk",
"bots.channel.discord": "Discord",
"bots.channel.wecom": "WeCom",
"bots.channel.webhook": "Webhook",
"bots.newBot.title": "Новый бот",
"bots.newBot.chooseChannel": "Выберите канал",
"bots.newBot.description": "Выберите, где этот бот будет получать сообщения. После выбора канала настройте данные, привязку, разрешённые рабочие пространства и настройки по умолчанию.",
"bots.newBot.selectProviderHint": "Выберите канал справа для создания бота.",
"bots.newBot.fallbackName": "Новый бот",
"bots.newBot.comingSoon": "Скоро",
"bots.newBot.providerDescription.telegram": "Создайте бота, затем привяжите сообщением.",
"bots.newBot.providerDescription.weixin": "Отсканируйте для входа; первое сообщение активирует.",
"bots.newBot.providerDescription.feishu": "Отсканируйте для создания приложения, затем привяжите сообщением.",
"bots.newBot.providerDescription.lark": "Отсканируйте для создания приложения, затем привяжите сообщением.",
"bots.newBot.providerDescription.dingding": "Интеграция с DingTalk запланирована.",
"bots.newBot.providerDescription.webhook": "Получайте коллбэки от вашей системы и опционально отправляйте ответы обратно.",
"bots.newBot.providerDescription.discord": "Интеграция с Discord запланирована.",
"bots.newBot.providerDescription.wecom": "Интеграция с WeCom запланирована.",
"bots.empty": "Боты не настроены.",
"bots.name": "Имя бота",
"bots.provider": "Канал",
"bots.enabled": "Включён",
"bots.enabled.description": "Включите или выключите этого бота и очистите его состояние выполнения.",
"bots.credential": "Учётные данные",
"bots.webhookSecret": "Секрет вебхука",
"bots.webhookUrl": "URL вебхука",
"bots.providerSettings": "Настройки канала",
"bots.providerSettings.telegram": "Сохраните токен BotFather.",
"bots.providerSettings.weixin": "Данные сохраняются после сканирования; первое сообщение Weixin активирует чат.",
"bots.providerSettings.feishu": "Отсканируйте для получения данных приложения.",
"bots.providerSettings.lark": "Отсканируйте для получения данных приложения.",
"bots.providerSettings.webhook": "Вебхук использует секрет обратного вызова для входящих запросов и опциональный URL для ответов.",
"bots.providerSettings.discord": "Поддержка Discord пока недоступна.",
"bots.providerSettings.wecom": "Поддержка WeCom пока недоступна.",
"bots.telegramBotToken": "Привязать бота",
"bots.weixinRegistrationTitle": "QR-вход Weixin",
"bots.weixinRegistrationDescription": "Отсканируйте для входа, затем отправьте любое сообщение в Weixin для активации чата.",
"bots.weixinRegistrationButton": "Сканировать",
"bots.weixinRegistrationQrAlt": "QR-код входа Weixin",
"bots.weixinRegistrationScanHint": "Отсканируйте в Weixin и подтвердите вход.",
"bots.weixinRegistrationStarted": "QR-вход Weixin начат",
"bots.weixinRegistrationSuccess": "Бот Weixin привязан. Отправьте любое сообщение в Weixin для активации.",
"bots.weixinActivationHint": "Отправьте любое сообщение боту в Weixin; первое сообщение получит приветствие и руководство по командам.",
"bots.weixinRegistrationFailed": "Не удалось начать QR-вход Weixin: {error}",
"bots.weixinRegistration.pending": "Ожидание сканирования",
"bots.weixinRegistration.scanned": "Отсканировано, ожидание подтверждения",
"bots.weixinRegistration.success": "Вход выполнен",
"bots.weixinRegistration.expired": "QR-код истёк. Начните заново.",
"bots.weixinRegistration.error": "Вход не удался.",
"bots.weixinBotToken": "bot_token Weixin",
"bots.feishuAppSecret": "App Secret Feishu",
"bots.callbackSecret": "Секрет обратного вызова",
"bots.webhookOutboundUrl": "URL исходящего вебхука",
"bots.webhookAuthHeaderName": "Имя заголовка авторизации",
"bots.saveSecrets": "Сохранить секреты",
"bots.saveSecret": "Сохранить",
"bots.removeSecret": "Удалить секрет",
"bots.removeSecretFailed": "Не удалось удалить секрет: {error}",
"bots.botToken": "Привязать бота",
"bots.botTokenDescription.telegram": "Сохраните токен BotFather.",
"bots.botTokenDescription.feishu": "Отсканируйте для получения данных приложения.",
"bots.botTokenDescription.lark": "Отсканируйте для получения данных приложения.",
"bots.botTokenDescription.weixin": "Данные сохраняются после сканирования.",
"bots.botTokenDescription.webhook": "Используется для подключения этого вебхук-бота.",
"bots.telegramBotFatherQrAlt": "QR-код BotFather Telegram",
"bots.telegramBotFatherScanHint": "Отсканируйте для открытия BotFather, создания бота и вставки токена.",
"bots.openBotFather": "Открыть BotFather",
"bots.connected": "Подключён",
"bots.notConnected": "Не подключён",
"bots.runtime.telegramLongPollingRunning": "Длинный опрос Telegram работает.",
"bots.runtime.telegramLongPollingStarting": "Длинный опрос Telegram запускается.",
"bots.runtime.telegramLongPollingStopped": "Длинный опрос Telegram остановлен.",
"bots.runtime.telegramLongPollingHandledElsewhere": "Длинный опрос Telegram обрабатывается другим окном ZCode.",
"bots.runtime.telegramTokenMissing": "Отсутствуют данные бота Telegram.",
"bots.runtime.telegramPollingFailedRetrying": "Опрос Telegram не удался; повторная попытка.",
"bots.runtime.feishuWebSocketStarting": "WebSocket Feishu запускается.",
"bots.runtime.feishuWebSocketConnecting": "WebSocket Feishu подключается.",
"bots.runtime.feishuWebSocketRunning": "WebSocket Feishu работает.",
"bots.runtime.feishuWebSocketStopped": "WebSocket Feishu остановлен.",
"bots.runtime.weixinLongPollingRunning": "Длинный опрос Weixin работает.",
"bots.runtime.weixinLongPollingStarting": "Длинный опрос Weixin запускается.",
"bots.runtime.weixinLongPollingStopped": "Длинный опрос Weixin остановлен.",
"bots.runtime.botDisabled": "Бот отключён.",
"bots.scanQrCode": "Отсканировать QR-код",
"bots.authorizationQr": "QR-код авторизации",
"bots.bindCommand": "Команда привязки",
"bots.binding": "Привязка",
"bots.allowedCommands": "Разрешённые команды",
"bots.unbound": "Не привязан",
"bots.generateBindCode": "Сгенерировать код привязки",
"bots.resetState": "Сбросить состояние",
"bots.allowedWorkspaces": "Доступ к рабочим пространствам",
"bots.allowedWorkspaces.all": "Все",
"bots.allowedWorkspaces.mode.all": "Все рабочие пространства",
"bots.allowedWorkspaces.mode.selected": "Выбранные рабочие пространства",
"bots.allowedWorkspaces.allDescription": "Этот бот может использовать любое настроенное рабочее пространство.",
"bots.allowedWorkspaces.selectedDescription": "Этот бот может использовать {count} выбранных рабочих пространств.",
"bots.botMeta": "{users} привязанных пользователей · рабочее пространство {workspace}",
"bots.botSummary": "{users} пользователей · {workspaces} рабочих пространств · {workspace}",
"bots.userCount": "{count} пользователей",
"bots.editDescription": "Просмотрите состояние выполнения, контекст по умолчанию, детализацию ответов и привязанных пользователей.",
"bots.edit.basicSettings": "Основные настройки",
"bots.edit.binding": "Привязанные пользователи",
"bots.edit.emptyUsers": "Пока нет привязанных пользователей. Создайте код привязки, затем отправьте команду привязки в личном чате бота.",
"bots.edit.userWorkspaces": "Разрешено рабочих пространств: {count}",
"bots.test": "Тест",
"bots.bind": "Привязать",
"bots.unbind": "Отвязать",
"bots.delete": "Удалить бота",
"bots.delete.description": "Удалить этого бота.",
"bots.deleteConfirmTitle": "Удалить бота «{name}»?",
"bots.deleteConfirmDescription": "Это удалит конфигурацию бота, данные и состояние привязки. Действие необратимо.",
"bots.bindCode": "Код привязки",
"bots.bindHint": "Отправьте {command} в личном чате бота.",
"bots.bindCodeExpires": "Код привязки истекает через {time}",
"bots.bindCodeExpired": "Код привязки истёк. Сгенерируйте новый код.",
"bots.bindSuccess": "Привязка выполнена успешно",
"bots.copyBindCommand": "Скопировать команду",
"bots.bindCommandCopied": "Команда привязки скопирована",
"bots.bindCommandCopyFailed": "Не удалось скопировать команду привязки: {error}",
"bots.loadFailed": "Не удалось загрузить ботов: {error}",
"bots.saveSuccess": "Бот сохранён",
"bots.saveFailed": "Не удалось сохранить бота: {error}",
"bots.testFailed": "Тест бота не пройден: {error}",
"bots.bindCodeCreated": "Код привязки создан",
"bots.bindCodeFailed": "Не удалось создать код привязки: {error}",
"bots.unbindSuccess": "Бот отвязан",
"bots.unbindFailed": "Не удалось отвязать бота: {error}",
"bots.deleteFailed": "Не удалось удалить бота: {error}",
"welcome.title": "Добро пожаловать в ZCode",
"welcome.username": "Имя пользователя",
"welcome.password": "Пароль",
"welcome.login": "Войти",
"welcome.loggingIn": "Вход...",
"welcome.loginFailed": "Вход не удался",
"login.title": "Добро пожаловать в ZCode",
"login.description": "Подключите аккаунт для начала работы с ZCode",
"login.oauth.activeProviderHint": "Текущий активный провайдер: {provider}. Повторный вход заменит текущую учётную запись.",
"login.oauth.loadingProviders": "Загрузка провайдеров аккаунтов...",
"login.oauth.noProviders": "В данный момент провайдеры аккаунтов недоступны. Попробуйте позже.",
"login.oauth.button": "Продолжить с {provider}",
"login.oauth.button.zai": "Подключиться к Z.ai",
"login.oauth.button.bigmodel": "Подключиться к BigModel",
"login.oauth.regionTag.zai": "Глобальный",
"login.oauth.regionTag.bigmodel": "КНР",
"login.oauth.waiting": "Ожидание аутентификации {provider}...",
"login.oauth.cancel": "Отмена",
"login.oauth.retry": "Повторить вход",
"login.useApiKey": "Использовать API-ключ",
"login.apiKey.title": "API-ключ",
"login.apiKey.placeholder": "Введите API-ключ",
"login.apiKey.providerLabel": "Провайдер API-ключа",
"login.apiKey.provider.zai": "Z.ai",
"login.apiKey.provider.bigmodel": "BigModel",
"login.apiKey.getApiKey": "Получить API-ключ",
"login.apiKey.cancel": "Отмена",
"login.apiKey.continue": "Продолжить",
"login.apiKey.emptyError": "Введите API-ключ.",
"login.apiKey.providerMissingError": "Встроенная конфигурация провайдера для {provider} не найдена. Попробуйте позже.",
"login.apiKey.saveError": "Не удалось сохранить API-ключ: {error}",
"login.apiKey.skipError": "Не удалось пропустить настройку API-ключа: {error}",
"login.skip": "Пропустить на время",
"settings.onboarding": "Введение",
"settings.onboardingDescription": "Повторно откройте процесс введения для просмотра вариантов миграции и импорта настроек.",
"settings.onboardingOpen": "Открыть введение",
"app.currentTheme": "Текущая: {theme}",
"app.login": "Подключиться",
"app.logout": "Отключиться",
"logout.confirm.title": "Отключиться и перезапустить ZCode?",
"logout.confirm.descriptionWithRunningSessions": "Сейчас выполняются {count} сессий(я). Отключение прервёт их и перезапустит приложение.",
"logout.confirm.descriptionDefault": "Приложение перезапустится после отключения. Придётся снова подключить аккаунт.",
"logout.confirm.ok": "Отключить и перезапустить",
"logout.confirm.cancel": "Отмена",
"sidebar.profile.notLoggedIn": "Подключиться",
"app.selectFile": "Выберите файл для начала работы",
"app.workspace": "Рабочее пространство",
"browser.title": "Браузер",
"browser.addressPlaceholder": "Введите URL и нажмите Enter",
"browser.back": "Назад",
"browser.forward": "Вперёд",
"browser.reload": "Обновить",
"browser.devtools": "Открыть DevTools",
"browser.elementPicker.start": "Выбрать элемент страницы для чата",
"browser.elementPicker.cancel": "Отменить выбор элемента",
"browser.elementPickerFailed": "Не удалось выбрать элемент страницы: {message}",
"browser.elementPicker.popover.background": "Фон",
"browser.elementPicker.popover.color": "Цвет",
"browser.elementPicker.popover.font": "Шрифт",
"browser.show": "Показать/скрыть браузер",
"browser.hide": "Показать/скрыть браузер",
"browser.toggle": "Показать/скрыть браузер",
"browser.close": "Закрыть панель браузера",
"browser.desktopOnly": "Панель браузера доступна только на десктопе",
"browser.empty": "Вставьте или введите URL для открытия страницы.",
"browser.invalidUrl": "Поддерживаются только URL http, https, file, about и data",
"browser.loadFailed": "Не удалось загрузить страницу: {message}",
"diff.title": "Diff",
"diff.toggle": "Показать/скрыть панель diff",
"diff.close": "Закрыть панель diff",
"sidePane.expand": "Развернуть боковую панель",
"sidePane.collapse": "Свернуть боковую панель",
"sidePane.togglePanel": "Показать/скрыть панель",
"sidePane.maximize": "Развернуть панель",
"sidePane.restoreSize": "Восстановить ширину панели",
"sidePane.addTab": "Добавить вкладку",
"sidePane.openFile": "Открыть файл",
"sidePane.openFileDescription": "Откройте файл из текущего рабочего пространства в боковой панели.",
"sidePane.openFilePlaceholder": "Поиск файлов в текущем рабочем пространстве...",
"sidePane.openFileLoading": "Загрузка файлов...",
"sidePane.openFileEmpty": "Файлы не найдены.",
"sidePane.openFile.category": "Файлы",
"sidePane.openFile.emptyQuery": "Введите для поиска файлов",
"sidePane.review": "Обзор",
"whiteboard.title": "Доска",
"whiteboard.defaultName": "Доска",
"whiteboard.nameLabel": "Имя доски",
"whiteboard.canvasLabel": "Холст доски",
"whiteboard.tool.pen": "Карандаш",
"whiteboard.tool.eraser": "Ластик",
"whiteboard.color": "Цвет",
"whiteboard.strokeWidth": "Толщина линии",
"whiteboard.addToChat": "Добавить в чат",
"whiteboard.undo": "Отменить",
"whiteboard.redo": "Повторить",
"whiteboard.clear": "Очистить",
"whiteboard.missing": "Эта доска больше недоступна.",
"whiteboard.exportMissing": "Эта доска больше недоступна.",
"whiteboard.exportFailed": "Не удалось экспортировать доску: {message}",
"treemapping.title": "Карта файлов",
"modelTrajectory.title": "Траектория модели",
"repoWiki.title": "Wiki репозитория",
"repoWiki.back": "Назад",
"repoWiki.generate": "Сгенерировать wiki",
"repoWiki.regenerate": "Перегенерировать",
"repoWiki.generating": "Генерация",
"repoWiki.stop": "Остановить",
"repoWiki.delete": "Удалить wiki",
"repoWiki.deleteConfirmTitle": "Удалить эту wiki?",
"repoWiki.deleteConfirmDescription": "Локальное содержимое Wiki для «{repoName}» будет удалено. Вы сможете перегенерировать его позже. Записи загрузки OSS-репозитория не затронуты.",
"repoWiki.deleteConfirmAction": "Удалить wiki",
"repoWiki.emptyTitle": "Wiki для этого рабочего пространства пока нет",
"repoWiki.emptyDescription": "Сгенерируйте wiki рабочего пространства для просмотра архитектурных страниц, заметок о модулях и ссылок на исходные файлы.",
"repoWiki.statusNotGenerated": "Не сгенерировано",
"repoWiki.statusFailed": "Ошибка генерации wiki",
"repoWiki.statusCancelled": "Генерация wiki остановлена",
"repoWiki.pagePending": "Ожидание",
"repoWiki.pagePendingTitle": "Страница ожидает генерации",
"repoWiki.pagePendingDescription": "Эта страница ещё в очереди на генерацию. Готовые страницы можно открыть из каталога.",
"repoWiki.failedPages": "Неудачных страниц: {count}",
"repoWiki.projects": "Проекты",
"repoWiki.catalog": "Каталог",
"repoWiki.collapseProjects": "Свернуть проекты",
"repoWiki.expandProjects": "Развернуть проекты",
"repoWiki.collapseCatalog": "Свернуть каталог",
"repoWiki.expandCatalog": "Развернуть каталог",
"repoWiki.meta.language": "Язык",
"repoWiki.meta.model": "Модель",
"repoWiki.meta.maxRetries": "Повторы",
"repoWiki.meta.status": "Статус генерации",
"repoWiki.metadata": "Метаданные",
"repoWiki.meta.files": "Файлы wiki",
"repoWiki.meta.updatedAt": "Обновлено",
"repoWiki.meta.commitId": "ID коммита",
"repoWiki.phase.preparing": "Анализ кодовой базы",
"repoWiki.phase.catalog": "Генерация каталога",
"repoWiki.phase.pages": "Генерация страниц",
"repoWiki.phase.saving": "Сохранение wiki",
"repoWiki.phase.done": "Wiki сгенерирована",
"repoWiki.phase.error": "Ошибка генерации wiki",
"repoWiki.modelPlaceholder": "Выберите модель",
"modelTrajectory.openSourceDirectory": "Открыть папку с исходниками",
"modelTrajectory.refresh": "Обновить",
"modelTrajectory.close": "Закрыть",
"modelTrajectory.loading": "Загрузка траектории…",
"modelTrajectory.empty": "Записей вызовов модели нет (только ZCode Agent записывает model-io)",
"modelTrajectory.error": "Не удалось загрузить траекторию",
"modelTrajectory.truncatedNotice": "Слишком много записей, показаны последние вызовы",
"modelTrajectory.summaryCalls": "{count} вызовов",
"modelTrajectory.summaryTokens": "Общее использование токенов",
"modelTrajectory.attempt": "Попытка {attempt}",
"modelTrajectory.source.main": "Основная сессия",
"modelTrajectory.source.sessionTitle": "Генерация заголовка",
"modelTrajectory.source.compact": "Компактификация",
"modelTrajectory.source.promptEnhance": "Улучшение промпта",
"modelTrajectory.source.targetCompletion": "Проверка цели",
"modelTrajectory.source.subagent": "Субагент",
"modelTrajectory.source.sidecar": "Sidecar",
"modelTrajectory.source.unknown": "Неизвестный источник",
"modelTrajectory.inputSection": "Вход",
"modelTrajectory.outputSection": "Выход",
"modelTrajectory.reasoning": "Рассуждение",
"modelTrajectory.toolCall": "Вызов инструмента",
"modelTrajectory.toolId": "ID",
"modelTrajectory.toolInput": "Вход",
"modelTrajectory.toolOutput": "Выход",
"modelTrajectory.toolResult": "Результат инструмента",
"modelTrajectory.role.system": "Система",
"modelTrajectory.role.user": "Пользователь",
"modelTrajectory.role.assistant": "Ассистент",
"modelTrajectory.role.tool": "Инструмент",
"treemapping.badge.live": "В реальном времени",
"treemapping.badge.snapshot": "Снимок",
"treemapping.scope.current": "Активность инструментов текущего хода",
"treemapping.scope.turn": "Активность инструментов хода {turn}",
"treemapping.summary.files": "Файлы",
"treemapping.summary.diff": "Diff",
"treemapping.summary.views": "Просмотры",
"treemapping.empty.title": "Активности файлов пока нет",
"treemapping.empty.description": "Карта файлов появится, когда этот ход прочитает, найдёт, отредактирует, создаст или удалит файлы.",
"treemapping.empty.running": "{count} вызов(ов) инструментов выполняется без пути к файлу.",
"treemapping.change.written": "Записано",
"treemapping.change.modified": "Изменено",
"treemapping.change.deleted": "Удалено",
"treemapping.change.viewed": "Только просмотр",
"treemapping.detail.directoryFiles": "{count} файлов",
"diff.placeholder.badge": "Заглушка UI",
"diff.placeholder.description": "Этот этап сосредоточен на оболочке правой панели Diff. Реальные Git-сервисы и выполнение команд будут подключены позже.",
"diff.placeholder.toast": "Панель Diff пока использует режим заглушки UI, так как Git-сервис ещё не полностью подключён.",
"git.readonly": "Только чтение",
"git.head.detached": "Отсоединённый HEAD",
"git.summary.aheadBehind": "Впереди {ahead} / Позади {behind}",
"git.summary.scopeWorkspace": "Поддерево текущего рабочего пространства",
"git.source.unstaged": "Без индексации",
"git.source.staged": "Проиндексировано",
"git.source.branch": "Все изменения ветки",
"git.source.lastTurn": "Последний ход",
"git.source.workspaceScope": "По умолчанию показывается только область текущего рабочего пространства.",
"git.source.lastTurnTurn": "Снимок файлов задачи из хода {turn}",
"git.section.staged": "Проиндексировано",
"git.section.unstaged": "Без индексации",
"git.section.untracked": "Не отслеживается",
"git.section.conflicted": "Конфликты",
"git.section.branch": "Сравнение веток",
"git.section.lastTurn": "Последний ход",
"git.kind.modified": "Изменён",
"git.kind.added": "Добавлен",
"git.kind.deleted": "Удалён",
"git.kind.renamed": "Переименован",
"git.kind.conflicted": "Конфликт",
"git.diff.title": "Предпросмотр diff",
"git.diff.selectFile": "Выберите файл для предпросмотра diff",
"git.diff.selectFileDescription": "Переключайте источники, раскрывайте каталоги и выбирайте файл слева для предпросмотра diff здесь.",
"git.diff.binaryTitle": "Предпросмотр бинарного diff недоступен",
"git.diff.truncatedTitle": "Diff обрезан",
"git.diff.unavailableTitle": "Этот diff сейчас недоступен",
"git.diff.unavailableDescription": "Заглушка содержит только сводную информацию. Полные результаты появятся после подключения реального сервиса.",
"diff.loading.description": "Загрузка реальных данных diff из среды, которой принадлежит это рабочее пространство.",
"diff.error.title": "Не удалось загрузить данные diff",
"diff.error.description": "Попробуйте позже. Текущая ошибка: {message}",
"diff.preview.truncatedLines": "Предпросмотр diff обрезан: {count} строк скрыто для стабильности UI.",
"sidePane.tabOverview": "Поиск вкладок",
"sidePane.searchTabs": "Поиск вкладок...",
"sidePane.openTabs": "Открытые вкладки",
"sidePane.recentlyClosedTabs": "Недавно закрытые вкладки",
"sidePane.noTabsFound": "Вкладки не найдены.",
"sidePane.closeTab": "Закрыть {title}",
"sidePane.closeCurrentTab": "Закрыть вкладку",
"sidePane.closeOtherTabs": "Закрыть другие вкладки",
"sidePane.closeAllTabs": "Закрыть все вкладки",
"sidePane.openedRelativeTime": "Открыто {time}",
"sidePane.closedRelativeTime": "Закрыто {time}",
"sidePane.time.justNow": "только что",
"sidePane.time.minutesAgo": "{count}м назад",
"sidePane.time.hoursAgo": "{count}ч назад",
"sidePane.time.daysAgo": "{count}дн назад",
"git.action.refresh": "Обновить",
"git.action.stage": "Проиндексировать",
"git.action.unstage": "Снять индексацию",
"git.action.discard": "Отклонить",
"git.action.commit": "Коммит",
"git.action.showTree": "Показать дерево файлов",
"git.action.hideTree": "Скрыть дерево файлов",
"git.close": "Закрыть панель Git",
"git.tree.toggleFolder": "Развернуть/свернуть папку",
"git.tree.searchPlaceholder": "Фильтр файлов...",
"git.tree.clearSearch": "Очистить фильтр файлов",
"git.tree.emptyTitle": "Каталоги здесь недоступны",
"git.tree.emptyDescription": "Этот источник пока не предоставляет структуру каталогов для навигации.",
"git.tree.emptySearchTitle": "Файлы не соответствуют фильтру",
"git.tree.emptySearchDescription": "Измените текст поиска или очистите фильтр, чтобы увидеть все файлы в текущем дереве.",
"git.tree.emptyDirectoryTitle": "Изменённых файлов в этом каталоге нет",
"git.tree.emptyDirectoryDescription": "Переключитесь на другой каталог или снова нажмите на текущий каталог для возврата к полному списку.",
"git.selection.count": "{count} выбрано",
"git.selection.toggle": "Переключить выбор {file}",
"git.empty.title": "В этом источнике нет изменений",
"git.empty.description": "Переключитесь на другой источник или подождите, пока в этом рабочем пространстве появятся новые изменения Git.",
"git.loading.description": "Чтение статуса Git и изменённых файлов для текущего рабочего пространства.",
"git.error.title": "Не удалось загрузить изменения Git",
"git.error.description": "Git вернул ошибку: {message}",
"git.empty.gitUnavailableTitle": "Git недоступен в этой среде",
"git.empty.gitUnavailableDescription": "Установите Git или убедитесь, что текущая среда может выполнять команду git.",
"git.empty.notRepositoryTitle": "Это рабочее пространство не находится в репозитории Git",
"git.empty.notRepositoryDescription": "Откройте каталог репозитория Git, и эта панель покажет изменения в рамках текущего рабочего пространства.",
"git.empty.lastTurnTitle": "У текущей задачи пока нет изменений из последнего хода",
"git.empty.lastTurnDescription": "Когда агент запишет файлы, это представление повторно использует существующий снимок задачи как поверхность только для чтения.",
"git.commit.identityTitle": "Идентификация коммита",
"git.commit.identityMissing": "Загрузка реальных user.name / user.email ещё не подключена, поэтому кнопка коммита пока отключена.",
"git.commit.noStagedChanges": "Проиндексированных изменений пока нет. Сначала выберите файлы слева и проиндексируйте их.",
"git.commit.enterMessage": "Введите сообщение коммита.",
"git.commit.ready": "Валидация фронтенда пройдена. Реальный коммит заработает после подключения сервисного слоя.",
"git.commit.placeholder": "Введите сообщение коммита (только заглушка UI, реальный git-коммит пока не будет выполнен)",
"git.actionMenu.trigger": "Коммит",
"git.actionMenu.trigger.ariaLabel": "Открыть действия Git",
"git.actionMenu.menuTitle": "Действия Git",
"git.actionMenu.commit": "Коммит",
"git.actionMenu.push": "Push",
"git.actionMenu.createBranch": "Создать ветку",
"git.actionMenu.commitDialog.title": "Зафиксировать изменения",
"git.actionMenu.commitDialog.description": "Сохраните текущие незафиксированные изменения рабочего пространства в виде коммита.",
"git.actionMenu.commitDialog.currentBranchLabel": "Текущая ветка",
"git.actionMenu.commitDialog.changesLabel": "Изменения",
"git.actionMenu.commitDialog.changesValue": "{count} файлов",
"git.actionMenu.commitDialog.messageLabel": "Сообщение коммита",
"git.actionMenu.commitDialog.messagePlaceholder": "Оставьте пустым для автоматической генерации сообщения",
"git.actionMenu.commitDialog.messageHelper": "Пустые сообщения используют текущую модель для генерации Conventional Commit.",
"git.actionMenu.commitDialog.confirm": "Коммит",
"git.actionMenu.commitDialog.confirmGenerate": "Сгенерировать и зафиксировать",
"git.actionMenu.commitDialog.identityMissing": "Идентификация Git-коммита пока недоступна. Сначала настройте user.name и user.email.",
"git.actionMenu.commitDialog.error.noChanges": "Нет изменений для фиксации.",
"git.actionMenu.commitDialog.error.generateFailed": "Генерация сообщения коммита не удалась. Повторите или введите вручную.",
"git.actionMenu.commitDialog.error.requestFailed": "Коммит не удался: {error}",
"git.actionMenu.commitDialog.toast.success": "Текущие изменения зафиксированы",
"git.actionMenu.pushDialog.title": "Отправить изменения",
"git.actionMenu.pushDialog.description.tracked": "Отправьте последние коммиты текущей ветки в удалённую ветку.",
"git.actionMenu.pushDialog.description.untracked": "Первая отправка опубликует текущую ветку удалённо и настроит upstream.",
"git.actionMenu.pushDialog.currentBranchLabel": "Ветка",
"git.actionMenu.pushDialog.upstreamLabel": "Удалённая ветка",
"git.actionMenu.pushDialog.aheadBehindLabel": "Статус синхронизации",
"git.actionMenu.pushDialog.aheadBehindValue": "Впереди {ahead} / Позади {behind}",
"git.actionMenu.pushDialog.upstreamPending": "При первой отправке upstream-ветка для текущей ветки будет создана автоматически.",
"git.actionMenu.pushDialog.pushLabel": "Следующий шаг",
"git.actionMenu.pushDialog.pushValue": "Отправить",
"git.actionMenu.pushDialog.upToDate": "Нет коммитов для отправки в текущей ветке.",
"git.actionMenu.pushDialog.confirm": "Отправить",
"git.actionMenu.pushDialog.error.summary": "Отправка не удалась. Просмотрите детали ошибки ниже.",
"git.actionMenu.pushDialog.error.detailsLabel": "Детали ошибки",
"git.actionMenu.pushDialog.error.copy": "Скопировать ошибку",
"git.actionMenu.pushDialog.error.copy.copied": "Скопировано",
"git.actionMenu.pushDialog.error.copyFailed": "Не удалось скопировать детали ошибки: {error}",
"git.actionMenu.pushDialog.error.requestFailed": "Отправка не удалась: {error}",
"git.actionMenu.pushDialog.toast.success": "Отправлено в {target}",
"git.branchSwitcher.label": "Ветка",
"git.branchSwitcher.trigger.ariaLabel": "Переключить ветку Git",
"git.branchSwitcher.searchPlaceholder": "Поиск веток",
"git.branchSwitcher.section.branches": "Ветки",
"git.branchSwitcher.empty": "Подходящих веток нет",
"git.branchSwitcher.currentDirty": "Незафиксированные изменения: {count} файлов",
"git.branchSwitcher.createAction": "Создать и переключиться на новую ветку...",
"git.branchSwitcher.createDialog.title": "Создать и переключиться на новую ветку",
"git.branchSwitcher.createDialog.description": "Создайте новую локальную ветку из текущего HEAD и переключитесь на неё после успешного создания.",
"git.branchSwitcher.createDialog.nameLabel": "Имя ветки",
"git.branchSwitcher.createDialog.placeholder": "Например, feature/git-branch-switcher",
"git.branchSwitcher.createDialog.helper": "Поддерживается создание и переключение только из текущего HEAD.",
"git.branchSwitcher.createDialog.confirm": "Создать и переключиться",
"git.branchSwitcher.blockedDialog.title": "Зафиксируйте изменения для переключения веток",
"git.branchSwitcher.blockedDialog.description.tracked": "Ваши изменения в следующих файлах будут перезаписаны при checkout:",
"git.branchSwitcher.blockedDialog.description.untracked": "Следующие неотслеживаемые файлы будут перезаписаны при checkout:",
"git.branchSwitcher.blockedDialog.filesLabel": "Затронутые файлы",
"git.branchSwitcher.blockedDialog.helper": "Сначала зафиксируйте текущие изменения, затем продолжите переключение веток.",
"git.branchSwitcher.blockedDialog.submitAction": "Зафиксировать и переключить ветку...",
"git.branchSwitcher.commitDialog.title": "Зафиксировать изменения",
"git.branchSwitcher.commitDialog.description": "После завершения коммита переключение на {branchName} продолжится автоматически.",
"git.branchSwitcher.commitDialog.currentBranchLabel": "Текущая ветка",
"git.branchSwitcher.commitDialog.targetBranchLabel": "Целевая ветка",
"git.branchSwitcher.commitDialog.changesLabel": "Изменения",
"git.branchSwitcher.commitDialog.changesValue": "{count} файлов",
"git.branchSwitcher.commitDialog.messageLabel": "Сообщение коммита",
"git.branchSwitcher.commitDialog.messagePlaceholder": "Оставьте пустым для автоматической генерации сообщения",
"git.branchSwitcher.commitDialog.messageHelper": "По умолчанию будут зафиксированы все незафиксированные изменения в текущем рабочем пространстве.",
"git.branchSwitcher.commitDialog.confirm": "Зафиксировать и переключить ветку",
"git.branchSwitcher.commitDialog.identityMissing": "Идентификация Git-коммита пока недоступна. Сначала настройте user.name и user.email.",
"git.branchSwitcher.commitDialog.error.requestFailed": "Коммит не удался: {error}",
"git.branchSwitcher.toast.switchSuccess": "Переключено на ветку {branchName}",
"git.branchSwitcher.toast.createSuccess": "Создана и выбрана ветка {branchName}",
"git.branchSwitcher.error.invalidBranchName": "Имя ветки недопустимо. Введите другое имя.",
"git.branchSwitcher.error.branchAlreadyExists": "Такая ветка уже существует. Выберите другое имя.",
"git.branchSwitcher.error.targetBranchNotFound": "Целевая ветка пока не существует локально.",
"git.branchSwitcher.error.trackedOverwrite": "Переключение заблокировано, так как отслеживаемые файлы будут перезаписаны: {paths}{extraPaths}.",
"git.branchSwitcher.error.untrackedOverwrite": "Переключение заблокировано, так как неотслеживаемые файлы будут перезаписаны: {paths}{extraPaths}.",
"git.branchSwitcher.error.moreFiles": " и ещё {count} файлов",
"git.branchSwitcher.error.conflictsPresent": "В репозитории есть неразрешённые конфликты. Разрешите их перед переключением веток.",
"git.branchSwitcher.error.operationInProgress": "Другая операция Git ещё выполняется. Дождитесь её завершения перед переключением веток.",
"git.branchSwitcher.error.branchInOtherWorktree": "Эта ветка уже checkout'нута в другом worktree.",
"git.branchSwitcher.error.unknown": "Переключение веток не удалось. Повторите попытку.",
"git.branchSwitcher.error.requestFailed": "Операция с веткой не удалась: {error}",
"gitGraph.title": "Git Graph",
"gitGraph.subtitle": "{count} коммитов в {lanes} дорожках",
"gitGraph.subtitle.hasMore": "Последние {count} коммитов в {lanes} дорожках",
"gitGraph.metric.merges": "{count} слияний",
"gitGraph.metric.refs": "{count} ссылок",
"gitGraph.graphAriaLabel": "Граф коммитов Git",
"gitGraph.selectedCommit": "Выбранный коммит",
"gitGraph.inspectAction": "Просмотреть коммит",
"gitGraph.menuAction": "Git Graph",
"gitGraph.dialogDescription": "Просмотр графа коммитов текущего репозитория.",
"gitGraph.column.graph": "Граф",
"gitGraph.column.description": "Описание",
"gitGraph.column.date": "Дата",
"gitGraph.column.author": "Автор",
"gitGraph.column.commit": "Коммит",
"gitGraph.detail.subject": "Тема",
"gitGraph.detail.commit": "Коммит",
"gitGraph.detail.author": "Автор",
"gitGraph.detail.date": "Дата",
"gitGraph.detail.parents": "Родители",
"gitGraph.empty.title": "Нет коммитов",
"gitGraph.empty.description": "У этого репозитория пока нет истории коммитов.",
"gitGraph.error.requestFailed": "Не удалось загрузить Git Graph: {error}",
"gitGraph.refresh": "Обновить Git Graph",
"gitGraph.refreshFailed": "Обновление Git Graph не удалось: {error}",
"gitGraph.loadMore": "Загрузить ещё коммиты",
"gitGraph.loadMore.loading": "Загрузка...",
"codeViewer.title": "Просмотр кода",
"codeViewer.close": "Закрыть просмотр кода",
"codeViewer.loadingFile": "Загрузка файла...",
"codeViewer.loadingImage": "Загрузка предпросмотра изображения...",
"codeViewer.fileMissing": "Файл не существует или среда не имеет доступа к этому пути.",
"codeViewer.binary": "Этот файл похож на бинарные данные и пока не может быть предпросмотрен как код.",
"codeViewer.imageUnavailable": "Предпросмотр этого изображения сейчас недоступен.",
"codeViewer.empty": "Файл пуст",
"codeViewer.previewRange": "Показано {start} - {end} / {total}",
"codeViewer.performanceHint": "Соседние блоки загружаются автоматически при прокрутке, а старые блоки обрезаются для стабильной работы с большими или удалёнными файлами.",
"codeViewer.previousChunk": "Предыдущий блок",
"codeViewer.nextChunk": "Следующий блок",
"codeViewer.loadingMoreAbove": "Загрузка предыдущего содержимого...",
"codeViewer.loadingMoreBelow": "Загрузка дополнительного содержимого...",
"codeViewer.viewCode": "Просмотр кода",
"codeViewer.viewDiff": "Просмотр diff",
"codeViewer.markdownMode": "Markdown",
"codeViewer.markdownPreview": "Предпросмотр",
"codeViewer.markdownSource": "Исходник",
"codeViewer.svgMode": "SVG",
"codeViewer.svgPreview": "Предпросмотр",
"codeViewer.svgSource": "Код",
"codeViewer.wrapLines": "Перенос строк",
"codeBlock.mermaid.ariaLabel": "Диаграмма Mermaid",
"codeBlock.mermaid.empty": "Исходный код Mermaid пуст.",
"codeBlock.mermaid.error": "Ошибка рендеринга диаграммы Mermaid",
"codeBlock.mermaid.loading": "Рендеринг диаграммы...",
"codeBlock.mermaid.source": "Исходник",
"codeViewer.comment.add": "Добавить комментарий",
"codeViewer.comment.addTooltip": "Нажмите или перетащите для комментирования",
"codeViewer.comment.placeholder": "Необязательный комментарий к этому коду...",
"codeViewer.comment.submit": "Добавить в чат",
"codeViewer.comment.delete": "Удалить комментарий",
"codeViewer.comment.line": "Комментарий к строке {line}",
"codeViewer.comment.range": "Комментарий к строкам {startLine} - {endLine}",
"codeViewer.comment.contextLabel": "Контекст кода",
"codeViewer.comment.commentLabel": "Комментарий",
"chat.codeComments.one": "1 комментарий",
"chat.codeComments.many": "{count} комментариев",
"chat.codeComments.remove": "Удалить комментарии к коду",
"chat.webElements.one": "1 веб-элемент",
"chat.webElements.many": "{count} веб-элементов",
"chat.webElements.remove": "Удалить контекст веб-элемента",
"appHeader.openInFinder": "Открыть в Finder",
"appHeader.openInFileExplorer": "Открыть в Проводнике",
"appHeader.openInFileManager": "Открыть в файловом менеджере",
"appHeader.openInFileManagerFailed": "Не удалось открыть в системном файловом менеджере",
"appHeader.openInEditor": "Открыть в {editor}",
"appHeader.selectOpenApp": "Выбрать приложение",
"appHeader.copyPath": "Скопировать путь",
"appHeader.copyTaskPath": "Скопировать путь задачи",
"appHeader.copyClaudeJsonlPath": "Скопировать путь JSONL",
"appHeader.copySessionId": "Скопировать ID сессии",
"appHeader.reloadSession": "Перезагрузить сессию",
"appHeader.reloadSessionSuccess": "Сессия перезагружена",
"appHeader.reloadSessionFailed": "Не удалось перезагрузить сессию",
"appHeader.workspaceSessionActionLoading": "Применение изменений сессии...",
"appHeader.copyLogPath": "Скопировать путь лога",
"appHeader.goToProviderConfig": "Перейти к настройкам",
"appHeader.goToProviderConfigPrefix": "Перейти к",
"appHeader.goToProviderConfigSuffix": "настройкам",
"appHeader.openProviderConfigWithEditorPrefix": "Использовать",
"appHeader.openProviderConfigWithEditorMiddle": "для открытия",
"appHeader.openProviderConfigWithEditorSuffix": "файла конфигурации",
"appHeader.openProviderConfigInEditorFailed": "Не удалось открыть конфигурацию провайдера в {editor}",
"titleBar.menu.file": "Файл",
"titleBar.menu.view": "Вид",
"titleBar.menu.help": "Справка",
"titleBar.menu.file.newTask": "Новая задача",
"titleBar.menu.file.openWorkspace": "Открыть рабочее пространство",
"titleBar.menu.file.closeWindow": "Закрыть окно",
"titleBar.windowMenu": "Меню окна",
"titleBar.window.minimize": "Свернуть окно",
"titleBar.window.toggleMaximize": "Развернуть или восстановить окно",
"titleBar.menu.view.toggleFullScreen": "Полноэкранный режим",
"titleBar.menu.view.actualSize": "Размер 100%",
"titleBar.menu.view.zoomIn": "Увеличить",
"titleBar.menu.view.zoomOut": "Уменьшить",
"titleBar.menu.help.about": "О ZCode",
"titleBar.menu.help.checkForUpdates": "Проверить обновления",
"titleBar.menu.help.feedback": "Обратная связь",
"sidebar.menu.community": "Сообщество",
"titleBar.menu.help.exportLogs": "Экспорт логов",
"titleBar.menu.help.toggleDevTools": "Показать/скрыть инструменты разработчика",
"titleBar.menu.help.processMonitor": "Монитор процессов",
"titleBar.menu.help.toggleZCodeStdioTap": "Перехват трафика stdio агента",
"titleBar.menu.help.toggleBulkSessionStressTest": "Массовый стресс-тест сессий",
"titleBar.menu.help.startPerformanceRecording": "Начать запись производительности",
"titleBar.menu.help.stopPerformanceRecording": "Остановить запись производительности",
"titleBar.menu.help.clearAllData": "Очистить все данные",
"directoryBrowser.title": "Обзор папки",
"directoryBrowser.pathPlaceholder": "Введите путь",
"directoryBrowser.go": "Перейти",
"directoryBrowser.showHidden": "Показать скрытые каталоги",
"directoryBrowser.hideHidden": "Скрыть скрытые каталоги",
"directoryBrowser.noSubdirs": "Нет подкаталогов",
"directoryBrowser.selectDir": "Выбрать этот каталог",
"directoryBrowser.errorSystem": "Не удалось получить системную информацию",
"directoryBrowser.errorReadDir": "Не удалось прочитать каталог: {error}",
"updateReady.shortTitle": "Обновление",
"updateReady.title": "Обновление до v{version}",
"updateReady.tooltip": "v{version} готово, нажмите для перезапуска и обновления",
"updateReady.confirm.title": "Обновить до v{version}?",
"updateReady.confirm.description": "Приложение немедленно закроется и запустит установщик. Выполняющиеся сессии будут прерваны.",
"updateReady.confirm.ok": "Перезапустить и обновить сейчас",
"updateReady.confirm.cancel": "Позже",
"update.toast.upToDate": "У вас последняя версия (v{version})",
"update.toast.downloading": "Найдена новая версия v{version}, загрузка…",
"update.toast.alreadyDownloading": "Загрузка новой версии ({progress}%)",
"update.toast.ready": "v{version} загружена, перезапустите для установки",
"update.toast.devSkipped": "Обновления отключены в dev-сборках",
"update.toast.error": "Ошибка проверки обновлений: {error}",
"desktopMenu.help.checkingForUpdates": "Проверка обновлений...",
"desktopMenu.help.downloadingUpdateVersion": "Загрузка обновления {version}...",
"desktopMenu.help.downloadingUpdateProgress": "Загрузка обновления... {progress}%",
"desktopMenu.help.restartToUpdate": "Перезапустить для обновления ({version})",
"postUpdateReleaseNotes.title": "Заметки о релизе",
"postUpdateReleaseNotes.acknowledge": "Понятно",
"projectSelector.heroTitle": "Быстрый старт. Фокус на работе.",
"projectSelector.heroDescription": "Выберите рабочее пространство, вернитесь к задаче и сохраняйте чистоту интерфейса.",
"appError.title": "В приложении возникла проблема",
"appError.description": "Ошибка страницы перехвачена, поэтому приложению не нужно возвращаться к пустому экрану. Сначала попробуйте снова, а если проблема сохраняется — обновите приложение.",
"appError.retry": "Повторить",
"appError.reload": "Перезагрузить приложение",
"appError.hint": "Диагностические данные записаны для расследования.",
"appError.details": "Показать стек компонентов",
"appError.unknown": "Неизвестная ошибка",
"appError.sectionTitle": "В этом разделе возникла проблема",
"appError.sectionDescription": "Ошибка изолирована в этом разделе, остальная часть приложения продолжает работу. Сначала попробуйте снова этот раздел, а если проблема сохраняется — обновите приложение.",
"appError.sectionRetry": "Повторить этот раздел",
"appError.sectionHint": "Диагностические данные записаны для расследования.",
"workspace.openWorkspace": "Открыть рабочее пространство",
"workspace.addNewWorkspace": "Добавить новое рабочее пространство",
"workspace.startFromScratch": "Начать с нуля",
"workspace.openFolder": "Открыть папку",
"workspace.openSkillsSettings": "Навыки",
"workspace.openRepoWiki": "Wiki репозитория",
"workspace.backToWorkspace": "Назад к рабочему пространству",
"workspace.noActiveForNewTask": "Нет доступного рабочего пространства. Сначала откройте рабочее пространство.",
"taskList.codexConnectivityUnavailable": "Прогрев Codex не смог связаться с {host}. Начало беседы может завершиться ошибкой, пока сеть недоступна.",
"workspaceSidebar.workspaces": "Задачи",
"workspaceSidebar.archivedTasks": "Архив",
"workspaceSidebar.taskViewOptions": "Фильтр и сортировка",
"workspaceSidebar.organize": "Вид",
"workspaceSidebar.organizeGrouped": "По группам",
"workspaceSidebar.organizeByProject": "Рабочие пространства",
"workspaceSidebar.organizeChronologicalList": "Хронология",
"workspaceSidebar.sortBy": "Сортировка",
"workspaceSidebar.sortByCreated": "По созданию",
"workspaceSidebar.sortByUpdated": "По обновлению",
"workspaceSidebar.expandAllGroups": "Развернуть все",
"workspaceSidebar.collapseAllGroups": "Свернуть все",
"workspaceSidebar.searchTasks": "Поиск задач",
"workspaceSidebar.searchTasksPlaceholder": "Поиск задач...",
"workspaceSidebar.searchArchivedTasksPlaceholder": "Поиск архивных задач...",
"workspaceSidebar.closeTaskSearch": "Закрыть поиск задач",
"workspaceSidebar.remove": "Удалить",
"workspaceSidebar.reconnect": "Переподключиться",
"workspaceSidebar.connecting": "Подключение",
"workspaceSidebar.notConnected": "Не подключён",
"workspaceSidebar.empty": "Рабочих пространств пока нет. Откройте рабочее пространство для начала.",
"workspaceSidebar.showSidebar": "Показать/скрыть боковую панель",
"workspaceSidebar.hideSidebar": "Показать/скрыть боковую панель",
"workspaceSidebar.toggleSidebar": "Показать/скрыть боковую панель",
"workspaceSidebar.resizeSidebar": "Изменить размер боковой панели",
"workspaceSidebar.toggleArchivedTasks": "Архив",
"workspaceSidebar.showFileTree": "Показать файлы",
"workspaceFileTree.title": "Рабочее пространство",
"workspaceFileTree.backToTasks": "Назад к задачам",
"workspaceFileTree.refresh": "Обновить дерево файлов",
"workspaceFileTree.empty": "Этот каталог пуст.",
"workspaceFileTree.noResults": "Подходящих файлов нет.",
"workspaceFileTree.searchLabel": "Поиск файлов",
"workspaceFileTree.searchPlaceholder": "Поиск файлов...",
"workspaceFileTree.clearSearch": "Очистить поиск файлов",
"workspaceFileTree.showChangedFiles": "Показать только изменённые файлы",
"workspaceFileTree.showAllFiles": "Показать все файлы",
"workspaceFileTree.readFailed": "Не удалось прочитать каталог",
"workspaceFileTree.openWith": "Открыть с помощью",
"workspaceFileTree.openFailed": "Не удалось открыть этот элемент",
"workspaceFileTree.addToChat": "Добавить в чат",
"workspaceFileTree.gitStatus.ignored": "Игнорируется",
"ssh.trigger": "SSH-подключение",
"ssh.title": "Удалённое SSH-подключение",
"ssh.host": "Хост",
"ssh.hostPlaceholder": "Введите адрес хоста или IP, например 192.168.1.100",
"ssh.port": "Порт",
"ssh.username": "Имя пользователя",
"ssh.usernamePlaceholder": "Введите имя пользователя, например root",
"ssh.authMethod": "Метод аутентификации",
"ssh.auth.password": "Пароль",
"ssh.auth.privateKey": "Приватный ключ",
"ssh.assetInstallMode": "Способ загрузки ресурсов",
"ssh.assetInstallMode.local-download-upload": "Загрузить локально, затем загрузить на сервер",
"ssh.assetInstallMode.remote-download": "Загрузить на удалённом сервере",
"ssh.assetInstallModeDescription": "Загрузка на удалённом сервере сокращает время ожидания загрузки, но сервер должен иметь доступ к CDN ZCode и инструментам загрузки, распаковки и проверки контрольных сумм.",
"ssh.password": "Пароль",
"ssh.passwordPlaceholder": "Введите SSH-пароль",
"ssh.privateKey": "Приватный ключ",
"ssh.privateKeyPlaceholder": "Выберите или введите путь к файлу приватного ключа",
"ssh.privateKeyPassphrase": "Парольная фраза приватного ключа (необязательно)",
"ssh.privateKeyPassphrasePlaceholder": "Введите парольную фразу приватного ключа",
"ssh.privateKeySelect": "Выбрать файл приватного ключа",
"ssh.configAlias": "Псевдоним SSH-конфигурации (необязательно)",
"ssh.configAliasPlaceholder": "Псевдоним не выбран",
"ssh.configAliasSearchPlaceholder": "Поиск псевдонимов SSH-конфигурации",
"ssh.configAliasEmpty": "На этом компьютере нет доступных псевдонимов SSH-конфигурации.",
"ssh.configAliasLoadFailed": "Не удалось загрузить псевдонимы SSH-конфигурации. Вы всё ещё можете ввести данные подключения вручную.",
"ssh.configAliasDescription": "Выберите псевдоним для заполнения хоста, порта, имени пользователя и приватного ключа.",
"ssh.connect": "Подключиться",
"ssh.cancel": "Отмена",
"ssh.connecting": "Подключение...",
"ssh.success": "Подключено. Открыто в новом окне.",
"ssh.validation.required": "Хост и имя пользователя обязательны",
"ssh.validation.passwordRequired": "Пароль обязателен",
"ssh.validation.privateKeyRequired": "Путь к приватному ключу обязателен",
"common.back": "Назад",
"common.next": "Далее",
"remote.trigger": "Удалённое подключение",
"remote.wizard": "Удалённое подключение",
"remoteConnection.feedback": "Обратная связь",
"remote.step.kind": "Выберите метод",
"remote.step.settings": "Заполните настройки",
"remote.step.connecting": "Подключение",
"remote.step.directory": "Выберите каталог",
"remote.kindStepTitle": "Выберите метод",
"remote.kindStepDescription": "Выберите способ доступа к этому рабочему пространству и продолжите с соответствующими настройками подключения.",
"remote.settingsStepTitle": "Настройки подключения",
"remote.settingsStepDescription": "Введите данные для подключения {method}, чтобы мы подготовили удалённую сессию.",
"remote.history.empty": "Сохранённых подходящих подключений нет",
"remote.connectingStepTitle": "Подключение",
"remote.connectingStepDescription": "Устанавливаем подключение {method}. Здесь можно отслеживать прогресс настройки.",
"webRemoteControl.trigger": "Мобильное дистанционное управление",
"webRemoteControl.triggerStatus.idle": "Дистанционное управление выключено",
"webRemoteControl.triggerStatus.starting": "Запуск дистанционного управления",
"webRemoteControl.triggerStatus.waiting": "Ожидание телефона",
"webRemoteControl.triggerStatus.connecting": "Подключение телефона",
"webRemoteControl.triggerStatus.connected": "Телефон подключён",
"webRemoteControl.triggerStatus.error": "Ошибка дистанционного управления",
"webRemoteControl.title": "Мобильное дистанционное управление",
"webRemoteControl.description": "Отсканируйте QR-код или откройте ссылку на телефоне для управления этим рабочим пространством.",
"webRemoteControl.statusLabel": "Статус сессии",
"webRemoteControl.status.idle": "Неактивно",
"webRemoteControl.status.starting": "Запуск",
"webRemoteControl.status.running": "Ожидание телефона",
"webRemoteControl.status.connecting": "Подключение телефона",
"webRemoteControl.status.active": "Телефон подключён",
"webRemoteControl.status.error": "Ошибка подключения",
"webRemoteControl.themeMenu.trigger": "Выбрать тему",
"webRemoteControl.statusDetail.idle": "Готово к подключению.",
"webRemoteControl.statusDetail.starting": "Запуск дистанционного управления...",
"webRemoteControl.statusDetail.running": "Отсканируйте QR-код или откройте ссылку на телефоне.",
"webRemoteControl.statusDetail.connecting": "Телефон подключается...",
"webRemoteControl.statusDetail.active": "Ваш телефон может управлять этим рабочим пространством.",
"webRemoteControl.statusDetail.error": "Не удалось запустить мобильное дистанционное управление.",
"webRemoteControl.generating": "Подготовка QR-кода...",
"webRemoteControl.qrAlt": "QR-код веб-дистанционного управления",
"webRemoteControl.mobileQr.title": "Сканирование с телефона",
"webRemoteControl.mobileQr.description": "Используйте камеру телефона для удалённого открытия этого рабочего пространства.",
"webRemoteControl.statusTag.phone": "Телефон",
"webRemoteControl.statusTag.ready": "Готово",
"webRemoteControl.botChannel.title": "Использовать канал бота",
"webRemoteControl.botChannel.description": "Подключите чат-бота для длительного мобильного доступа.",
"webRemoteControl.botChannel.weixin.title": "Weixin",
"webRemoteControl.botChannel.weixin.description": "Откройте это рабочее пространство из чата Weixin.",
"webRemoteControl.botChannel.feishu.title": "Feishu",
"webRemoteControl.botChannel.feishu.description": "Откройте это рабочее пространство из Feishu.",
"webRemoteControl.botChannel.telegram.title": "Telegram",
"webRemoteControl.botChannel.telegram.description": "Откройте это рабочее пространство из Telegram.",
"webRemoteControl.botChannel.configure": "Настроить в каналах ботов",
"webRemoteControl.botChannel.manageBots": "Управление ботами",
"webRemoteControl.linkLabel": "Ссылка дистанционного управления",
"webRemoteControl.linkPending": "Ссылка дистанционного управления появится здесь, когда будет готова.",
"webRemoteControl.singlePageNote": "Это соединение через реле поддерживает одну телефонную страницу за раз. Если она уже открыта в другом месте, закройте старую страницу.",
"webRemoteControl.copyLink.description": "Не можете отсканировать? Откройте ссылку на телефоне.",
"webRemoteControl.failure.sessionNotFound": "Эта ссылка веб-дистанционного управления больше не действительна. Запустите её снова с рабочего стола.",
"webRemoteControl.failure.sessionExpired": "Эта сессия веб-дистанционного управления уже завершена. Сгенерируйте новую ссылку с рабочего стола.",
"webRemoteControl.failure.sessionConflict": "Эта ссылка уже используется другой страницей. Закройте другую страницу и отсканируйте снова.",
"webRemoteControl.failure.kicked": "Реле отклонило это соединение. Закройте другую страницу и сгенерируйте новый QR-код с рабочего стола.",
"webRemoteControl.failure.workspaceClosed": "Окно рабочего стола закрыто. Вернитесь к рабочему столу и снова запустите веб-дистанционное управление.",
"webRemoteControl.failure.desktopDisconnected": "Рабочий стол отключился, поэтому эта сессия веб-дистанционного управления больше не может продолжаться.",
"webRemoteControl.failure.invalidMobileConnection": "Текущее мобильное соединение больше не действительно. Перезагрузите страницу и переподключитесь.",
"webRemoteControl.failure.desktopBootstrapTimeout": "Окно рабочего стола не ответило вовремя. Убедитесь, что оно ещё запущено, и перезагрузите.",
"webRemoteControl.failure.connectionRecoveryTimeout": "Мобильное соединение не восстановилось вовремя, поэтому веб-дистанционное управление не может продолжить синхронизацию.",
"webRemoteControl.failure.relayUnavailable": "Внешнее соединение через реле недоступно. Убедитесь, что рабочий стол онлайн, и повторите попытку.",
"webRemoteControl.failure.unsupportedAction": "В режиме веб-дистанционного управления можно открывать только рабочие пространства, уже открытые в текущем окне рабочего стола.",
"webRemoteControl.failure.unexpectedError": "Не удалось запустить мобильное дистанционное управление. Повторите с рабочего стола.",
"webRemoteControl.copyLink": "Скопировать ссылку",
"webRemoteControl.copyLink.copied": "Ссылка дистанционного управления скопирована",
"webRemoteControl.copyLinkFailed": "Не удалось скопировать ссылку дистанционного управления: {error}",
"webRemoteControl.refreshQr": "Обновить QR",
"webRemoteControl.refreshQr.confirmTitle": "Обновить QR-код?",
"webRemoteControl.refreshQr.confirmDescription": "Обновление сделает недействительными все ссылки дистанционного управления, скопированные или отсканированные ранее. Подключённым телефонам придётся отсканировать новый QR-код.",
"webRemoteControl.refreshQr.success": "QR-код дистанционного управления обновлён",
"webRemoteControl.refreshQr.failed": "Не удалось обновить QR-код дистанционного управления: {error}",
"webRemoteControl.stop": "Остановить",
"webRemoteControl.switchWorkspace": "Переключить рабочее пространство",
"webRemoteControl.expandNavigation": "Развернуть задачи и рабочие пространства",
"webRemoteControl.collapseNavigation": "Свернуть задачи и рабочие пространства",
"webRemoteControl.noSwitchableWorkspaces": "Нет рабочих пространств для переключения",
"webRemoteControl.noTasks": "Нет доступных задач в текущем окне рабочего стола",
"webRemoteControl.openTask": "Открыть задачу {title}",