File size: 59,532 Bytes
f56a29b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
  "common": {
    "you": "Вы",
    "confirm": "Подтвердить",
    "cancel": "Отмена",
    "loading": "Загрузка..."
  },
  "home": {
    "slogan": "Generative Learning in Multi-Agent Interactive Classroom",
    "greetingWithName": "Привет, {{name}}"
  },
  "toolbar": {
    "pdfParser": "Парсер",
    "pdfUpload": "Загрузить PDF",
    "removePdf": "Удалить файл",
    "webSearchOn": "Включено",
    "webSearchOff": "Нажмите для включения",
    "webSearchDesc": "Поиск актуальной информации в интернете перед генерацией",
    "webSearchProvider": "Поисковый движок",
    "webSearchNoProvider": "Настройте API-ключ поиска в Настройках",
    "selectProvider": "Выбрать провайдера",
    "configureProvider": "Настроить модель",
    "configureProviderHint": "Настройте хотя бы одного провайдера моделей для генерации курсов",
    "enterClassroom": "Войти в класс",
    "advancedSettings": "Расширенные настройки",
    "thinking": "Рассуждение",
    "thinkingBudget": "Бюджет",
    "default": "По умолчанию",
    "on": "Вкл",
    "off": "Выкл",
    "auto": "Авто",
    "dynamic": "Динамически",
    "ttsTitle": "Синтез речи",
    "ttsHint": "Выберите голос для AI-учителя",
    "ttsPreview": "Прослушать",
    "ttsPreviewing": "Воспроизведение...",
    "interactiveModeHint": "Включить интерактивный режим для более практического контента",
    "interactiveModeLabel": "Интерактивный режим"
  },
  "export": {
    "pptx": "Экспорт PPTX",
    "resourcePack": "Экспорт ресурсного пакета",
    "resourcePackDesc": "PPTX + интерактивные страницы",
    "exporting": "Экспорт...",
    "exportSuccess": "Экспорт успешен",
    "exportFailed": "Ошибка экспорта",
    "classroomZip": "Экспорт ZIP класса",
    "classroomZipDesc": "Структура курса + медиафайлы"
  },
  "import": {
    "classroom": "Импорт класса",
    "parsing": "Анализ ZIP...",
    "validating": "Проверка данных...",
    "writingMedia": "Запись медиафайлов...",
    "writingCourse": "Запись данных курса...",
    "success": "Класс успешно импортирован",
    "error": {
      "invalidZip": "Недопустимый файл. Выберите корректный файл .maic.zip.",
      "invalidManifest": "Недопустимый файл класса: manifest.json отсутствует или повреждён.",
      "missingData": "Недопустимый файл класса: отсутствуют необходимые данные курса.",
      "storageFull": "Импорт не удался: хранилище браузера заполнено. Удалите старые классы."
    }
  },
  "chat": {
    "lecture": "Лекция",
    "noConversations": "Нет диалогов",
    "startConversation": "Введите сообщение, чтобы начать диалог",
    "noMessages": "Пока нет сообщений",
    "ended": "завершено",
    "unknown": "Неизвестно",
    "stopDiscussion": "Завершить обсуждение",
    "endQA": "Завершить вопросы и ответы",
    "tabs": {
      "lecture": "Заметки",
      "chat": "Чат"
    },
    "lectureNotes": {
      "empty": "Заметки появятся здесь после воспроизведения лекции",
      "emptyHint": "Нажмите воспроизведение для начала лекции",
      "pageLabel": "Страница {{n}}",
      "currentPage": "Текущая"
    },
    "badge": {
      "qa": "Вопросы",
      "discussion": "ДИСКУС",
      "lecture": "ЛЕКЦ"
    }
  },
  "actions": {
    "names": {
      "spotlight": "В центре внимания",
      "laser": "Указка",
      "wb_open": "Открыть доску",
      "wb_draw_text": "Текст на доске",
      "wb_draw_shape": "Фигура на доске",
      "wb_draw_chart": "График на доске",
      "wb_draw_latex": "Формула на доске",
      "wb_draw_table": "Таблица на доске",
      "wb_draw_line": "Линия на доске",
      "wb_clear": "Очистить доску",
      "wb_delete": "Удалить элемент",
      "wb_close": "Закрыть доску",
      "discussion": "Обсуждение"
    },
    "status": {
      "inputStreaming": "Ожидание",
      "inputAvailable": "Выполняется",
      "outputAvailable": "Завершено",
      "outputError": "Ошибка",
      "outputDenied": "Отклонено",
      "running": "Выполняется",
      "result": "Завершено",
      "error": "Ошибка"
    }
  },
  "agentBar": {
    "readyToLearn": "Готовы учиться вместе?",
    "expandedTitle": "Настройка ролей в классе",
    "configTooltip": "Нажмите для настройки ролей в классе",
    "voiceLabel": "Голос",
    "voiceLoading": "Загрузка...",
    "voiceAutoAssign": "Голоса будут назначены автоматически",
    "searchVoice": "Поиск голосов",
    "noMatchingVoices": "Подходящих голосов нет"
  },
  "proactiveCard": {
    "discussion": "Обсуждение",
    "join": "Присоединиться",
    "skip": "Пропустить",
    "pause": "Пауза",
    "resume": "Продолжить"
  },
  "voice": {
    "startListening": "Голосовой ввод",
    "stopListening": "Остановить запись"
  },
  "stage": {
    "currentScene": "Текущая сцена",
    "generating": "Генерация...",
    "paused": "Пауза",
    "generationFailed": "Ошибка генерации",
    "confirmSwitchTitle": "Переключить сцену",
    "confirmSwitchMessage": "В данный момент идёт обсуждение. Переключение сцены завершит текущую тему. Продолжить?",
    "generatingNextPage": "Сцена генерируется, пожалуйста подождите...",
    "courseComplete": "Курс завершён",
    "fullscreen": "Полный экран",
    "exitFullscreen": "Свернуть"
  },
  "classroomComplete": {
    "title": "Курс завершён",
    "trailLabels": {
      "slide": "страниц",
      "quiz": "тестов",
      "interactive": "интерактивов",
      "pbl": "проектов"
    },
    "quizScoreLabel": "Верно {{correct}} из {{total}}",
    "encouragement": {
      "high": "Отлично — вы справились!",
      "mid": "Хорошая работа — продолжайте.",
      "low": "Неплохое начало — повторите ещё раз."
    }
  },
  "whiteboard": {
    "title": "Интерактивная доска",
    "open": "Открыть доску",
    "clear": "Очистить доску",
    "minimize": "Свернуть доску",
    "ready": "Доска готова",
    "readyHint": "Элементы появятся здесь, когда AI их добавит",
    "clearSuccess": "Доска очищена",
    "clearError": "Ошибка очистки доски: ",
    "resetView": "Сбросить вид",
    "restoreError": "Ошибка восстановления доски: ",
    "history": "История",
    "restore": "Восстановить",
    "noHistory": "Истории пока нет",
    "restored": "Доска восстановлена",
    "elementCount": "{{count}} элементов"
  },
  "quiz": {
    "title": "Тест",
    "subtitle": "Проверьте свои знания",
    "questionsCount": "вопросов",
    "totalPrefix": "",
    "pointsSuffix": "б.",
    "startQuiz": "Начать тест",
    "multipleChoiceHint": "(Множественный выбор — выберите все правильные ответы)",
    "inputPlaceholder": "Введите ваш ответ...",
    "charCount": "символов",
    "yourAnswer": "Ваш ответ:",
    "notAnswered": "Нет ответа",
    "aiComment": "Коммент AI",
    "singleChoice": "Один ответ",
    "multipleChoice": "Несколько",
    "shortAnswer": "Развёрнутый ответ",
    "analysis": "Анализ: ",
    "excellent": "Отлично!",
    "keepGoing": "Продолжайте!",
    "needsReview": "Требует повторения",
    "correct": "верно",
    "incorrect": "неверно",
    "answering": "В процессе",
    "submitAnswers": "Отправить ответы",
    "aiGrading": "AI проверяет...",
    "aiGradingWait": "Пожалуйста подождите, анализируем ваши ответы",
    "quizReport": "Результаты теста",
    "retry": "Повторить"
  },
  "roundtable": {
    "teacher": "УЧИТЕЛЬ",
    "you": "ВЫ",
    "inputPlaceholder": "Введите сообщение...",
    "listening": "Слушаю...",
    "processing": "Обработка...",
    "noSpeechDetected": "Речь не обнаружена, попробуйте ещё раз",
    "discussionEnded": "Обсуждение завершено",
    "qaEnded": "Вопросы и ответы завершены",
    "thinking": "Размышляет",
    "yourTurn": "Ваша очередь",
    "stopDiscussion": "Завершить обсуждение",
    "autoPlay": "Автовоспр.",
    "autoPlayOff": "Остановить",
    "speed": "Скорость",
    "voiceInput": "Голосовой ввод",
    "voiceInputDisabled": "Голосовой ввод отключён",
    "textInput": "Текстовый ввод",
    "stopRecording": "Остановить запись",
    "startRecording": "Начать запись"
  },
  "pbl": {
    "legacyFormat": "Эта PBL-сцена использует устаревший формат. Пожалуйста, перегенерируйте курс.",
    "emptyProject": "PBL-проект ещё не создан. Создайте его через генерацию курса.",
    "roleSelection": {
      "title": "Выберите роль",
      "description": "Выберите роль для совместной работы над проектом"
    },
    "workspace": {
      "restart": "Перезапуск",
      "confirmRestart": "Сбросить весь прогресс?",
      "confirm": "Подтвердить",
      "cancel": "Отмена"
    },
    "issueboard": {
      "title": "Доска задач",
      "noIssues": "Задач пока нет",
      "statusDone": "Готово",
      "statusActive": "Активна",
      "statusPending": "В ожидании"
    },
    "chat": {
      "title": "Обсуждение проекта",
      "currentIssue": "Текущая задача",
      "mentionHint": "Используйте @question для вопроса, @judge для проверки",
      "placeholder": "Введите сообщение...",
      "send": "Отправить",
      "issueCompleteMessage": "Задача \"{{completed}}\" выполнена! Переход к следующей: \"{{next}}\"",
      "allCompleteMessage": "🎉 Все задачи выполнены! Отличная работа над проектом!"
    },
    "guide": {
      "howItWorks": "Как это работает",
      "help": "Помощь",
      "title": "Помощь",
      "step1": {
        "title": "Шаг 1: Выберите роль",
        "desc": "После генерации проекта выберите роль из списка (не-системные роли отмечены 🟢)"
      },
      "step2": {
        "title": "Шаг 2: Выполняйте задачи",
        "desc": "Каждая задача — это учебное задание:",
        "s1": {
          "title": "Просмотрите задачу",
          "desc": "Изучите заголовок, описание и исполнителя задачи"
        },
        "s2": {
          "title": "Получите подсказки",
          "example": "@question С чего начать?\n@question Как реализовать эту функцию?",
          "desc": "Question Agent даёт наводящие вопросы и подсказки (не прямые ответы)"
        },
        "s3": {
          "title": "Сдайте работу",
          "example": "@judge Готово, проверьте мои заметки",
          "desc": "Judge Agent оценивает вашу работу и даёт обратную связь:",
          "complete": "Автоматический переход к следующей задаче",
          "revision": "Доработайте по замечаниям"
        }
      },
      "step3": {
        "title": "Шаг 3: Завершите проект",
        "desc": "Когда все задачи выполнены, система показывает \"🎉 Проект завершён!\""
      }
    }
  },
  "share": {
    "notReady": "Доступно после завершения генерации"
  },
  "classroom": {
    "recentClassrooms": "Недавние",
    "today": "Сегодня",
    "yesterday": "Вчера",
    "daysAgo": "дн. назад",
    "slides": "слайдов",
    "nameCopied": "Название скопировано",
    "deleteConfirmTitle": "Удалить",
    "delete": "Удалить",
    "rename": "Переименовать",
    "renamePlaceholder": "Введите название класса",
    "renameFailed": "Не удалось переименовать класс",
    "searchPlaceholder": "Поиск курсов...",
    "searchAriaLabel": "Поиск курсов",
    "clearSearch": "Очистить",
    "searchEmpty": "Курсы не найдены"
  },
  "upload": {
    "pdfSizeLimit": "Поддержка PDF до 50 МБ",
    "generateFailed": "Ошибка генерации, попробуйте снова",
    "requirementPlaceholder": "Расскажите, что вы хотите изучить, например:\n\"Научи меня Python с нуля за 30 минут\"\n\"Объясни преобразование Фурье на доске\"\n\"Как играть в настольную игру Авалон\"",
    "requirementRequired": "Пожалуйста, укажите требования к курсу",
    "fileTooLarge": "Файл слишком большой. Выберите PDF до 50 МБ"
  },
  "generation": {
    "analyzingPdf": "Анализ PDF-документа",
    "analyzingPdfDesc": "Извлечение структуры и содержимого документа...",
    "pdfLoadFailed": "Не удалось загрузить PDF, попробуйте снова",
    "pdfParseFailed": "Ошибка обработки PDF",
    "streamNotReadable": "Не удалось прочитать поток генерации",
    "generatingOutlines": "Создание структуры курса",
    "generatingOutlinesDesc": "Формирование учебной программы...",
    "generatingSlideContent": "Генерация содержимого страниц",
    "generatingSlideContentDesc": "Создание слайдов, тестов и интерактивного контента...",
    "generatingActions": "Генерация учебных действий",
    "generatingActionsDesc": "Подготовка нарратива, внимания и взаимодействий...",
    "generationComplete": "Генерация завершена!",
    "generationFailed": "Ошибка генерации",
    "generatingCourse": "Генерация курса",
    "openingClassroom": "Открытие класса...",
    "outlineReady": "Структура курса сгенерирована",
    "generatingFirstPage": "Генерация первой страницы...",
    "firstPageReady": "Первая страница готова! Открываю класс...",
    "speechFailed": "Ошибка генерации речи",
    "retryScene": "Повторить",
    "retryingScene": "Перегенерация...",
    "backToHome": "На главную",
    "sessionNotFound": "Сессия не найдена",
    "sessionNotFoundDesc": "Пожалуйста, заполните требования к курсу, чтобы начать генерацию.",
    "goBackAndRetry": "Вернуться и повторить",
    "classroomReady": "Ваша персонализированная AI-среда обучения успешно создана.",
    "aiWorking": "AI-агенты работают...",
    "textTruncated": "Текст документа слишком длинный, используются первые {{n}} символов",
    "imageTruncated": "Найдено {{total}} изображений, что превышает лимит в {{max}}. Лишние будут описаны текстом",
    "agentGeneration": "Генерация ролей в классе",
    "agentGenerationDesc": "Создание ролей на основе содержания курса...",
    "agentRevealTitle": "Роли в вашем классе",
    "viewAgents": "Просмотреть роли",
    "continue": "Продолжить",
    "outlineRetrying": "Проблема с генерацией структуры, повтор...",
    "outlineEmptyResponse": "Модель не вернула валидную структуру. Проверьте настройки модели и попробуйте снова",
    "outlineGenerateFailed": "Ошибка генерации структуры, попробуйте позже",
    "webSearching": "Поиск в интернете",
    "webSearchingDesc": "Поиск актуальной информации в сети",
    "webSearchFailed": "Ошибка веб-поиска"
  },
  "settings": {
    "title": "Настройки",
    "description": "Настройка параметров приложения",
    "language": "Язык",
    "languageDesc": "Выберите язык интерфейса",
    "theme": "Тема",
    "themeDesc": "Выберите тему оформления (Светлая/Тёмная/Системная)",
    "themeOptions": {
      "light": "Светлая",
      "dark": "Тёмная",
      "system": "Системная"
    },
    "apiKey": "API-ключ",
    "apiKeyDesc": "Настройте ваш API-ключ",
    "apiBaseUrl": "URL API-эндпоинта",
    "apiBaseUrlDesc": "Настройте URL API-эндпоинта",
    "apiKeyRequired": "API-ключ не может быть пустым",
    "model": "Настройка модели",
    "modelDesc": "Настройте AI-модели",
    "modelPlaceholder": "Введите или выберите название модели",
    "ttsModel": "Модель TTS",
    "ttsModelDesc": "Настройте модели TTS",
    "ttsModelPlaceholder": "Введите или выберите модель TTS",
    "ttsModelOptions": {
      "openaiTts": "OpenAI TTS",
      "azureTts": "Azure TTS"
    },
    "availableModels": "Доступные модели",
    "modelSelectedViaVoice": "Модель определяется выбором голоса",
    "testConnection": "Тест подключения",
    "testConnectionDesc": "Проверить доступность текущей конфигурации API",
    "testing": "Тестирование...",
    "agentSettings": "Настройки агентов",
    "agentSettingsDesc": "Выберите агентов для участия в беседе. Выберите 1 для режима одного агента, несколько — для совместного режима.",
    "agentMode": "Режим агентов",
    "agentModePreset": "Предустановка",
    "agentModeAuto": "Автогенерация",
    "agentModeAutoDesc": "AI автоматически создаст подходящие роли",
    "autoAgentCount": "Количество агентов",
    "autoAgentCountDesc": "Количество агентов для автогенерации (включая учителя)",
    "atLeastOneAgent": "Выберите хотя бы одного агента",
    "singleAgentMode": "Один агент",
    "directAnswer": "Прямой ответ",
    "multiAgentMode": "Мульти-агент",
    "agentsCollaborating": "Совместное обсуждение",
    "agentsCollaboratingCount": "{{count}} агентов выбрано для совместного обсуждения",
    "maxTurns": "Максимум реплик",
    "maxTurnsDesc": "Максимальное число реплик обсуждения между агентами (действие и ответ каждого агента считается одной репликой)",
    "priority": "Приоритет",
    "actions": "Действия",
    "actionCount": "{{count}} действий",
    "selectedAgent": "Выбранный агент",
    "selectedAgents": "Выбранные агенты",
    "required": "Обязательно",
    "agentNames": {
      "default-1": "AI-учитель",
      "default-2": "AI-ассистент",
      "default-3": "Весельчак",
      "default-4": "Почемучка",
      "default-5": "Конспектист",
      "default-6": "Мыслитель"
    },
    "agentRoles": {
      "teacher": "Учитель",
      "assistant": "Ассистент",
      "student": "Ученик"
    },
    "agentDescriptions": {
      "default-1": "Ведущий учитель с понятными и структурированными объяснениями",
      "default-2": "Помогает в обучении и разъясняет ключевые моменты",
      "default-3": "Привносит юмор и энергию в класс",
      "default-4": "Всегда любопытный, любит спрашивать почему и как",
      "default-5": "Усердно записывает и систематизирует заметки",
      "default-6": "Глубоко размышляет и исследует суть тем"
    },
    "close": "Закрыть",
    "save": "Сохранить",
    "providers": "LLM",
    "addProviderDescription": "Добавьте провайдеров моделей для расширения доступных AI-моделей",
    "providerNames": {
      "openai": "OpenAI",
      "anthropic": "Claude",
      "google": "Gemini",
      "deepseek": "DeepSeek",
      "qwen": "Qwen",
      "kimi": "Kimi",
      "minimax": "MiniMax",
      "glm": "GLM",
      "siliconflow": "SiliconFlow",
      "doubao": "Doubao",
      "openrouter": "OpenRouter",
      "grok": "Grok",
      "tencent-hunyuan": "Tencent Hunyuan",
      "xiaomi": "Xiaomi MiMo",
      "ollama": "Ollama (Локальный)"
    },
    "providerTypes": {
      "openai": "Протокол OpenAI",
      "anthropic": "Протокол Claude",
      "google": "Протокол Gemini"
    },
    "modelCount": "моделей",
    "modelSingular": "модель",
    "defaultModel": "Модель по умолчанию",
    "webSearch": "Веб-поиск",
    "mcp": "MCP",
    "knowledgeBase": "База знаний",
    "documentParser": "Обработка документов",
    "conversationSettings": "Беседа",
    "keyboardShortcuts": "Горячие клавиши",
    "generalSettings": "Общие",
    "systemSettings": "Система",
    "addProvider": "Добавить",
    "importFromClipboard": "Импорт из буфера",
    "apiSecret": "API-ключ",
    "apiHost": "Base URL",
    "baseUrlRegion": {
      "china": "Китай",
      "international": "Международный"
    },
    "requestUrl": "URL запроса",
    "models": "Модели",
    "addModel": "Добавить",
    "reset": "Сброс",
    "fetch": "Получить",
    "connectionSuccess": "Подключение успешно",
    "connectionFailed": "Ошибка подключения",
    "capabilities": {
      "vision": "Видение",
      "tools": "Инструменты",
      "streaming": "Стриминг"
    },
    "contextWindow": "Контекст",
    "contextShort": "кнткс",
    "outputWindow": "Вывод",
    "addProviderButton": "Добавить",
    "addProviderDialog": "Добавить провайдера моделей",
    "providerName": "Название",
    "providerNamePlaceholder": "напр., Мой OpenAI Proxy",
    "providerNameRequired": "Введите название провайдера",
    "providerApiMode": "Режим API",
    "apiModeOpenAI": "Протокол OpenAI",
    "apiModeAnthropic": "Протокол Claude",
    "apiModeGoogle": "Протокол Gemini",
    "defaultBaseUrl": "Base URL по умолчанию",
    "providerIcon": "URL иконки провайдера",
    "requiresApiKey": "Требуется API-ключ",
    "deleteProvider": "Удалить провайдера",
    "deleteProviderConfirm": "Вы уверены, что хотите удалить этого провайдера?",
    "addCustomTTSProvider": "Добавить TTS-провайдер",
    "addCustomASRProvider": "Добавить ASR-провайдер",
    "addCustomAudioProviderDescription": "Добавить OpenAI-совместимый аудио-провайдер",
    "customVoices": "Голоса",
    "voiceIdPlaceholder": "ID голоса (напр. alloy)",
    "voiceNamePlaceholder": "Отображаемое имя",
    "addVoice": "Добавить",
    "modelNamePlaceholder": "Необязательно",
    "defaultModelHint": "Имя модели в API-запросах (напр. kokoro, tts-1)",
    "noVoicesAdded": "Голоса ещё не добавлены. Добавьте ниже для выбора в агентах.",
    "noModelsAdded": "Модели ещё не добавлены. Добавьте ниже для выбора модели.",
    "noModelsWarning": "Добавьте хотя бы одну модель ниже перед использованием этого провайдера.",
    "asrNoTranscription": "Транскрипция не получена. Попробуйте говорить громче или дольше.",
    "cannotDeleteBuiltIn": "Нельзя удалить встроенного провайдера",
    "resetToDefault": "Сбросить на стандартные",
    "resetToDefaultDescription": "Восстановить список моделей по умолчанию (API-ключ и Base URL будут сохранены)",
    "resetConfirmDescription": "Это удалит все пользовательские модели и восстановит встроенный список. API-ключ и Base URL будут сохранены.",
    "confirmReset": "Подтвердить сброс",
    "resetSuccess": "Настройки по умолчанию восстановлены",
    "saveSuccess": "Настройки сохранены",
    "saveFailed": "Не удалось сохранить настройки, попробуйте снова",
    "cannotDeleteBuiltInModel": "Нельзя удалить встроенную модель",
    "cannotEditBuiltInModel": "Нельзя редактировать встроенную модель",
    "modelIdRequired": "Введите ID модели",
    "noModelsAvailable": "Нет доступных моделей для тестирования",
    "providerMetadata": "Метаданные провайдера",
    "editModel": "Редактировать модель",
    "editModelDescription": "Изменить конфигурацию и возможности модели",
    "addNewModel": "Новая модель",
    "modelsManagementDescription": "Управляйте моделями и возможностями, доступными для этого провайдера.",
    "addNewModelDescription": "Добавить конфигурацию новой модели",
    "modelId": "ID модели",
    "modelIdPlaceholder": "напр., gpt-4o",
    "modelName": "Отображаемое имя",
    "modelCapabilities": "Возможности",
    "advancedSettings": "Расширенные настройки",
    "contextWindowLabel": "Контекстное окно",
    "contextWindowPlaceholder": "напр., 128000",
    "outputWindowLabel": "Макс. выходных токенов",
    "outputWindowPlaceholder": "напр., 4096",
    "testModel": "Тест модели",
    "deleteModel": "Удалить",
    "cancelEdit": "Отмена",
    "saveModel": "Сохранить",
    "howToUse": "Как использовать",
    "step1ConfigureProvider": "Перейдите в «Провайдеры моделей», выберите или добавьте провайдера и настройте подключение (API-ключ, Base URL и т.д.)",
    "step2SelectModel": "Выберите нужную модель в разделе «Активная модель» ниже",
    "step3StartUsing": "После сохранения система будет использовать выбранную модель",
    "activeModel": "Активная модель",
    "activeModelDescription": "Выберите модель для AI-диалогов и генерации контента",
    "selectModel": "Выбрать модель",
    "searchModels": "Поиск моделей",
    "noModelsFound": "Подходящих моделей не найдено",
    "noConfiguredProviders": "Нет настроенных провайдеров",
    "configureProvidersFirst": "Настройте подключение провайдера в разделе «Провайдеры моделей» слева",
    "currentlyUsing": "Используется",
    "ttsSettings": "Синтез речи",
    "asrSettings": "Распознавание речи",
    "audioSettings": "Настройки аудио",
    "ttsSection": "Синтез речи (TTS)",
    "asrSection": "Распознавание речи (ASR)",
    "ttsDescription": "TTS (Text-to-Speech) — преобразование текста в речь",
    "asrDescription": "ASR (Automatic Speech Recognition) — преобразование речи в текст",
    "enableTTS": "Включить синтез речи",
    "ttsEnabledDescription": "При включении аудио будет генерироваться во время создания курса",
    "ttsVoiceConfigHint": "Голос для каждого агента можно настроить в «Настройке ролей» на главной странице",
    "enableASR": "Включить распознавание речи",
    "asrEnabledDescription": "При включении ученики смогут использовать микрофон для голосового ввода",
    "ttsProvider": "Провайдер TTS",
    "ttsLanguageFilter": "Фильтр по языку",
    "allLanguages": "Все языки",
    "ttsVoice": "Голос",
    "ttsSpeed": "Скорость",
    "ttsBaseUrl": "Base URL",
    "ttsApiKey": "API-ключ",
    "doubaoAppId": "App ID",
    "doubaoAccessKey": "Access Key",
    "asrProvider": "Провайдер ASR",
    "asrLanguage": "Язык распознавания",
    "asrBaseUrl": "Base URL",
    "asrApiKey": "API-ключ",
    "enterApiKey": "Введите API-ключ",
    "enterCustomBaseUrl": "Введите пользовательский Base URL",
    "browserNativeNote": "Встроенный ASR браузера не требует настройки и полностью бесплатен",
    "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)",
    "providerAzureTTS": "Azure TTS",
    "providerGLMTTS": "GLM TTS",
    "providerQwenTTS": "Qwen TTS (Alibaba Cloud Bailian)",
    "providerVoxCPMTTS": "VoxCPM2",
    "providerDoubaoTTS": "Doubao TTS 2.0 (Volcengine)",
    "providerElevenLabsTTS": "ElevenLabs TTS",
    "providerMiniMaxTTS": "MiniMax TTS",
    "providerBrowserNativeTTS": "Встроенный TTS браузера",
    "voxcpmBackend": "Бэкенд",
    "voxcpmBaseUrlPending": "Введите Base URL, чтобы сформировать URL запроса",
    "voxcpmAutoVoiceNoPreview": "Автоголос формируется из контекста агента, поэтому его нельзя прослушать отдельно",
    "voxcpmVoicesTitle": "Голоса VoxCPM",
    "voxcpmVoicesDescription": "Сохраняются в этом браузере и добавляются в общий пул голосов Agent Bar.",
    "voxcpmAutoVoicePrivacyNote": "Автоголос отправляет persona агента в настроенный бэкенд VoxCPM как голосовую подсказку.",
    "voxcpmPromptCount": "Prompt {{count}}",
    "voxcpmCloneCount": "Клон {{count}}",
    "voxcpmCloneUnsupported": "Текущий бэкенд не поддерживает клонирование",
    "voxcpmVoicePool": "Пул голосов",
    "voxcpmVoiceCount": "{{count}} голосов",
    "voxcpmAutoVoice": "Автоголос",
    "voxcpmAutoVoiceDescription": "Использовать persona агента как голосовую подсказку",
    "voxcpmUnavailable": "Недоступно",
    "voxcpmClone": "Клон",
    "voxcpmCloneUnsupportedDetail": "Текущий бэкенд не поддерживает клонирование",
    "voxcpmNoCustomVoices": "Пользовательских голосов пока нет",
    "voxcpmCloneSaveOnly": "Для этого бэкенда доступно только сохранение",
    "voxcpmVoiceNamePlaceholder": "Название голоса",
    "voxcpmPromptPlaceholder": "Например: ясный естественный голос учителя со средней скоростью",
    "voxcpmAddVoice": "Добавить голос",
    "voxcpmCloneVoiceNamePlaceholder": "Название клонированного голоса",
    "voxcpmUploadReferenceAudio": "Загрузить референсное аудио",
    "voxcpmRecord": "Записать",
    "voxcpmReferenceAudioLimitHint": "Референсное аудио должно быть не больше 10 МБ / 60 секунд и перед сохранением конвертируется в WAV.",
    "voxcpmReferenceTextPlaceholder": "Текст референсного аудио, необязательно",
    "voxcpmVoiceDescriptionPlaceholder": "Описание голоса, необязательно",
    "voxcpmAddClone": "Добавить клон",
    "voxcpmRecordingUnsupported": "Этот браузер не поддерживает запись",
    "voxcpmRecordedVoiceName": "Записанный голос",
    "voxcpmRecordingFailed": "Не удалось преобразовать запись",
    "voxcpmRecordingStartFailed": "Не удалось начать запись",
    "voxcpmBaseUrlRequired": "Сначала введите VoxCPM Base URL",
    "voxcpmPreviewFailed": "Не удалось прослушать",
    "voxcpmVoiceSaved": "Голос VoxCPM сохранен",
    "voxcpmVoiceSaveFailed": "Не удалось сохранить голос",
    "voxcpmReferenceAudioInvalid": "Недопустимое референсное аудио",
    "voxcpmCloneSaved": "Клонированный голос VoxCPM сохранен",
    "voxcpmCloneSaveFailed": "Не удалось сохранить клонированный голос",
    "voxcpmStopPreview": "Остановить прослушивание",
    "voxcpmPreviewVoice": "Прослушать голос",
    "voxcpmDeleteVoice": "Удалить голос",
    "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)",
    "providerBrowserNative": "Встроенный ASR браузера",
    "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)",
    "providerUnpdf": "unpdf (встроенный)",
    "providerMinerU": "MinerU",
    "providerMinerUCloud": "MinerU (Облако)",
    "browserNativeTTSNote": "Встроенный TTS браузера не требует настройки и полностью бесплатен, использует системные голоса",
    "testTTS": "Тест TTS",
    "testASR": "Тест ASR",
    "testSuccess": "Тест пройден",
    "testFailed": "Тест не пройден",
    "ttsTestText": "Текст для TTS-теста",
    "ttsTestSuccess": "TTS-тест пройден, аудио воспроизведено",
    "ttsTestFailed": "TTS-тест не пройден",
    "asrTestSuccess": "Распознавание речи успешно",
    "asrTestFailed": "Распознавание речи не удалось",
    "asrProcessing": "Обработка...",
    "asrResult": "Результат распознавания",
    "asrNotSupported": "Браузер не поддерживает Speech Recognition API",
    "browserTTSNotSupported": "Браузер не поддерживает Speech Synthesis API",
    "browserTTSNoVoices": "В текущем браузере нет доступных голосов TTS",
    "microphoneAccessDenied": "Доступ к микрофону запрещён",
    "microphoneAccessFailed": "Не удалось получить доступ к микрофону",
    "asrResultPlaceholder": "Результат распознавания появится после записи",
    "useThisProvider": "Использовать этого провайдера",
    "fetchVoices": "Загрузить список голосов",
    "fetchingVoices": "Загрузка...",
    "voicesFetched": "Голоса загружены",
    "fetchVoicesFailed": "Не удалось загрузить голоса",
    "voiceApiKeyRequired": "Требуется API-ключ",
    "voiceBaseUrlRequired": "Требуется Base URL",
    "ttsTestTextPlaceholder": "Введите текст для озвучивания",
    "ttsTestTextDefault": "Привет, это тестовая речь.",
    "startRecording": "Начать запись",
    "stopRecording": "Остановить запись",
    "recording": "Запись...",
    "transcribing": "Транскрибирование...",
    "transcriptionResult": "Результат транскрибирования",
    "noTranscriptionResult": "Нет результата транскрибирования",
    "baseUrlOptional": "Base URL (необязательно)",
    "defaultValue": "По умолчанию",
    "voiceMarin": "Рекомендуется — лучшее качество",
    "voiceCedar": "Рекомендуется — лучшее качество",
    "voiceAlloy": "Нейтральный, сбалансированный",
    "voiceAsh": "Спокойный, профессиональный",
    "voiceBallad": "Элегантный, лиричный",
    "voiceCoral": "Тёплый, дружелюбный",
    "voiceEcho": "Мужской, чёткий",
    "voiceFable": "Повествовательный, яркий",
    "voiceNova": "Женский, яркий",
    "voiceOnyx": "Мужской, глубокий",
    "voiceSage": "Мудрый, уравновешенный",
    "voiceShimmer": "Женский, мягкий",
    "voiceVerse": "Естественный, плавный",
    "glmVoiceTongtong": "Голос по умолчанию",
    "glmVoiceChuichui": "Голос Chuichui",
    "glmVoiceXiaochen": "Голос Xiaochen",
    "glmVoiceJam": "Голос Jam",
    "glmVoiceKazi": "Голос Kazi",
    "glmVoiceDouji": "Голос Douji",
    "glmVoiceLuodo": "Голос Luodo",
    "qwenVoiceCherry": "Солнечный, тёплый и естественный",
    "qwenVoiceSerena": "Нежный и мягкий",
    "qwenVoiceEthan": "Энергичный и живой",
    "qwenVoiceChelsie": "Аниме-виртуальная подруга",
    "qwenVoiceMomo": "Игривый и весёлый",
    "qwenVoiceVivian": "Милый и дерзкий",
    "qwenVoiceMoon": "Крутой и красивый",
    "qwenVoiceMaia": "Интеллектуальный и нежный",
    "qwenVoiceKai": "Спа для ваших ушей",
    "qwenVoiceNofish": "Дизайнер с особым произношением",
    "qwenVoiceBella": "Маленькая лоли",
    "qwenVoiceJennifer": "Кинематографический американский женский голос",
    "qwenVoiceRyan": "Быстрый, драматичный",
    "qwenVoiceKaterina": "Зрелая леди с запоминающимся ритмом",
    "qwenVoiceAiden": "Американский парень",
    "qwenVoiceEldricSage": "Спокойный и мудрый старейшина",
    "qwenVoiceMia": "Нежная как весенняя вода",
    "qwenVoiceMochi": "Умный малыш с детской невинностью",
    "qwenVoiceBellona": "Громкий голос, чёткое произношение",
    "qwenVoiceVincent": "Уникальный хриплый голос",
    "qwenVoiceBunny": "Супер-милая лоли",
    "qwenVoiceNeil": "Профессиональный диктор",
    "qwenVoiceElias": "Профессиональный инструктор",
    "qwenVoiceArthur": "Простой голос, пропитанный годами",
    "qwenVoiceNini": "Мягкий и липкий голос",
    "qwenVoiceEbona": "Её шёпот как ржавый ключ",
    "qwenVoiceSeren": "Нежный и успокаивающий голос",
    "qwenVoicePip": "Озорной, но полный детской невинности",
    "qwenVoiceStella": "Сладкий девичий голос",
    "qwenVoiceBodega": "Энтузиастичный испанский дядя",
    "qwenVoiceSonrisa": "Энтузиастичная латиноамериканка",
    "qwenVoiceAlek": "Холод, но теплота под шерстяным пальто",
    "qwenVoiceDolce": "Ленивый итальянский дядя",
    "qwenVoiceSohee": "Нежная, весёлая кореянка",
    "qwenVoiceOnoAnna": "Шаловливая подруга детства",
    "qwenVoiceLenn": "Рациональный немецкий юноша",
    "qwenVoiceEmilien": "Романтический французский брат",
    "qwenVoiceAndre": "Магнетический, естественный мужской голос",
    "qwenVoiceRadioGol": "Футбольный поэт Rádio Gol!",
    "qwenVoiceJada": "Живая шанхайская леди",
    "qwenVoiceDylan": "Пекинский парень",
    "qwenVoiceLi": "Терпеливый инструктор йоги",
    "qwenVoiceMarcus": "Твёрдое сердце — вкус старого Шаньси",
    "qwenVoiceRoy": "Юморной тайваньский парень",
    "qwenVoicePeter": "Тяньцзиньский комик",
    "qwenVoiceSunny": "Милая сычуаньская девушка",
    "qwenVoiceEric": "Чэндуский джентльмен",
    "qwenVoiceRocky": "Юморной гонконгский парень",
    "qwenVoiceKiki": "Милая гонконгская девушка",
    "lang_auto": "Авто-определение",
    "lang_zh": "中文",
    "lang_yue": "粤語",
    "lang_en": "English",
    "lang_ja": "日本語",
    "lang_ko": "한국어",
    "lang_es": "Español",
    "lang_fr": "Français",
    "lang_de": "Deutsch",
    "lang_ru": "Русский",
    "lang_ar": "العربية",
    "lang_pt": "Português",
    "lang_it": "Italiano",
    "lang_af": "Afrikaans",
    "lang_hy": "Հայերեն",
    "lang_az": "Azərbaycan",
    "lang_be": "Беларуская",
    "lang_bs": "Bosanski",
    "lang_bg": "Български",
    "lang_ca": "Català",
    "lang_hr": "Hrvatski",
    "lang_cs": "Čeština",
    "lang_da": "Dansk",
    "lang_nl": "Nederlands",
    "lang_et": "Eesti",
    "lang_fi": "Suomi",
    "lang_gl": "Galego",
    "lang_el": "Ελληνικά",
    "lang_he": "עברית",
    "lang_hi": "हिन्दी",
    "lang_hu": "Magyar",
    "lang_is": "Íslenska",
    "lang_id": "Bahasa Indonesia",
    "lang_kn": "ಕನ್ನಡ",
    "lang_kk": "Қазақша",
    "lang_lv": "Latviešu",
    "lang_lt": "Lietuvių",
    "lang_mk": "Македонски",
    "lang_ms": "Bahasa Melayu",
    "lang_mr": "मराठी",
    "lang_mi": "Te Reo Māori",
    "lang_ne": "नेपाली",
    "lang_no": "Norsk",
    "lang_fa": "فارسی",
    "lang_pl": "Polski",
    "lang_ro": "Română",
    "lang_sr": "Српски",
    "lang_sk": "Slovenčina",
    "lang_sl": "Slovenščina",
    "lang_sw": "Kiswahili",
    "lang_sv": "Svenska",
    "lang_tl": "Tagalog",
    "lang_fil": "Filipino",
    "lang_ta": "தமிழ்",
    "lang_th": "ไทย",
    "lang_tr": "Türkçe",
    "lang_uk": "Українська",
    "lang_ur": "اردو",
    "lang_vi": "Tiếng Việt",
    "lang_cy": "Cymraeg",
    "lang_zh-CN": "中文(简体,中国)",
    "lang_zh-TW": "中文(繁體,台灣)",
    "lang_zh-HK": "粵語(香港)",
    "lang_yue-Hant-HK": "粵語(繁體)",
    "lang_en-US": "English (United States)",
    "lang_en-GB": "English (United Kingdom)",
    "lang_en-AU": "English (Australia)",
    "lang_en-CA": "English (Canada)",
    "lang_en-IN": "English (India)",
    "lang_en-NZ": "English (New Zealand)",
    "lang_en-ZA": "English (South Africa)",
    "lang_ja-JP": "日本語(日本)",
    "lang_ko-KR": "한국어(대한민국)",
    "lang_de-DE": "Deutsch (Deutschland)",
    "lang_fr-FR": "Français (France)",
    "lang_es-ES": "Español (España)",
    "lang_es-MX": "Español (México)",
    "lang_es-AR": "Español (Argentina)",
    "lang_es-CO": "Español (Colombia)",
    "lang_it-IT": "Italiano (Italia)",
    "lang_pt-BR": "Português (Brasil)",
    "lang_pt-PT": "Português (Portugal)",
    "lang_ru-RU": "Русский (Россия)",
    "lang_nl-NL": "Nederlands (Nederland)",
    "lang_pl-PL": "Polski (Polska)",
    "lang_cs-CZ": "Čeština (Česko)",
    "lang_da-DK": "Dansk (Danmark)",
    "lang_fi-FI": "Suomi (Suomi)",
    "lang_sv-SE": "Svenska (Sverige)",
    "lang_no-NO": "Norsk (Norge)",
    "lang_tr-TR": "Türkçe (Türkiye)",
    "lang_el-GR": "Ελληνικά (Ελλάδα)",
    "lang_hu-HU": "Magyar (Magyarország)",
    "lang_ro-RO": "Română (România)",
    "lang_sk-SK": "Slovenčina (Slovensko)",
    "lang_bg-BG": "Български (България)",
    "lang_hr-HR": "Hrvatski (Hrvatska)",
    "lang_ca-ES": "Català (Espanya)",
    "lang_ar-SA": "العربية (السعودية)",
    "lang_ar-EG": "العربية (مصر)",
    "lang_he-IL": "עברית (ישראל)",
    "lang_hi-IN": "हिन्दी (भारत)",
    "lang_th-TH": "ไทย (ประเทศไทย)",
    "lang_vi-VN": "Tiếng Việt (Việt Nam)",
    "lang_id-ID": "Bahasa Indonesia (Indonesia)",
    "lang_ms-MY": "Bahasa Melayu (Malaysia)",
    "lang_fil-PH": "Filipino (Pilipinas)",
    "lang_af-ZA": "Afrikaans (Suid-Afrika)",
    "lang_uk-UA": "Українська (Україна)",
    "pdfSettings": "Обработка PDF",
    "pdfParsingSettings": "Настройки обработки PDF",
    "pdfDescription": "Выберите движок для обработки PDF с поддержкой извлечения текста, изображений и таблиц",
    "pdfProvider": "PDF-парсер",
    "pdfFeatures": "Поддерживаемые функции",
    "pdfApiKey": "API-ключ",
    "pdfBaseUrl": "Base URL",
    "mineruDescription": "MinerU — коммерческий сервис обработки PDF с поддержкой извлечения таблиц, распознавания формул и анализа макета.",
    "mineruApiKeyRequired": "Перед использованием необходимо получить API-ключ на сайте MinerU.",
    "mineruWarning": "Внимание",
    "mineruCostWarning": "MinerU — коммерческий сервис, использование может быть платным. Проверьте цены на сайте MinerU.",
    "enterMinerUApiKey": "Введите MinerU API-ключ",
    "mineruLocalDescription": "MinerU поддерживает локальное развёртывание с расширенной обработкой PDF (таблицы, формулы, анализ макета). Требуется предварительное развёртывание сервиса MinerU.",
    "mineruServerAddress": "Адрес локального сервера MinerU (напр., http://localhost:8080)",
    "mineruApiKeyOptional": "Требуется только если на сервере включена аутентификация",
    "mineruCloudApiKeyPlaceholder": "Введите API ключ MinerU Cloud",
    "optionalApiKey": "Необязательный API-ключ",
    "featureText": "Извлечение текста",
    "featureImages": "Извлечение изображений",
    "featureTables": "Извлечение таблиц",
    "featureFormulas": "Распознавание формул",
    "featureLayoutAnalysis": "Анализ макета",
    "featureMetadata": "Метаданные",
    "enableImageGeneration": "Включить AI-генерацию изображений",
    "imageGenerationDisabledHint": "При включении изображения будут автоматически генерироваться во время создания курса",
    "imageSettings": "Генерация изображений",
    "imageSection": "Текст в изображение",
    "imageProvider": "Провайдер генерации изображений",
    "imageModel": "Модель генерации изображений",
    "providerSeedream": "Seedream (ByteDance)",
    "providerOpenAIImage": "OpenAI Image",
    "providerQwenImage": "Qwen Image (Alibaba)",
    "providerNanoBanana": "Nano Banana (Gemini)",
    "providerMiniMaxImage": "MiniMax Image",
    "providerGrokImage": "Grok Image (xAI)",
    "testImageGeneration": "Тест генерации изображений",
    "testImageConnectivity": "Тест подключения",
    "imageConnectivitySuccess": "Подключение к сервису изображений успешно",
    "imageConnectivityFailed": "Подключение к сервису изображений не удалось",
    "imageTestSuccess": "Тест генерации изображений пройден",
    "imageTestFailed": "Тест генерации изображений не пройден",
    "imageTestPromptPlaceholder": "Введите описание изображения для теста",
    "imageTestPromptDefault": "Милый котёнок сидит на письменном столе",
    "imageGenerating": "Генерация изображения...",
    "imageGenerationFailed": "Ошибка генерации изображения",
    "enableVideoGeneration": "Включить AI-генерацию видео",
    "videoGenerationDisabledHint": "При включении видео будут автоматически генерироваться во время создания курса",
    "videoSettings": "Генерация видео",
    "videoSection": "Текст в видео",
    "videoProvider": "Провайдер генерации видео",
    "videoModel": "Модель генерации видео",
    "providerSeedance": "Seedance (ByteDance)",
    "providerKling": "Kling (Kuaishou)",
    "providerVeo": "Veo (Google)",
    "providerSora": "Sora (OpenAI)",
    "providerMiniMaxVideo": "MiniMax Video",
    "providerGrokVideo": "Grok Video (xAI)",
    "testVideoGeneration": "Тест генерации видео",
    "testVideoConnectivity": "Тест подключения",
    "videoConnectivitySuccess": "Подключение к видеосервису успешно",
    "videoConnectivityFailed": "Подключение к видеосервису не удалось",
    "testingConnection": "Тестирование...",
    "videoTestSuccess": "Тест генерации видео пройден",
    "videoTestFailed": "Тест генерации видео не пройден",
    "videoTestPromptDefault": "Милый котёнок гуляет по письменному столу",
    "videoGenerating": "Генерация видео (ожид. 1-2 мин.)...",
    "videoGenerationWarning": "Генерация видео обычно занимает 1-2 минуты, пожалуйста подождите",
    "mediaRetry": "Повторить",
    "mediaContentSensitive": "Извините, этот контент не прошёл проверку безопасности.",
    "mediaGenerationDisabled": "Генерация отключена в настройках",
    "singleAgent": "Один агент",
    "multiAgent": "Мульти-агент",
    "selectAgents": "Выбрать агентов",
    "noVisionWarning": "Текущая модель не поддерживает зрение. Изображения по-прежнему можно размещать на слайдах, но модель не сможет понимать содержимое изображений для оптимизации",
    "serverConfigured": "Сервер",
    "serverConfiguredNotice": "Администратор настроил API-ключ для этого провайдера на сервере. Можете использовать его напрямую или ввести свой ключ.",
    "optionalOverride": "Необязательно — оставьте пустым для серверной конфигурации",
    "setupNeeded": "Требуется настройка",
    "modelNotConfigured": "Пожалуйста, выберите модель для начала работы",
    "dangerZone": "Опасная зона",
    "clearCache": "Очистить локальный кэш",
    "clearCacheDescription": "Удалить все локально сохранённые данные, включая записи классов, историю чатов, аудиокэш и настройки приложения. Это действие нельзя отменить.",
    "clearCacheConfirmTitle": "Вы уверены, что хотите очистить весь кэш?",
    "clearCacheConfirmDescription": "Это навсегда удалит все следующие данные без возможности восстановления:",
    "clearCacheConfirmItems": "Классы и сцены, История чатов, Аудио- и графический кэш, Настройки и предпочтения",
    "clearCacheConfirmInput": "Введите «УДАЛИТЬ» для продолжения",
    "clearCacheConfirmPhrase": "УДАЛИТЬ",
    "clearCacheButton": "Удалить все данные навсегда",
    "clearCacheSuccess": "Кэш очищен, страница скоро обновится",
    "clearCacheFailed": "Не удалось очистить кэш, попробуйте снова",
    "webSearchSettings": "Веб-поиск",
    "webSearchApiKey": "Tavily API-ключ",
    "webSearchApiKeyPlaceholder": "Введите ваш Tavily API-ключ",
    "webSearchApiKeyPlaceholderServer": "Серверный ключ настроен, можно ввести свой",
    "webSearchApiKeyHint": "Получите API-ключ на tavily.com для веб-поиска",
    "webSearchBaseUrl": "Base URL",
    "webSearchServerConfigured": "Серверный Tavily API-ключ настроен",
    "optional": "Необязательно"
  },
  "profile": {
    "title": "Профиль",
    "defaultNickname": "Ученик",
    "chooseAvatar": "Выбрать аватар",
    "uploadAvatar": "Загрузить",
    "bioPlaceholder": "Расскажите о себе — AI-учитель адаптирует уроки под ваш уровень...",
    "avatarHint": "Ваш аватар будет отображаться в обсуждениях и чатах",
    "fileTooLarge": "Изображение слишком большое — выберите файл до 5 МБ",
    "invalidFileType": "Пожалуйста, выберите файл изображения",
    "editTooltip": "Нажмите для редактирования профиля"
  },
  "media": {
    "imageCapability": "Генерация изображений",
    "imageHint": "Генерация изображений в слайдах",
    "videoCapability": "Генерация видео",
    "videoHint": "Генерация видео в слайдах",
    "ttsCapability": "Синтез речи",
    "ttsHint": "AI-учитель говорит вслух",
    "asrCapability": "Распознавание речи",
    "asrHint": "Голосовой ввод для обсуждения",
    "provider": "Провайдер",
    "model": "Модель",
    "voice": "Голос",
    "speed": "Скорость",
    "language": "Язык"
  },
  "accessCode": {
    "title": "Введите код доступа",
    "placeholder": "Код доступа",
    "error": "Неверный код доступа. Попробуйте ещё раз."
  }
}