{
  "common": {
    "you": "Вы",
    "confirm": "Подтвердить",
    "cancel": "Отмена",
    "loading": "Загрузка...",
    "errorPrefix": "Ошибка: ",
    "loadingClassroom": "Загрузка класса...",
    "retry": "Повторить",
    "close": "Закрыть"
  },
  "home": {
    "slogan": "Generative Learning in Multi-Agent Interactive Classroom",
    "greetingWithName": "Привет, {{name}}"
  },
  "toolbar": {
    "pdfParser": "Парсер",
    "pdfUpload": "Загрузить PDF",
    "removePdf": "Удалить файл",
    "documentExtractor": "Экстрактор",
    "courseMaterialUpload": "Загрузить материал курса",
    "courseMaterialsSelected": "Выбрано материалов: {{n}}",
    "courseMaterialMergeOrder": "Материалы объединяются в порядке, показанном ниже.",
    "removeCourseMaterial": "Удалить файл",
    "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": "Структура курса + медиафайлы",
    "scriptMd": "Скачать сценарий (.md)",
    "scriptMdDesc": "Текст озвучки в Markdown",
    "script": "Скачать сценарий",
    "scriptDocx": "Скачать сценарий (.docx)",
    "scriptDocxDesc": "Настоящий документ Word в формате DOCX",
    "slideFallback": "Слайд {{order}}",
    "textOnly": "Экспорт сценария",
    "mediaPending": "Ожидание завершения генерации медиа",
    "inlinePartial": "Не удалось упаковать {{count}} внешн. ресурс(ов); курс может отображаться некорректно офлайн.",
    "video": "Экспорт видео",
    "videoDesc": "Автономный проект Hyperframes (рендеринг в MP4)",
    "videoNoScenes": "Нет сцен для экспорта.",
    "videoCompiling": "Компиляция видеошкалы...",
    "videoRendering": "Рендеринг слайдов и сбор ресурсов...",
    "videoPackaging": "Упаковка видеопроекта...",
    "videoSuccess": "Видеопроект экспортирован",
    "videoFailed": "Ошибка экспорта видео",
    "videoWarnings": "Отсутствует ресурсов: {{assets}}; проблем в отчёте об экспорте: {{diagnostics}}.",
    "videoMp4Success": "Видео отрендерено",
    "videoServiceUnavailable": "Сервис рендеринга не настроен — ZIP проекта загружен для локального рендеринга.",
    "videoResolution": "Разрешение",
    "videoFps": "Частота кадров",
    "videoQuality": "Качество",
    "videoQuality_draft": "Черновик",
    "videoQuality_standard": "Стандарт",
    "videoQuality_high": "Высокое",
    "videoProgress": "{{percent}}%",
    "videoProgressWithEta": "{{percent}}% · осталось ~{{remaining}}",
    "videoEtaMinSec": "{{min}} мин {{sec}} с",
    "videoEtaSec": "{{sec}} с",
    "videoRenderMp4": "Рендерить MP4",
    "videoDownloadZip": "Скачать ZIP проекта",
    "videoServiceHint": "Для рендеринга MP4 нужен сервис рендеринга. Скачайте ZIP для локального рендеринга.",
    "videoBurnSubtitles": "Встроить субтитры",
    "videoBurnSubtitlesDesc": "Выключено: экспортируйте чистое видео и добавьте файл субтитров в своём редакторе.",
    "videoQuizCtaPrompt": "Хотите пройти интерактивный тест?",
    "videoPblCtaPrompt": "Хотите попробовать проектное обучение?",
    "videoCtaVisit": "Посетите",
    "videoDownloadSubtitles": "Скачать субтитры (.srt)",
    "subtitlesCompiling": "Компиляция субтитров...",
    "subtitlesSuccess": "Субтитры скачаны",
    "subtitlesEmpty": "Нет закадрового текста для субтитров",
    "subtitlesFailed": "Не удалось скачать субтитры",
    "noSlides": "Нет слайдов для экспорта",
    "noSlidesSkipped": "В этом курсе нет слайдов — PPTX пропущен",
    "nothingToExport": "Нет данных для экспорта"
  },
  "import": {
    "classroom": "Импорт класса",
    "pptx": "Импорт PPTX",
    "parsing": "Анализ ZIP...",
    "parsingPptx": "Анализ PPTX...",
    "validating": "Проверка данных...",
    "writingMedia": "Запись медиафайлов...",
    "writingCourse": "Запись данных курса...",
    "success": "Класс успешно импортирован",
    "pptxSuccess": "PPTX успешно проанализирован ({{count}} слайдов, вывод в консоли)",
    "error": {
      "invalidZip": "Недопустимый файл. Выберите корректный файл .maic.zip.",
      "invalidPptx": "Не удалось проанализировать PPTX. Проверьте, что файл корректен.",
      "parserUnavailable": "Импорт PPTX недоступен: парсер не развёрнут. Повторите установку/синхронизацию.",
      "invalidManifest": "Недопустимый файл класса: manifest.json отсутствует или повреждён.",
      "missingData": "Недопустимый файл класса: отсутствуют необходимые данные курса.",
      "storageFull": "Импорт не удался: хранилище браузера заполнено. Удалите старые классы."
    }
  },
  "chat": {
    "lecture": "Лекция",
    "noConversations": "Нет диалогов",
    "startConversation": "Введите сообщение, чтобы начать диалог",
    "noMessages": "Пока нет сообщений",
    "ended": "завершено",
    "unknown": "Неизвестно",
    "stopDiscussion": "Завершить обсуждение",
    "endQA": "Завершить вопросы и ответы",
    "softClosing": "Продолжить обсуждение",
    "error": {
      "emptyAgentResponses": "Агенты вернули пустые ответы; обсуждение остановлено. Попробуйте ещё раз или проверьте настройки модели.",
      "streamInterrupted": "Поток данных неожиданно прервался; обсуждение не завершено. Попробуйте ещё раз."
    },
    "elementReference": {
      "button": "Сослаться на слайд",
      "unavailable": "Можно сослаться только на текущий слайд PPT",
      "instruction": "Нажмите на элемент слайда · Esc для выхода",
      "fallback": "Другие элементы слайда ({{count}})",
      "clear": "Удалить ссылку на слайд",
      "summary": {
        "noText": "Без текста",
        "emptyContent": "Без содержимого",
        "code": "Код",
        "line": "Линия",
        "imageMetadata": "Изображение (только метаданные)",
        "videoMetadata": "Видео (только метаданные)",
        "audioMetadata": "Аудио (только метаданные)"
      }
    },
    "tabs": {
      "lecture": "Заметки",
      "chat": "Чат"
    },
    "lectureNotes": {
      "empty": "Заметки появятся здесь после воспроизведения лекции",
      "emptyHint": "Нажмите воспроизведение для начала лекции",
      "pageLabel": "Страница {{n}}",
      "currentPage": "Текущая",
      "jumpToLine": "Jump to this line",
      "jumpUnavailable": "Jump unavailable for this line"
    },
    "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": "Подходящих голосов нет",
    "noVoice": "Нет голоса"
  },
  "proactiveCard": {
    "discussion": "Обсуждение",
    "join": "Присоединиться",
    "skip": "Пропустить",
    "pause": "Пауза",
    "resume": "Продолжить"
  },
  "voice": {
    "startListening": "Голосовой ввод",
    "stopListening": "Остановить запись"
  },
  "stage": {
    "currentScene": "Текущая сцена",
    "generating": "Генерация...",
    "paused": "Пауза",
    "generationFailed": "Ошибка генерации",
    "confirmSwitchTitle": "Переключить сцену",
    "confirmSwitchMessage": "В данный момент идёт обсуждение. Переключение сцены завершит текущую тему. Продолжить?",
    "generatingNextPage": "Сцена генерируется, пожалуйста подождите...",
    "courseComplete": "Курс завершён",
    "fullscreen": "Полный экран",
    "exitFullscreen": "Свернуть",
    "editCourse": "Редактировать курс",
    "doneEditing": "Завершить редактирование",
    "proModeDisabledHint": "Редактирование недоступно на этой странице — откройте слайд курса, чтобы редактировать в Pro-режиме."
  },
  "edit": {
    "proMode": "Pro",
    "undo": "Отменить",
    "redo": "Повторить",
    "delete": "Удалить",
    "title": "Редактирование · {{type}}",
    "unsupportedScene": "{{type}} пока нельзя редактировать",
    "readOnlyBadge": "{{type}} · только просмотр",
    "sceneType": {
      "slide": "Слайд",
      "quiz": "Тест",
      "interactive": "Интерактив",
      "pbl": "PBL"
    },
    "text": {
      "toolbar": "Панель текста",
      "label": "Текст",
      "font": "Шрифт",
      "fontDefault": "По умолчанию",
      "sizeUp": "Увеличить размер",
      "sizeDown": "Уменьшить размер",
      "fontSize": "Размер шрифта",
      "bold": "Полужирный",
      "italic": "Курсив",
      "underline": "Подчёркнутый",
      "color": "Цвет текста",
      "alignLeft": "По левому краю",
      "alignCenter": "По центру",
      "alignRight": "По правому краю",
      "bullet": "Маркированный список",
      "colorHex": "Код цвета"
    },
    "line": {
      "toolbar": "Панель линии",
      "kind": "Тип линии",
      "color": "Цвет линии",
      "width": "Толщина линии",
      "style": "Стиль линии",
      "start": "Начало линии",
      "end": "Конец линии",
      "straight": "Прямая",
      "broken": "Ломаная",
      "broken2": "Двойная ломаная",
      "curve": "Кривая",
      "cubic": "Кубическая кривая",
      "solid": "Сплошная",
      "dashed": "Штриховая",
      "dotted": "Пунктирная",
      "none": "Нет",
      "arrow": "Стрелка",
      "dot": "Точка"
    },
    "insert": {
      "toolbar": "Панель вставки",
      "textBox": "Текстовое поле",
      "line": "Линия",
      "linePresets": {
        "straight": "Прямая линия",
        "dashed": "Пунктирная линия",
        "arrow": "Линия со стрелкой",
        "dashedArrow": "Пунктирная линия со стрелкой",
        "dottedEnd": "Линия с точкой на конце",
        "broken": "Ломаная линия",
        "doubleBroken": "Линия с двойным изгибом",
        "curve": "Кривая",
        "cubic": "Кубическая кривая"
      },
      "table": "Таблица",
      "formula": "Формула",
      "chart": "Диаграмма",
      "chartBar": "Столбчатая диаграмма",
      "chartLine": "Линейная диаграмма",
      "chartPie": "Круговая диаграмма",
      "tableDimensions": "Таблица {{rows}} x {{columns}}",
      "dragToolbar": "Переместить инструменты вставки",
      "dragToolbarKeyboard": "Переместить инструменты: нажмите Enter или пробел, затем используйте стрелки",
      "collapseToolbar": "Свернуть инструменты вставки",
      "expandToolbar": "Развернуть инструменты вставки",
      "image": "Изображение",
      "imageDrop": "Перетащите изображение или нажмите, чтобы выбрать файл",
      "imageOr": "или вставьте URL изображения",
      "imageUrlPlaceholder": "https://…",
      "imageInsert": "Вставить",
      "video": "Видео",
      "videoDrop": "Перетащите видео или нажмите, чтобы выбрать файл",
      "videoOr": "или вставьте URL видео",
      "videoUrlPlaceholder": "https://…",
      "videoInsert": "Вставить",
      "audio": "Аудио",
      "audioDrop": "Перетащите аудио или нажмите, чтобы выбрать файл",
      "audioOr": "или вставьте URL аудио",
      "audioUrlPlaceholder": "https://…",
      "audioInsert": "Вставить"
    },
    "asset": {
      "drop": "Перетащите файл или нажмите для выбора",
      "orUrl": "или вставьте URL файла",
      "urlPlaceholder": "https://…",
      "insert": "Вставить",
      "invalidType": "Неподдерживаемый тип файла",
      "readFailed": "Не удалось прочитать файл"
    },
    "latex": {
      "toolbar": "Панель формул",
      "editFormula": "Редактировать формулу",
      "dialog": "Редактор формул",
      "source": "Исходный код LaTeX",
      "preview": "Предпросмотр",
      "symbols": "Символы",
      "presets": "Готовые формулы",
      "invalidSource": "Исходный код LaTeX недействителен."
    },
    "video": {
      "toolbar": "Панель видео",
      "poster": "Задать обложку"
    },
    "audio": {
      "toolbar": "Панель аудио",
      "preview": "Прослушать аудио",
      "pause": "Приостановить прослушивание",
      "loop": "Повтор"
    },
    "table": {
      "doubleClickToEdit": "Дважды щелкните для редактирования"
    },
    "nav": {
      "addSlide": "Добавить слайд",
      "duplicate": "Дублировать",
      "delete": "Удалить",
      "deleted": "Удалено",
      "undo": "Отменить",
      "copySuffix": "(копия)",
      "untitledSlide": "Безымянный слайд",
      "collapse": "Свернуть панель",
      "expand": "Развернуть панель",
      "dragHandle": "Перетащите, чтобы переупорядочить",
      "deckLabel": "Сцены",
      "moreActions": "Ещё действия",
      "rename": "Переименовать",
      "sceneIncomplete": "Содержимое этой страницы не заполнено",
      "addPage": "Добавить страницу",
      "nextPage": "Следующая страница",
      "prevPage": "Предыдущая страница"
    },
    "zorder": {
      "toFront": "На передний план",
      "toBack": "На задний план"
    },
    "image": {
      "toolbar": "Панель изображения",
      "replace": "Заменить изображение",
      "flipH": "Отразить по горизонтали",
      "flipV": "Отразить по вертикали",
      "crop": "Обрезать изображение"
    },
    "contextMenu": {
      "horizontalAlignment": "Выравнивание по горизонтали",
      "verticalAlignment": "Выравнивание по вертикали",
      "selectAll": "Выбрать все",
      "copy": "Копировать",
      "cut": "Вырезать",
      "paste": "Вставить",
      "unlock": "Разблокировать",
      "lock": "Заблокировать",
      "group": "Сгруппировать",
      "ungroup": "Разгруппировать",
      "bringForward": "Переместить вперед",
      "sendBackward": "Переместить назад",
      "alignTop": "Выровнять по верхнему краю",
      "alignMiddle": "Выровнять по центру",
      "alignBottom": "Выровнять по нижнему краю"
    },
    "background": {
      "label": "Фон",
      "solid": "Сплошной цвет",
      "image": "Изображение",
      "color": "Цвет"
    },
    "common": {
      "cancel": "Отмена",
      "confirm": "Подтвердить"
    },
    "quiz": {
      "addQuestion": "Добавить вопрос",
      "reorder": "Перетащите для сортировки",
      "deleteQuestion": "Удалить вопрос",
      "untitledQuestion": "Вопрос без названия",
      "questionLabel": "Вопрос",
      "questionPlaceholder": "Введите вопрос…",
      "typeLabel": "Тип",
      "pointsLabel": "Баллы",
      "optionsLabel": "Варианты",
      "optionPlaceholder": "Текст варианта",
      "addOption": "Добавить вариант",
      "deleteOption": "Удалить вариант",
      "markCorrect": "Отметить как правильный",
      "moveUp": "Вверх",
      "moveDown": "Вниз",
      "analysisLabel": "Пояснение",
      "analysisPlaceholder": "Показывается после проверки…",
      "commentPromptLabel": "Указания по оценке",
      "commentPromptPlaceholder": "Как оценивать этот развёрнутый ответ?",
      "empty": "Пока нет вопросов",
      "emptyHint": "Нажмите «Добавить вопрос», чтобы создать первый.",
      "type": {
        "single": "Один выбор",
        "multiple": "Несколько вариантов",
        "short_answer": "Краткий ответ"
      },
      "shortAnswerGradingNote": "Краткие ответы всегда оцениваются ИИ по указаниям ниже.",
      "hint": {
        "emptyText": "Вопрос {{n}}: добавьте текст вопроса",
        "fewOptions": "Вопрос {{n}}: нужно не менее двух вариантов",
        "emptyOption": "Вопрос {{n}}: есть пустой вариант",
        "noCorrect": "Вопрос {{n}}: отметьте правильный ответ"
      }
    },
    "cue": {
      "speech": "Закадровый текст",
      "spotlight": "Прожектор",
      "laser": "Лазер",
      "whiteboardOpen": "Доска",
      "whiteboardText": "Запись",
      "whiteboardShape": "Фигура",
      "whiteboardLatex": "Формула",
      "whiteboardTable": "Таблица",
      "action": "Действие",
      "discussion": "Обсуждение"
    },
    "element": {
      "toolbar": "Панель элемента",
      "text": "Текст",
      "image": "Изображение",
      "shape": "Фигура",
      "line": "Линия",
      "chart": "Диаграмма",
      "table": "Таблица",
      "latex": "Формула",
      "video": "Видео",
      "audio": "Аудио",
      "code": "Код"
    },
    "agent": {
      "expand": "Развернуть ИИ-помощника",
      "collapse": "Свернуть",
      "stopped": "Остановлено",
      "emptyTitle": "Что вы хотите изменить?",
      "emptyHint": "Отредактировав этот слайд на холсте, позвольте ИИ заново сгенерировать закадровый текст, соответствующий содержанию.",
      "placeholder": "Опишите изменения для этого слайда…",
      "stop": "Остановить генерацию",
      "empty": {
        "lead": "Tell me how to change this slide — I'll redo the content and re-align the narration.",
        "boundary": "For fine-grained edits use the editor; add / delete / reorder slides from the left nav.",
        "comingSoon": "More capabilities coming soon."
      },
      "cap": {
        "content": {
          "label": "Regenerate the slide",
          "examples": "“Condense to 3 points”, “Add a real-world example”"
        },
        "narration": {
          "label": "Regenerate the narration script",
          "examples": "“Make it more conversational”, “Align with my canvas edits”"
        },
        "fixHtml": {
          "examples": "«Кнопка запуска не работает», «Панели накладываются на мобильном»",
          "label": "Исправить ошибку на странице"
        },
        "elements": {
          "label": "Подправить элементы",
          "examples": "«Сделай заголовок синим и подними», «Уменьши эту фигуру»"
        }
      },
      "newConversation": "New conversation",
      "sessionHistory": "История",
      "sessionUntitled": "Без названия",
      "sessionDelete": "Удалить",
      "sessionEmpty": "Нет истории",
      "reasoning": "Рассуждение",
      "thought": "Думал",
      "interactive": {
        "boundary": "Я вношу точечные исправления на странице и не пересоздаю её целиком. Переключайте сцены через навигацию слева.",
        "emptyTitle": "Что нужно исправить на этой странице?",
        "lead": "Опишите ошибку на этой интерактивной странице — например, кнопку, которая не реагирует, — и я исправлю только её, сохранив всё остальное.",
        "placeholder": "Опишите ошибку на этой интерактивной странице…"
      },
      "thinking": "Думаю…",
      "title": "Редактировать с ИИ"
    },
    "timeline": {
      "title": "Сценарий закадрового текста",
      "regenAllTts": "Сгенерировать всю озвучку заново",
      "voiceAll": "Озвучить всё",
      "counts": "{{speech}} реплик · {{cue}} действий",
      "panLeft": "Прокрутить влево",
      "panRight": "Прокрутить вправо",
      "collapseAxis": "Свернуть до оси",
      "expandTrack": "Развернуть дорожку",
      "emptyHint": "Перетащите действия на ось, чтобы начать, или позвольте MAIC Agent сгенерировать закадровый текст.",
      "speechPlaceholder": "Введите эту реплику…",
      "reorder": "Перетащите для изменения порядка",
      "moveLeft": "Влево",
      "moveRight": "Вправо",
      "pickElement": "Выбрать элемент",
      "bound": "Привязано",
      "fieldAction": "Действие",
      "fieldElement": "Элемент",
      "fieldContent": "Содержимое",
      "addDiscussionExists": "Только одно обсуждение на сцену",
      "discussionTerminal": "КОНЕЦ",
      "discussionTerminalHint": "Обсуждение закрепляется в конце сцены (одно на сцену)",
      "discussionTopicPlaceholder": "Тема обсуждения (обязательно)",
      "discussionPromptPlaceholder": "Подсказка (необязательно)",
      "discussionAgent": "Инициатор",
      "discussionAgentUnset": "Не указан",
      "addAction": "Добавить действие"
    },
    "picker": {
      "title": "Вставить действие",
      "speechDesc": "Произнести реплику — можно озвучить автоматически",
      "spotlightDesc": "Выделить элемент на холсте",
      "laserDesc": "Указать на элемент лазером",
      "discussionDesc": "Задать вопрос и выбрать, кто начнёт"
    },
    "tts": {
      "cancelPreview": "Отменить",
      "preview": "Прослушать",
      "regenerate": "Сгенерировать озвучку заново",
      "statusReady": "Озвучено",
      "statusNone": "Не озвучено",
      "statusGenerating": "Генерация",
      "stopPreview": "Остановить",
      "statusError": "Ошибка"
    },
    "pick": {
      "pickFor": "Выберите элемент для «{{label}}»",
      "pickHint": "Нажмите на подсвеченный элемент или список ниже · Esc для отмены",
      "pageElements": "Элементы страницы · {{count}}",
      "expand": "Развернуть",
      "collapse": "Свернуть",
      "noElements": "На этом слайде нет элементов для выбора.",
      "bindHint": "Нажмите на подсвеченный элемент на холсте для привязки",
      "refCapHint": "Достигнут предел — уберите один, чтобы заменить · Esc — готово",
      "refHint": "Нажмите, чтобы добавить или убрать · Esc — готово",
      "refLead": "Ссылки на элементы · {{count}}/{{max}}"
    },
    "regen": {
      "title": "Сгенерировать закадровый текст заново",
      "running": "Генерация…",
      "noActions": "Действия не сгенерированы",
      "actionsCount": "{{count}} действий",
      "generating": "Генерация",
      "notGenerated": "Не сгенерировано",
      "updated": "Обновлено"
    },
    "regenScene": {
      "title": "Сгенерировать слайд заново",
      "generating": "Генерация",
      "updated": "Обновлено",
      "notGenerated": "Не сгенерировано",
      "elementsCount": "{{count}} элементов",
      "restore": "Вернуть прежний вариант",
      "restored": "Восстановлено",
      "resume": "Вернуть"
    },
    "readCard": {
      "title": "Read slide content",
      "reading": "Reading",
      "done": "Read",
      "failed": "Not read"
    },
    "fixHtml": {
      "editsCount": "Правок: {{count}}",
      "fixed": "Исправлено",
      "fixing": "Исправляю",
      "notFixed": "Не исправлено",
      "title": "Исправить интерактивную страницу"
    },
    "editElements": {
      "title": "Правка элементов",
      "editing": "Редактирование",
      "applied": "Применено",
      "notApplied": "Не применено",
      "applyFailed": "Редактору не удалось применить изменение элемента. Ничего не изменено.",
      "applyPartiallyFailed": "Редактору не удалось применить одно или несколько изменений. Другие изменения могли быть применены."
    },
    "roster": {
      "title": "Состав класса",
      "count": "Участников: {{count}}",
      "editHint": "Нажмите участника, чтобы редактировать",
      "personaLabel": "Персона",
      "personaPlaceholder": "Опишите характер роли, стиль преподавания и задачи...",
      "noPersona": "Персона не задана",
      "unnamed": "Без названия",
      "teacherBadge": "Ведущий",
      "moveUp": "Переместить вверх",
      "moveDown": "Переместить вниз",
      "removeFromClass": "Удалить из класса",
      "aiClassmates": "AI-одноклассники · {{count}}",
      "addRole": "Добавить роль",
      "shortTitle": "Состав"
    },
    "elementRef": {
      "remove": "移除引用 {{label}}",
      "counts": "Выбрано {{count}}/{{max}}",
      "exitPicking": "Завершить выбор",
      "startPicking": "Ссылка на элементы"
    },
    "dock": {
      "elementRefHint": "Ссылки на элементы — выберите элементы для следующего сообщения",
      "globalTools": "Общие инструменты"
    }
  },
  "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": "Вопросы и ответы завершены",
    "softClosing": "Продолжить обсуждение",
    "thinking": "Размышляет",
    "yourTurn": "Ваша очередь",
    "stopDiscussion": "Завершить обсуждение",
    "autoPlay": "Автовоспр.",
    "autoPlayOff": "Остановить",
    "speed": "Скорость",
    "previousLine": "Previous line",
    "nextLine": "Next line",
    "lineProgress": "Line {{current}} / {{total}}",
    "voiceInput": "Голосовой ввод",
    "voiceInputDisabled": "Голосовой ввод отключён",
    "textInput": "Текстовый ввод",
    "stopRecording": "Остановить запись",
    "startRecording": "Начать запись"
  },
  "pbl": {
    "emptyProject": "PBL-проект ещё не создан. Создайте его через генерацию курса.",
    "v2": {
      "hero": {
        "title": "Проектное обучение · Project-Based Learning",
        "stage": "Этапы",
        "task": "Задания",
        "tutor": "Наставник",
        "greetingBanner": "Наставник приветствует вас…",
        "startProject": "Начать проект",
        "continueProject": "Продолжить проект",
        "resetProgress": "Сбросить прогресс обучения",
        "resetConfirmTitle": "Сбросить прогресс обучения?",
        "resetConfirmDescription": "Это удалит весь прогресс по проекту — историю чата, отправленные работы и статусы этапов — и вы начнёте заново. Это действие нельзя отменить.",
        "resetConfirmConfirm": "Сбросить",
        "resetConfirmCancel": "Отмена",
        "startHint": "Нажмите, чтобы войти в рабочее пространство. {{name}} проведёт вас через каждый этап.",
        "startError": "Не удалось начать: {{error}}",
        "youWillLearn": "Что вы получите",
        "instructorTagline": "Сопровождает вас на протяжении всего проекта",
        "scenarioCharacter": "Персонаж сценария",
        "scenarioCharacterTagline": "Персонаж, с которым вы взаимодействуете в сценарии",
        "scenarioFlow": "Этапы",
        "close": "Закрыть"
      },
      "sidebar": {
        "title": "План проекта",
        "summary": "{{completed}} / {{total}} заданий · {{stages}} этапов",
        "enterScenario": "Войти в сцену",
        "advanceScene": "Продвинуть сцену",
        "continueScene": "Следующий этап",
        "stagePrep": "Подготовка",
        "stageRoleplay": "Симуляция",
        "stageWrapup": "Разбор",
        "completeAct": "Завершить эту сцену",
        "completeTask": "Готово"
      },
      "workspace": {
        "progressLabel": "Прогресс",
        "resizeSidebar": "Изменить ширину панели задач и чата",
        "resizeSubmission": "Изменить ширину чата и панели отправки",
        "enterFullscreen": "Развернуть на весь экран",
        "exitFullscreen": "Выйти из полноэкранного режима",
        "exitNativeFullscreen": "Выйти из полноэкранного режима",
        "returnToHero": "Назад к обзору проекта",
        "breadcrumbOverview": "Обзор",
        "breadcrumbCurrent": "Рабочая область"
      },
      "chat": {
        "placeholder": "Обсудите прогресс с {{name}}...",
        "placeholderCompleted": "Проект завершён. Посмотрите отчёт.",
        "send": "Отправить",
        "voiceInput": "Голосовой ввод",
        "keyboardHint": "Enter — отправить · Shift+Enter — новая строка",
        "readingSubmission": "Чтение ответа…",
        "generatingMilestoneFeedback": "Генерация отзыва по этапу…",
        "generatingFinalEval": "Генерация итоговой оценки…",
        "readingSubmissionWithTitle": "Чтение ответа «{{title}}»…",
        "evaluatingTask": "{{name}} · Оценка задания",
        "evaluatingFinal": "{{name}} · Итоговая оценка",
        "narrating": "Описание сцены…",
        "choosePrompt": "Выберите вариант",
        "choiceOrType": "Выберите или напишите своё…",
        "suggestionsToggle": "Нужны идеи? Посмотрите варианты ответа",
        "guidancePointer": "Не знаете, что сказать? Цель и подсказки этой сцены — на панели справа.",
        "roleplayHistoryTitle": "История ролевого этапа",
        "coachHint": "Подсказка тренера",
        "thinking": "{{name}} · Думает",
        "typing": "{{name}} · Пишет…",
        "submitted": "Работа отправлена",
        "evaluatingSubmission": "Оценка вашего ответа…",
        "evaluatingSubmissionDetail": "Задание: «{{title}}». Оценка появится здесь после завершения.",
        "milestoneFeedbackPending": "Отзыв по этапу появится здесь, когда будет готов.",
        "emptyChat": "Сообщений пока нет.",
        "emptyChatHint": "Знакомство с проектом под руководством {{name}} начнётся здесь.",
        "continueError": "Не удалось продолжить: {{error}}",
        "stillTyping": "Всё ещё печатает",
        "handoverHint": "Нажмите «Перейти к следующему этапу», чтобы продолжить."
      },
      "scene": {
        "expand": "Развернуть",
        "collapse": "Свернуть",
        "greetHint": "Нажмите, чтобы поздороваться",
        "label": "Сцена"
      },
      "milestoneCard": {
        "title": "Оценка этапа",
        "youLearned": "Чему вы научились",
        "nextStage": "Следующий этап:",
        "continueHint": "Нажмите Continue, чтобы перейти к следующему этапу.",
        "alreadyEntered": "Следующий этап начат",
        "continueToNext": "Перейти к следующему этапу",
        "projectAlmostDone": "🎉 Проект почти завершён — ожидание отчёта"
      },
      "taskEvalCard": {
        "title": "Отзыв на отправленное",
        "strengths": "Что получилось хорошо",
        "improvements": "Над чем поработать"
      },
      "briefing": {
        "intro": "Вводная из этапа подготовки — здесь её можно открыть в любой момент сцены.",
        "tablistLabel": "Вкладки правой панели",
        "submissionTab": "Отправка",
        "briefingTab": "Сводка",
        "setting": "Обстановка",
        "learnerRole": "Ваша роль",
        "goal": "Цель",
        "rules": "Правила",
        "cast": "Персонажи",
        "identity": "Кто это",
        "situation": "Ситуация"
      },
      "submission": {
        "textSubmission": "Текстовая отправка",
        "fileTooLarge": "Файл превышает 5 МБ. Разделите или сожмите.",
        "contentRequired": "Содержимое не может быть пустым",
        "readFileFailed": "Ошибка чтения файла: {{error}}",
        "parsingPdf": "Разбор PDF…",
        "parsePdfFailed": "Не удалось разобрать PDF: {{error}}",
        "pdfNoText": "В этом PDF не найден извлекаемый текст.",
        "imageUploadFailed": "Не удалось загрузить изображение: {{error}}",
        "imageTooLargeNoStorage": "Изображение слишком большое без настроенного хранилища (локально макс. 2 МБ).",
        "imageNeedsCaptionNoVision": "Текущая модель не распознаёт изображения. Добавьте текстовое описание изображения перед отправкой или выберите модель с поддержкой зрения в настройках.",
        "unsupportedFileType": "Неподдерживаемый тип файла. Принимаются только текстовые файлы (.txt, .md, .csv, .json, .py и т.д.) и PDF.",
        "pasteTab": "Вставить текст / изображение",
        "uploadTab": "Загрузить файл",
        "pastePlaceholder": "Вставьте код, документ, ответ или изображение / скриншот сюда…",
        "uploadPlaceholder": "Загруженное содержимое появится здесь. Можно редактировать перед отправкой...",
        "imageCaptionPlaceholder": "Добавьте подпись к изображению (необязательно)…",
        "imageSelectedReplace": "Изображение выбрано · нажмите, чтобы заменить",
        "removeImage": "Удалить изображение",
        "processing": "Обработка…",
        "cancelProcessingConfirm": "Файл ещё обрабатывается. Отменить и отклонить эту загрузку?",
        "currentTask": "Текущее задание",
        "hints": "Подсказки",
        "submitOutput": "Отправить",
        "evaluating": "Оценка ответа...",
        "lockedWhileStreaming": "Наставник отвечает — подождите, прежде чем отправлять.",
        "evalFailed": "Ошибка оценки: {{error}}",
        "submittedCount": "Отправлено: {{count}}",
        "submissionHistory": "История отправок",
        "fromTask": "Задача: {{title}}",
        "download": "Скачать",
        "viewSubmission": "Просмотр работы",
        "noActiveTask": "Нет активных заданий.",
        "canceling": "Отмена",
        "submitting": "Отправка...",
        "selectFileHint": "Выбрать файл · макс. 5 МБ · текст / PDF / изображение",
        "modalTitle": "Отправить работу",
        "modalTaskLabel": "Задание: {{title}}",
        "fileRead": "Прочитано: {{filename}} · {{size}} КБ",
        "submittedBadge": "Отправлено ({{count}})",
        "receiptFile": "Файл: {{filename}}",
        "receiptTemplate": "Отправлена работа по заданию ({{label}})."
      },
      "agentTabs": {
        "noAgent": "Для этого проекта не настроен AI-агент."
      },
      "completion": {
        "noWhatsNext": "В итоговой оценке ещё нет рекомендаций.",
        "backToWorkspace": "Вернуться к работе",
        "completionCta": "Смотреть отчёт",
        "title": "Итоговый отчёт",
        "whatYouBuilt": "Что вы создали",
        "whatYouLearned": "Чему вы научились",
        "whatsNext": "Что дальше",
        "noDataFallback": "Ещё не записано",
        "stageReview": "Обзор этапов",
        "summary": "Вы выполнили все {{completed}} / {{total}} заданий в {{stages}} этапах.",
        "statConcepts": "Освоено концепций",
        "statTurns": "Реплик в диалоге",
        "statScope": "Этапов · Задач",
        "statDuration": "Затрачено времени",
        "statSubmissions": "Отправлено работ",
        "coreStageBadge": "Ключевой",
        "conceptsInStageLabel": "Освоены концепции:",
        "submissionsInStage": "Отправлено работ: {{count}}",
        "coreConceptGrasp": "Ключевая концепция «{{concept}}» — {{quality}}",
        "stageNoData": "Нет записанных результатов в этом этапе.",
        "highlightsTitle": "Ваши достижения",
        "scenario": {
          "summary": "Вы прошли все {{acts}} акта этого сценария. Вот как прошла ролевая игра.",
          "whatYouDidWell": "Что вы сделали хорошо",
          "skillsPracticed": "Отработанные навыки",
          "statGoals": "Целей достигнуто",
          "statActs": "Завершено актов",
          "goalReviewTitle": "Разбор по актам",
          "goalReviewHint": "В этом сценарии для каждого акта заданы несколько ключевых целей. Вот разбор по тому, как прошёл ваш диалог — в этот раз вы достигли {{achieved}} из {{total}}.",
          "goalListTitle": "Что требовал от вас каждый акт",
          "goalListHint": "В этом сценарии для каждого акта заданы несколько ключевых целей. Вот обзор того, что требовалось сделать в каждом акте.",
          "goalAchieved": "достигнуто",
          "goalPartial": "частично",
          "goalMissed": "не достигнуто",
          "statGoodDecisions": "Удачные решения",
          "statScore": "Очки за решения",
          "statBeats": "Завершено актов",
          "decisionReviewTitle": "Разбор решений",
          "good": "удачно",
          "ok": "нормально",
          "poor": "доработать",
          "decisionScore": "Очки за решения: {{score}}",
          "castLabel": "Вы общались с: {{names}}"
        },
        "highlight": {
          "independence": "Вы самостоятельно показали {{unlocks}}/{{total}} концепций — без подсказок. Отличное понимание.",
          "resilience": "На этапе «{{title}}» вы преодолели {{errors}} ошибок — настоящая стойкость.",
          "resilienceGeneral": "Вы преодолели {{errors}} ошибок — настоящая стойкость.",
          "completion": "Все задания выполнены. Уверенный прогресс."
        },
        "synthesisQuality": {
          "strong": "Отличное понимание ✅",
          "ok": "Хорошее усвоение 👍",
          "weak": "Можно укрепить 💪"
        },
        "durationMinutes": "{{m}} мин",
        "durationHours": "{{h}} ч",
        "durationHoursMinutes": "{{h}} ч {{m}} мин"
      },
      "completionCard": {
        "title": "Проект завершён · Completion",
        "subtitle": "Поздравляем! Проект завершён.",
        "description": "На основе ваших данных (время, диалоги, исправление ошибок, освоенные концепции…) мы подготовили итоговый отчёт."
      }
    }
  },
  "share": {
    "notReady": "Доступно после завершения генерации"
  },
  "classroom": {
    "recentClassrooms": "Недавние",
    "today": "Сегодня",
    "yesterday": "Вчера",
    "daysAgo": "дн. назад",
    "slides": "слайдов",
    "nameCopied": "Название скопировано",
    "deleteConfirmTitle": "Удалить",
    "delete": "Удалить",
    "rename": "Переименовать",
    "renamePlaceholder": "Введите название класса",
    "renameFailed": "Не удалось переименовать класс",
    "searchPlaceholder": "Поиск курсов...",
    "searchAriaLabel": "Поиск курсов",
    "clearSearch": "Очистить",
    "searchEmpty": "Курсы не найдены",
    "newFolderTitle": "Новая папка",
    "newFolderDesc": "Группируйте курсы по темам для удобного доступа.",
    "newFolderInline": "Новая папка",
    "folderNameLabel": "Название папки",
    "folderNamePlaceholder": "Напр.: Математика, Английский, Профильные курсы",
    "folderNameHint": "Широкие и узкие символы допустимы; пробелы учитываются.",
    "folderNameExists": "Папка с таким названием уже существует.",
    "folderCountLimit": "Достигнут предел количества папок.",
    "folderWidth": "Ширина {{width}}/{{max}}",
    "folderCreate": "Создать",
    "folderBadge": "Папка",
    "folderCourseCountUnit": "курсов",
    "deleteFolderTitle": "Удалить папку «{{name}}»",
    "deleteFolderEmptyDesc": "Эта папка пуста. Удаление необратимо.",
    "deleteFolderUngroupDesc": "Курсы остаются в «Мои курсы», просто без папки.",
    "moveToFolder": "Переместить в папку",
    "moveToFolderLabel": "Переместить в папку",
    "ungrouped": "Без папки",
    "searchResults": "Результаты поиска",
    "folderCreateFailed": "Не удалось создать папку",
    "folderRenameFailed": "Не удалось переименовать папку",
    "folderDeleteFailed": "Не удалось удалить папку",
    "moveFailed": "Не удалось переместить курс",
    "emptyFolderHint": "Эта папка пуста",
    "emptyLibraryHint": "Курсов пока нет — создайте выше или импортируйте курс.",
    "folderNameEmpty": "Название папки не может быть пустым",
    "deleteFolderOnly": "Удалить только папку",
    "deleteFolderAndCourses": "Удалить папку и {{count}} курс",
    "deleteFolderAndCourses_other": "Удалить папку и {{count}} курсов",
    "deleteFolderConfirmRemove": "Папка и её курсы (включая историю чата) будут удалены.",
    "notFound": "Курс не найден",
    "notFoundDesc": "Этот курс не существует или был удалён.",
    "backToHome": "На главную"
  },
  "upload": {
    "pdfSizeLimit": "Поддержка PDF до 50 МБ",
    "courseMaterialSizeLimit": "Документы, презентации, таблицы, изображения, текст — до 50 МБ (список форматов зависит от выбранного парсера)",
    "generateFailed": "Ошибка генерации, попробуйте снова",
    "requirementPlaceholder": "Расскажите, что вы хотите изучить, например:\n\"Научи меня Python с нуля за 30 минут\"\n\"Объясни преобразование Фурье на доске\"\n\"Как играть в настольную игру Авалон\"",
    "requirementRequired": "Пожалуйста, укажите требования к курсу",
    "fileTooLarge": "Файл слишком большой. Выберите файл до 50 МБ",
    "courseMaterialCountLimit": "Можно загрузить до 5 файлов материалов курса",
    "courseMaterialTotalSizeLimit": "Общий размер материалов курса должен быть меньше 150 МБ",
    "unsupportedCourseMaterial": "Текущий парсер не поддерживает этот формат. Смените парсер или выберите другой файл."
  },
  "generation": {
    "pdfLoadFailed": "Не удалось загрузить PDF, попробуйте снова",
    "pdfParseFailed": "Ошибка обработки PDF",
    "analyzingCourseMaterial": "Анализ документов",
    "analyzingCourseMaterialDesc": "Извлечение структуры и содержимого документа...",
    "courseMaterialLoadFailed": "Не удалось загрузить материал курса, попробуйте снова",
    "courseMaterialParseFailed": "Ошибка обработки материала курса",
    "streamNotReadable": "Не удалось прочитать поток генерации",
    "generatingOutlines": "Создание структуры курса",
    "generatingOutlinesDesc": "Формирование учебной программы...",
    "generatingSlideContent": "Генерация содержимого страниц",
    "generatingSlideContentDesc": "Создание слайдов, тестов и интерактивного контента...",
    "generatingActions": "Генерация учебных действий",
    "generatingActionsDesc": "Подготовка нарратива, внимания и взаимодействий...",
    "generationComplete": "Генерация завершена!",
    "generationFailed": "Ошибка генерации",
    "speechFailed": "Ошибка генерации речи",
    "retryScene": "Повторить",
    "retryingScene": "Перегенерация...",
    "backToHome": "На главную",
    "sessionNotFound": "Сессия не найдена",
    "sessionNotFoundDesc": "Пожалуйста, заполните требования к курсу, чтобы начать генерацию.",
    "goBackAndRetry": "Вернуться и повторить",
    "classroomReady": "Ваша персонализированная AI-среда обучения успешно создана.",
    "aiWorking": "AI-агенты работают...",
    "textTruncated": "Текст документа слишком длинный, используются первые {{n}} символов",
    "imageTruncated": "Найдено {{total}} изображений, что превышает лимит в {{max}}. Лишние будут описаны текстом",
    "agentGeneration": "Генерация ролей в классе",
    "agentGenerationDesc": "Создание ролей на основе содержания курса...",
    "agentRevealTitle": "Роли в вашем классе",
    "viewAgents": "Просмотреть роли",
    "continue": "Продолжить",
    "outlineRetrying": "Проблема с генерацией структуры, повтор...",
    "outlineEmptyResponse": "Модель не вернула валидную структуру. Проверьте настройки модели и попробуйте снова",
    "outlineGenerateFailed": "Ошибка генерации структуры, попробуйте позже",
    "sceneGenerateFailed": "Не удалось сгенерировать сцену, попробуйте позже",
    "sceneGenerateAuthFailed": "Не удалось сгенерировать сцену: провайдер модели отклонил учетные данные. Проверьте настройки модели.",
    "sceneGenerateRateLimited": "Генерация сцены ограничена лимитом запросов. Подождите немного и попробуйте снова.",
    "sceneGenerateProviderUnavailable": "Провайдер модели временно недоступен. Попробуйте позже.",
    "sceneGenerateInvalidResponse": "Модель не вернула корректное содержимое сцены. Попробуйте другую модель или измените требования курса.",
    "reviewOutlineTitle": "Проверьте план курса",
    "reviewOutlineDesc": "До создания содержимого можно редактировать, переставлять, удалять и добавлять сцены.",
    "reviewOutlineAutoContinue": "Если вы не откроете проверку, генерация содержимого продолжится автоматически.",
    "outlineEditorTitle": "План сцен",
    "outlineEditorSummary": "Всего сцен: {{count}}. Их можно редактировать, добавлять, удалять и менять местами до начала генерации",
    "addFirstScene": "Добавить первую сцену",
    "noOutlines": "План сцен пока пуст",
    "sceneTitlePlaceholder": "Название сцены",
    "sceneTypeSlide": "Слайд",
    "sceneTypeQuiz": "Тест",
    "sceneTypeInteractive": "Интерактив",
    "sceneTypePbl": "PBL",
    "sceneDescriptionPlaceholder": "Кратко опишите цель и содержание этой сцены",
    "quizQuestionCount": "Количество вопросов",
    "quizDifficulty": "Сложность",
    "quizType": "Тип вопроса",
    "quizDifficultyEasy": "Легко",
    "quizDifficultyMedium": "Средне",
    "quizDifficultyHard": "Сложно",
    "quizTypeSingle": "Один ответ",
    "quizTypeMultiple": "Несколько ответов",
    "quizTypeText": "Краткий ответ",
    "alwaysReviewOutlines": "Всегда проверять план перед генерацией",
    "outlineEditorEyebrow": "План, сгенерированный ИИ",
    "outlineEditorStreamingProgress": "Генерация · готово сцен: {{count}}",
    "outlineEditorStreamingWaiting": "Ожидаем первую сцену…",
    "outlineEditorWaitingConfirm": "Ожидание плана…",
    "outlineExpandHint": "Нажмите, чтобы проверить",
    "reviewOutlineStreamingDesc": "План ещё генерируется. Редактировать можно после завершения.",
    "addKeyPoint": "Добавить пункт",
    "removeKeyPoint": "Удалить пункт",
    "insertSceneHere": "Вставить сцену здесь",
    "deleteSceneConfirm": "Удалить эту сцену?",
    "deleteSceneConfirmDesc": "Сцена и её ключевые пункты будут удалены из плана.",
    "deleteSceneConfirmAction": "Удалить",
    "collapseEditor": "Свернуть",
    "quizConfigSummary": "{{count}} вопросов",
    "interactiveWidgetKind": "Тип виджета",
    "widgetSimulation": "Симуляция",
    "widgetDiagram": "Диаграмма",
    "widgetCode": "Код",
    "widgetGame": "Игра",
    "widgetVisualization3d": "3D",
    "interactiveConcept": "Концепция",
    "interactiveConceptPlaceholder": "Изучаемая концепция",
    "pblConfigSummary": "Проект",
    "pblSubtype": "Тип PBL",
    "pblSubtypeProject": "Проект",
    "pblSubtypeScenario": "Сценарий",
    "pblProjectTopic": "Тема проекта",
    "pblProjectTopicPlaceholder": "Тема проекта",
    "pblProjectDescription": "Описание",
    "pblProjectDescriptionPlaceholder": "Что создадут учащиеся",
    "pblScenarioBrief": "Кратко о сценарии",
    "pblScenarioBriefPlaceholder": "Ситуация, персонажи и цель практики",
    "pblTargetSkills": "Целевые навыки",
    "pblAddSkill": "Добавить навык",
    "widgetProceduralSkill": "Практический навык",
    "removeSkill": "Удалить навык",
    "dragSceneHint": "Перетащите для сортировки или нажмите Ctrl/⌘ + ↑ / ↓",
    "deleteScene": "Удалить сцену",
    "backToRequirements": "Назад к требованиям",
    "confirmAndGenerateCourse": "Подтвердить и сгенерировать курс",
    "generatingInProgress": "Генерация...",
    "webSearching": "Поиск в интернете",
    "webSearchingDesc": "Поиск актуальной информации в сети",
    "webSearchFailed": "Ошибка веб-поиска",
    "outlinesReadyCount": "Готово разделов: {{ready}} / {{total}}",
    "jumpToBlankTitle": "Перейти к разделу без заголовка",
    "analyzingMediaMaterial": "Анализ аудио/видео"
  },
  "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}} агентов выбрано для совместного обсуждения",
    "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",
      "azure": "Azure OpenAI",
      "anthropic": "Claude",
      "google": "Gemini",
      "bedrock": "Amazon Bedrock",
      "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",
      "lemonade": "Lemonade (Локальный)",
      "ollama": "Ollama (Локальный)",
      "tavily": "Tavily",
      "bocha": "Bocha",
      "brave": "Brave Search",
      "baidu": "Baidu",
      "claude": "Claude",
      "searxng": "SearXNG"
    },
    "providerTypes": {
      "openai": "Протокол OpenAI",
      "azure": "Azure OpenAI",
      "anthropic": "Протокол Claude",
      "google": "Протокол Gemini",
      "bedrock": "Amazon Bedrock"
    },
    "modelCount": "моделей",
    "modelSingular": "модель",
    "defaultModel": "Модель по умолчанию",
    "webSearch": "Веб-поиск",
    "mcp": "MCP",
    "knowledgeBase": "База знаний",
    "documentParser": "Обработка документов",
    "conversationSettings": "Беседа",
    "keyboardShortcuts": "Горячие клавиши",
    "generalSettings": "Общие",
    "systemSettings": "Система",
    "addProvider": "Добавить",
    "importFromClipboard": "Импорт из буфера",
    "apiSecret": "API-ключ",
    "apiHost": "Base URL",
    "azureDeploymentHint": "Укажите конечную точку Azure OpenAI выше, затем добавьте имя каждого развертывания Azure как модель.",
    "baseUrlRegion": {
      "china": "Китай",
      "international": "Международный",
      "xiaomiPayg": "Оплата по факту",
      "xiaomiTokenPlanCN": "Token Plan Китай",
      "xiaomiTokenPlanSGP": "Token Plan Сингапур",
      "xiaomiTokenPlanEU": "Token Plan Европа"
    },
    "requestUrl": "URL запроса",
    "models": "Модели",
    "comfyuiWorkflows": "Рабочие процессы",
    "comfyuiRefresh": "Обновить",
    "comfyuiNoWorkflowsFoundPrefix": "JSON-файлы рабочих процессов не найдены в",
    "comfyuiAddWorkflowPrefix": "Добавьте файл",
    "comfyuiAddWorkflowSuffix": "чтобы начать.",
    "comfyuiFolderHintPrefix": "Поместите JSON-файлы рабочих процессов в папку",
    "comfyuiFolderHintMiddle": "Имя файла становится отображаемым именем — например",
    "comfyuiLoadError": "Не удалось загрузить рабочие процессы: {error}",
    "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-диалогов и генерации контента",
    "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",
    "providerLemonadeTTS": "Lemonade 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": "Удалить голос",
    "qwenCloneVoicesTitle": "Qwen TTS Cloned Voices",
    "qwenCloneRefText": "Enter the verbatim transcript of the reference audio",
    "qwenCloneRefAudioHint": "Use a clean 1–60 second voice sample. A 10–20 second sample is recommended; audio is converted to 24 kHz mono PCM WAV.",
    "qwenCloneSaved": "Qwen cloned voice registered and saved",
    "qwenCloneSaveFailed": "Failed to register the Qwen cloned voice",
    "qwenCloneUnsupported": "Recording is not supported in this browser; upload an audio file instead.",
    "qwenCloneSpeedHint": "Cloned voices always synthesize at 1× speed.",
    "qwenCloneDeleteWarning": "The voice was removed locally, but provider deletion failed.",
    "qwenCloneNarrationUnavailable": "The assigned voice is unavailable. Narration will use another enabled voice instead.",
    "qwenCloneDiscussionUnavailable": "The assigned voice is unavailable. Discussion will use another enabled voice instead.",
    "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)",
    "providerBrowserNative": "Встроенный ASR браузера",
    "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)",
    "providerFunASRASR": "FunASR (Локальный)",
    "providerLemonadeASR": "Lemonade ASR (Локальный)",
    "providerAzureASR": "Azure STT",
    "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",
    "documentParsingSettings": "Обработка документов",
    "supportedFormats": "Поддерживаемые форматы",
    "mineruSelfHostFormatsNote": "Для обработки PDF и изображений на сервере MinerU требуются дополнительные пакеты mineru[pipeline] или mineru[core]. Облегчённые установки mineru-api могут обрабатывать только документы Office.",
    "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)",
    "providerComfyUIImage": "ComfyUI Image",
    "providerLemonadeImage": "Lemonade Image (Локальный)",
    "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)",
    "providerHappyHorse": "HappyHorse (Alibaba Cloud)",
    "testVideoGeneration": "Тест генерации видео",
    "testVideoConnectivity": "Тест подключения",
    "videoConnectivitySuccess": "Подключение к видеосервису успешно",
    "videoConnectivityFailed": "Подключение к видеосервису не удалось",
    "testingConnection": "Тестирование...",
    "videoTestSuccess": "Тест генерации видео пройден",
    "videoTestFailed": "Тест генерации видео не пройден",
    "videoTestPromptDefault": "Милый котёнок гуляет по письменному столу",
    "videoGenerating": "Генерация видео (ожид. 1-2 мин.)...",
    "videoGenerationWarning": "Генерация видео обычно занимает 1-2 минуты, пожалуйста подождите",
    "mediaRetry": "Повторить",
    "mediaContentSensitive": "Извините, этот контент не прошёл проверку безопасности.",
    "mediaGenerationDisabled": "Генерация отключена в настройках",
    "singleAgent": "Один агент",
    "multiAgent": "Мульти-агент",
    "selectAgents": "Выбрать агентов",
    "noVisionWarning": "Текущая модель не поддерживает зрение. Изображения по-прежнему можно размещать на слайдах, но модель не сможет понимать содержимое изображений для оптимизации",
    "serverConfigured": "Сервер",
    "serverConfiguredNotice": "Этот провайдер управляется сервером и не редактируется здесь. Чтобы использовать свои учётные данные, добавьте отдельного провайдера.",
    "ttsProviderEnabledLabel": "Включить этого провайдера",
    "ttsProviderEnabledHint": "Если выключено, провайдер скрыт из выбора голоса и не назначается автоматически.",
    "ttsProviderUnavailableHint": "Сначала настройте этого провайдера, затем включите.",
    "ttsProviderDisabledByAdmin": "Этот провайдер отключён администратором сервера и не может быть включён.",
    "optionalOverride": "Необязательно — оставьте пустым для серверной конфигурации",
    "setupNeeded": "Требуется настройка",
    "modelNotConfigured": "Пожалуйста, выберите модель для начала работы",
    "dangerZone": "Опасная зона",
    "clearCache": "Очистить локальный кэш",
    "clearCacheDescription": "Удалить все локально сохранённые данные, включая записи классов, историю чатов, аудиокэш и настройки приложения. Это действие нельзя отменить.",
    "clearCacheConfirmTitle": "Вы уверены, что хотите очистить весь кэш?",
    "clearCacheConfirmDescription": "Это навсегда удалит все следующие данные без возможности восстановления:",
    "clearCacheConfirmItems": "Классы и сцены, История чатов, Аудио- и графический кэш, Настройки и предпочтения",
    "clearCacheConfirmInput": "Введите «УДАЛИТЬ» для продолжения",
    "clearCacheConfirmPhrase": "УДАЛИТЬ",
    "clearCacheButton": "Удалить все данные навсегда",
    "clearCacheSuccess": "Кэш очищен, страница скоро обновится",
    "clearCacheFailed": "Не удалось очистить кэш, попробуйте снова",
    "clearCacheBlockedByOtherTabs": "Закройте другие вкладки приложения и попробуйте снова.",
    "persistUnavailable": "Изменения не сохраняются: приложению не удаётся получить доступ к сохранённым данным. Если перезагрузка не помогает, очистите локальный кэш в настройках.",
    "persistChangesLost": "Хранилище снова работает, но изменения, сделанные во время сбоя, сохранить не удалось — они заменены последней сохранённой версией.",
    "webSearchSettings": "Веб-поиск",
    "webSearchApiKey": "API-ключ поиска",
    "webSearchApiKeyPlaceholder": "Введите API-ключ поиска",
    "webSearchApiKeyPlaceholderServer": "Серверный ключ настроен, можно ввести свой",
    "webSearchApiKeyHint": "Получите API-ключ у выбранного поискового провайдера",
    "claudeSearchModel": "Модель поиска",
    "claudeSearchModelHint": "Модель Claude, которая выполняет веб-поиск и обобщает результаты.",
    "webSearchApiKeyOptional": "API-ключ необязателен. Без него будет использоваться парсинг публичной страницы.",
    "searxngServerOnlyNotice": "SearXNG должен быть настроен на сервере. Установите переменную окружения SEARXNG_BASE_URL (или раздел web-search в server-providers.yml). URL экземпляра от клиента не принимаются.",
    "baiduSubSources": "Источники поиска Baidu",
    "baiduSubSourcesDescription": "Выберите хотя бы один источник Baidu.",
    "baiduSubSourceWeb": "Веб-поиск",
    "baiduSubSourceWebDescription": "Обычные веб-результаты из Baidu AI Search.",
    "baiduSubSourceBaike": "Baidu Baike",
    "baiduSubSourceBaikeDescription": "Энциклопедические статьи из Baidu Baike.",
    "baiduSubSourceScholar": "Baidu Scholar",
    "baiduSubSourceScholarDescription": "Научные публикации из Baidu Scholar.",
    "viewDocs": "API документация",
    "webSearchBaseUrl": "Base URL",
    "webSearchServerConfigured": "Серверный API-ключ поиска настроен",
    "optional": "Необязательно",
    "selectProvider": "Select Provider",
    "customProvider": "Custom",
    "presetPickHint": "Picking a provider auto-fills its base URL and protocol; enter your key then click \"Fetch Models\". Not listed? Use \"Custom\".",
    "presetCategory": {
      "tokenPlan": "Token Plans",
      "aggregator": "Aggregators",
      "thirdParty": "Vendors",
      "official": "Official"
    },
    "fetchModels": "Fetch Models",
    "fetchModelsResult": "Fetched {total} models, added {added}",
    "fetchModelsNoEndpoint": "This provider has no model list endpoint — add models manually",
    "fetchModelsAuthError": "API key is invalid or expired",
    "fetchModelsFailed": "Failed to fetch models",
    "usage": {
      "title": "Usage",
      "refresh": "Refresh",
      "disclaimer": "Usage is system-tracked; only server-side calls are counted.",
      "totalRequests": "Requests",
      "totalTokens": "LLM Tokens",
      "dailyTrend": "Daily Token Trend",
      "tokens": "Tokens",
      "byModel": "By Model",
      "model": "Model",
      "type": "Type",
      "reqs": "Reqs",
      "usage": "Usage",
      "empty": "No usage data yet",
      "kindLlm": "LLM",
      "kindImage": "Image",
      "kindVideo": "Video",
      "kindTts": "Speech",
      "kindAsr": "ASR",
      "unitToken": "tokens",
      "unitImage": "images",
      "unitSecond": "sec",
      "unitCharacter": "chars"
    },
    "tokenPlan": {
      "nav": "Token Plan",
      "title": "Token Plan Setup",
      "desc": "Pick your token plan provider and enter the key — it auto-configures every adapted modality (LLM/image/video/speech/web search).",
      "selectPlan": "Select Provider",
      "apiKey": "API Key",
      "enable": "Enable",
      "updateKey": "Update key",
      "modelsCount": "{{n}} models",
      "capabilities": "Capabilities offered",
      "offeredNote": "Models offered by this plan. Pick the ones you want on the generation bar — availability depends on your plan tier, and unsupported models will error at generation time."
    },
    "skills": {
      "nav": "Навыки",
      "title": "Настройки навыков",
      "description": "Просматривайте навыки, установленные для вашей учётной записи, изучайте навык и скачивайте его в виде zip для обмена или резервной копии.",
      "mySkills": "Мои навыки",
      "builtinSkills": "Встроенные навыки",
      "emptyMySkills": "Своих навыков пока нет — попросите агента в чате создать один из истории.",
      "emptyBuiltinSkills": "Встроенные навыки недоступны.",
      "listFailed": "Не удалось загрузить список навыков",
      "retry": "Повторить",
      "badgeBuiltin": "Встроенный",
      "badgeOwner": "Мой навык",
      "badgeConstraints": "Ограничения",
      "details": "Подробнее",
      "download": "Скачать",
      "detailFailed": "Не удалось загрузить сведения о навыке",
      "contentLabel": "Содержимое",
      "builtinDetailNote": "Этот навык поставляется с OpenMAIC. Скачайте его, чтобы импортировать в другое рабочее пространство агента.",
      "upload": "Загрузить",
      "uploading": "Загрузка…",
      "uploadFailed": "Не удалось загрузить навык. Проверьте файл и повторите попытку.",
      "delete": "Удалить",
      "deleting": "Удаление…",
      "deleteTitle": "Удалить навык?",
      "deleteConfirm": "Навык будет удалён из вашей учётной записи. Это действие нельзя отменить.",
      "deleteFailed": "Не удалось удалить навык. Повторите попытку."
    },
    "ttsBrowserNativeTimelineNotice": "Встроенный в браузер TTS не поддерживает функции аудио на таймлайне редактора (прослушивание, повторная генерация и массовая озвучка). Переключитесь на управляемый TTS-провайдер, чтобы генерировать и управлять аудио для каждой строки.",
    "alidocmindAccessKeyId": "AccessKey ID",
    "alidocmindAccessKeySecret": "AccessKey Secret"
  },
  "workspace": {
    "untitledCourse": "未命名课堂",
    "sceneCount": "{{count}} 页",
    "sceneCount_one": "{{count}} 页",
    "sceneCount_other": "{{count}} 页",
    "courseLinkHint": "在右侧打开《{{name}}》",
    "courseLinkMore": "还有 {{count}} 节课堂",
    "courseMention": {
      "title": "为这条消息引用课堂",
      "empty": "没有匹配的课堂",
      "alreadyNamed": "已引用",
      "remove": "移除{{name}}",
      "pillHint": "这条消息引用了「{{name}}」",
      "notAccepted": "Сервер временно недоступен. Повторите попытку чуть позже.",
      "reference": "引用「{{name}}」",
      "capped": "仅显示前 {{count}} 个，继续输入以缩小范围"
    },
    "heroTitle": "What will you create today?",
    "heroSubtitle": "Share an idea and turn it into a learning journey people can step into",
    "newSession": "New chat",
    "sections": {
      "courses": "Courses",
      "sessions": "Chats"
    },
    "coursesEmpty": "No courses yet",
    "sessionsEmpty": "No chats yet",
    "loading": "Loading",
    "loadFailed": "Couldn't load",
    "retry": "Retry",
    "untitledSession": "Untitled chat",
    "pagePosition": "Page {{index}} of {{total}}",
    "exitPro": "Exit Pro",
    "navAria": "Workspace navigation",
    "homeAria": "Back to home",
    "currentSession": "Current chat",
    "startLearning": "Начать обучение",
    "time": {
      "justNow": "Just now",
      "minutesAgo": "{{count}}m ago",
      "hoursAgo": "{{count}}h ago",
      "daysAgo": "{{count}}d ago"
    },
    "sessionStatus": {
      "connecting": "Connecting",
      "queued": "Queued",
      "running": "Running",
      "succeeded": "Ready",
      "failed": "Needs attention",
      "cancelled": "Stopped"
    },
    "backToWorkspace": "Back to workspace",
    "searchPlaceholder": "Filter by name",
    "searchAria": "Search {{section}}",
    "searchEmpty": "No matches",
    "showMore": "Show {{count}} more",
    "showLess": "Show less",
    "utilitiesAria": "Preferences and account",
    "resizeAria": "Drag to resize the sidebar",
    "chatPaneAria": "Chat panel",
    "classroomPaneAria": "Classroom",
    "collapseNav": "Collapse navigation",
    "expandNav": "Expand navigation",
    "expandNavInto": "Expand navigation · {{section}}",
    "collapseChat": "Collapse conversation",
    "expandChat": "Conversation",
    "collapseClassroom": "Collapse classroom",
    "expandClassroom": "Classroom",
    "readOnlyBadge": "Read-only",
    "noCourseTitle": "No course open",
    "noCourseHint": "Откройте по ссылке на курс в переписке или выберите курс в списке слева — переписка останется на месте",
    "resizeChatAria": "Drag to resize the conversation pane",
    "firstPageLanding": "The first page is landing…",
    "autoSaving": "Автосохранение…",
    "autoSaved": "Сохранено",
    "collapsedTitle": "Both panes are collapsed",
    "collapsedHint": "Use the tabs on the left to bring the conversation or the classroom back",
    "moreUtilities": "More",
    "rowMore": "Другие действия для {{name}}",
    "folderDeleteHint": "Курсы из папки вернутся на верхний уровень. Ничего не удаляется.",
    "dropToUnfile": "Перетащите сюда, чтобы убрать из папки",
    "renameInvalid": "Название должно содержать от 1 до 120 символов",
    "renameForbidden": "Этот курс создан не вами, переименовать его нельзя",
    "renameGone": "Такого курса больше нет",
    "renameSession": "Переименовать чат",
    "renameSessionAria": "Переименовать чат «{{name}}»",
    "renameSessionFailed": "Не удалось переименовать, попробуйте ещё раз",
    "delete": "Удалить",
    "confirmDelete": "Подтвердить удаление",
    "deleting": "Удаление…",
    "deleteFailed": "Не удалось удалить. Повторите попытку.",
    "tabsAria": "Chats and courses",
    "courseTabsAria": "Открытые курсы",
    "courseTabClose": "Закрыть вкладку: {{name}}",
    "courseTabRunning": "Генерируется",
    "foldersUnavailable": "Папки недоступны в этой сборке"
  },
  "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": "Неверный код доступа. Попробуйте ещё раз."
  },
  "proMode": {
    "attach": "Прикрепить материал",
    "mentionCourse": "引用课堂",
    "loadSkill": "加载 skill",
    "skillMenuTitle": "选择课程设计技能",
    "skillsLoading": "正在加载 skill…",
    "noSkillsAvailable": "暂无可用 skill",
    "userSkillsGroup": "我的 Skill",
    "builtinSkillsGroup": "内置 Skill",
    "skillsLoadFailed": "Skill 加载失败，点击重试",
    "retrySkills": "重试",
    "noSkillMatch": "没有匹配“{{query}}”的 Skill",
    "badgeAria": "Pro-режим",
    "badgeEnter": "Pro-режим",
    "badgeExit": "Вернуться в обычный режим",
    "launchPlaceholder": "Опишите учебный опыт, который хотите создать",
    "launchSend": "Начать сборку"
  },
  "workbench": {
    "tool": {
      "label": {
        "extractMaterial": null,
        "waitMaterials": null
      },
      "error": {
        "materialExtraction": null
      }
    }
  }
}
