chore: ai, public course and other ui improvements

This commit is contained in:
Rotimi Best
2026-05-09 06:05:03 +01:00
parent 5717dd8004
commit c31ad63955
318 changed files with 20668 additions and 4788 deletions
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Сообщение успешно создано",
"post_updated": "Сообщение успешно обновлено"
}
},
"ai_credits": {
"purchase_success": "Пакет токенов добавлен на ваш баланс.",
"checkout_failed": "Не удалось начать оформление заказа. Пожалуйста, попробуйте еще раз."
},
"public_course": {
"url_copied": "URL курса скопирован",
"url_copy_failed": "Не удалось скопировать URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Выберите теги",
"empty_groups": "Тегов пока нет"
},
"compliance": "Соответствие"
"compliance": "Соответствие",
"public": "Общественный",
"convert_to_public_blocked": "В этом курсе есть вопросы, которые нельзя оценить автоматически, поэтому его пока нельзя опубликовать.",
"fix_blocking_questions": "Исправить блокирующие вопросы",
"slug": {
"label": "URL-адрес",
"description": "Последний сегмент общедоступного URL-адреса этого элемента. Только буквы, цифры и тире.",
"public_only": "Слаги доступны для редактирования только на общедоступных курсах.",
"in_use": "Этот пул уже используется другим предметом в этом курсе."
},
"callout": {
"legend": "Уведомление об общедоступном курсе",
"description": "Отображается внизу каждого урока вместо заблокированных элементов. Используйте его, чтобы привлечь учащихся на ваш сайт или на платный курс.",
"title_label": "Название",
"title_placeholder": "Хотите углубиться в это?",
"description_label": "Описание",
"description_placeholder": "Присоединяйтесь к полной группе, чтобы реализовать проект промышленного уровня за 4 недели.",
"button_label": "Метка кнопки",
"button_label_placeholder": "Подробнее читайте на моем сайте",
"button_url_label": "URL-адрес кнопки",
"button_url_placeholder": "https://example.com",
"clear": "Очистить выноску",
"public_only": "Уточнения появляются только на общедоступных курсах."
}
},
"analytics": {
"title": "Аналитика"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Попытка {текущая} из {total}",
"previous_try": "Предыдущая попытка",
"next_try": "Следующая попытка",
"try_again": "Попробуйте еще раз"
"try_again": "Попробуйте еще раз",
"back": "Назад",
"begin_section": "Начальный раздел",
"complete_section": "Полный раздел"
},
"edit_mode": {
"delete_modal": "Удалить упражнение",
@@ -1193,7 +1227,8 @@
"hotspot": "Точка доступа",
"link": "Ссылки",
"word_bank": "Банк слов",
"star": "Звездный рейтинг"
"star": "Звездный рейтинг",
"video_recording": "Запись видео"
},
"select_type": "Выберите тип",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Удалить вопрос",
"sure": "Вы уверены, что хотите удалить этот вопрос?",
"no": "Нет, пожалуйста, не надо",
"yes": "Да, удалить"
"yes": "Да, удалить",
"section_title": "Удалить раздел",
"section_sure": "Этот раздел будет удален. Его вопросы будут перенесены в ближайший раздел."
},
"description": {
"title": "Название",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "например 3",
"max_stars_placeholder": "например 5"
}
},
"video_recording": {
"submission": {
"no_video": "Видео не представлено.",
"unavailable": "Видео недоступно.",
"duration": "Продолжительность",
"file_size": "Размер файла",
"recorded_at": "Записано",
"uploaded_at": "Загружено",
"retake_count": "Пересдача"
},
"preview": {
"max_duration_label": "Максимальная продолжительность",
"manual_grading": "Учащиеся записывают короткий видеоответ. Требуется ручная оценка."
},
"take": {
"unsupported": "Запись видео не поддерживается в этом браузере.",
"permission_prompt": "Разрешите доступ к камере и микрофону, чтобы записать ваш ответ.",
"permission_denied": "Доступ к камере или микрофону заблокирован. Проверьте разрешения браузера.",
"start_camera": "Настроить камеру",
"camera_label": "Камера",
"camera_placeholder": "Выберите камеру",
"play_preview": "Воспроизвести предварительный просмотр записи",
"pause_preview": "Приостановить предварительный просмотр записи",
"start_recording": "Начать запись",
"stop_recording": "Остановить запись",
"elapsed": "Прошедшее",
"remaining": "Осталось",
"max_duration": "Макс",
"too_short": "Запись не менее 1 секунды.",
"use_recording": "Использовать запись",
"retake": "Пересдать",
"delete": "Удалить запись",
"retry_upload": "Повторить загрузку",
"uploading": "Загрузка записи...",
"uploaded": "Запись загружена",
"upload_failed": "Загрузка не удалась. Попробуйте еще раз.",
"replaces_previous": "Новый принятый вариант заменяет предыдущий ответ после загрузки."
},
"edit": {
"max_duration_label": "Максимальная продолжительность",
"max_duration_helper": "Учащиеся делают запись в браузере и могут пересдать ее перед отправкой. Максимум — 2 минуты.",
"max_duration_placeholder": "60",
"manual_grading": "Требуется ручная оценка"
}
}
},
"settings": "Настройки",
"settings_allow_multiple": "Разрешить несколько попыток",
"settings_allow_multiple_helper": "Учащиеся могут отправлять заявки несколько раз и просматривать предыдущие попытки на экране результатов.",
"settings_save": "Сохранить настройки"
"settings_save": "Сохранить настройки",
"add": "Добавить",
"add_section": "Добавить раздел",
"reorder_done": "Изменение заказа завершено",
"section": {
"fallback_title": "Раздел",
"questions": "вопросы",
"short_questions": "д",
"required": "требуется",
"add_question": "Добавить вопрос",
"delete": "Удалить раздел",
"move_up": "Переместить раздел вверх",
"move_down": "Переместить раздел вниз",
"color": "Цвет раздела",
"description_placeholder": "Опишите этот раздел",
"after_section": "После раздела",
"continue": "Перейти к следующему разделу",
"go_to_section": "Перейти в раздел",
"submit": "Отправить упражнение"
}
},
"new_exercise_modal": {
"heading": "Новое упражнение",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Ваш преподаватель еще не разблокировал этот контент. Завершите предыдущий контент или зайдите позже.",
"saving": "Сохранение…",
"saved": "Сохранено",
"draft_recovery": "Для этого урока найден несохраненный черновик. Хотели бы вы восстановить его?"
"draft_recovery": "Для этого урока найден несохраненный черновик. Хотели бы вы восстановить его?",
"stats": {
"sections": "Разделы",
"lessons": "Уроки",
"exercises": "Упражнения"
}
},
"news_feed": {
"heading": "Лента новостей",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Доступен на публичном сайте вашего курса"
},
"sidebar": {
"back_to_course": "Вернуться к курсу",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "Для сертификационного упражнения «{exercisionTitle}» не настроены баллы; попросите инструктора это исправить.",
"email_message_label": "Сообщение электронной почты",
"email_message_placeholder": "например Мы гордимся вашим прогрессом — продолжайте учиться!"
},
"creator": {
"heading": "Какой курс вы хотите создать?",
"placeholder": "Попросите ClassroomIO создать для вас курс...",
"type": {
"self_paced": "Самостоятельный темп",
"live_class": "Живой урок"
},
"level": {
"beginner": "Новичок",
"intermediate": "Средний",
"advanced": "Расширенный"
},
"drafting": {
"heading": "Продумываем идею вашего курса",
"subtext": "Мы превратим ваше приглашение в название курса и рабочую область.",
"step_reading": "Читаю вашу подсказку",
"step_naming": "Название вашего курса",
"step_building": "Создание своего рабочего пространства"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Неопубликовано",
"continue_course": "Продолжить",
"learn_more": "Узнать больше",
"public_badge": "Публичный",
"actions_menu_aria": "Действия с курсом",
"tags_overflow_aria": "Ещё {count} тегов",
"list_view": {
"title": "Название",
@@ -1897,7 +2026,8 @@
"invite": "Пригласить",
"delete": "Удалить",
"open": "Открыть",
"open_course_site": "Открытый сайт курса"
"open_public_course": "Открыть публичный курс",
"copy_course_url": "Копировать URL курса"
},
"due_date": "Срок погашения",
"valid_until": "Действительно до"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Токен аутентификации",
"customize_lms_tab": "Настроить систему управления обучением",
"domains_tab": "Домены",
"teams_tab": "Команды"
"teams_tab": "Команды",
"ai_credits_tab": "Кредиты ИИ"
},
"subheadings": {
"view_site": "Посмотреть сайт"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "кредиты ИИ",
"page_subtitle": "Отслеживайте использование ИИ-помощника, потребление командой и покупайте пакеты токенов.",
"cost_note": "Использование кредита взвешивается по стоимости модели. Gemini 2.5 Flash и GPT-5.4 Mini считаются за 1 кредитную единицу за токен. Claude Sonnet 4.6 считается 36× на токен, что отражает более высокую стоимость API.",
"buy_tokens": {
"title": "Купить больше жетонов",
"description": "Каждый пакет добавляет 5 000 000 кредитов за 5 долларов США. Выберите, сколько упаковок вам нужно.",
"quantity_hint": "пакеты",
"preview": "Пакет(ы) {quantity} · жетоны {tokens} · ${доллары}",
"buy_button": "Купить за ${долларов}"
},
"leaderboard": {
"title": "Использование команды",
"this_month": "Текущий месяц",
"user": "Пользователь",
"favorite_model": "Любимая модель",
"tokens": "Токены",
"empty": "Никто из вашей команды в этом месяце не пользовался ИИ-помощником."
},
"chart": {
"heading": "Использование",
"subheading": "Ежедневное потребление токенов в этом месяце.",
"tokens": "Токены",
"total_tokens": "Всего токенов",
"total_requests": "Всего запросов",
"empty": "В этом месяце использования еще не зафиксировано."
},
"purchased": {
"title": "Приобретенное использование",
"subtitle": "Дополнительные жетоны, которые вы купили, переносятся до тех пор, пока не будут использованы.",
"lifetime": "Токенов: {tokens} куплено · потрачено ${dollars}",
"buy_more": "Купить больше"
},
"included": {
"title": "Ваше включенное использование",
"subtitle": "Ежемесячные токены включены в ваш план.",
"resets_on": "Сбрасывает {дата}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Самостоятельный темп",
"self_paced_subtitle": "Лучше всего подходит для курсов, где студенты могут брать уроки в удобном для них темпе.",
"compliance_label": "Соответствие",
"compliance_subtitle": "Регулярное обучение с повторной сдачей, напоминаниями и отслеживанием продлений"
"compliance_subtitle": "Регулярное обучение с повторной сдачей, напоминаниями и отслеживанием продлений",
"public_label": "Общественный",
"public_subtitle": "Бесплатные страницы курсов без регистрации, которыми вы можете поделиться публично — отлично подходит для привлечения потенциальных клиентов."
},
"delete_modal": {
"label": "Удалить",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Спросите ИИ-помощника...",
"attach_document": "Прикрепите документ (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Обновите, чтобы загружать документы",
"tokens_exhausted": "Достигнут месячный лимит токенов AI. Купите больше кредитов в «Настройки» > «Оплата» или дождитесь сброса.",
"tokens_exhausted": "Достигнут месячный лимит токенов AI.",
"tokens_exhausted_buy_more": "Купить ещё",
"chat_history": "История чата",
"no_conversations": "Пока нет разговоров",
"untitled": "Без названия",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Упражнение",
"mention_section": "Раздел",
"mention_no_results": "Нет подходящего контента",
"uploading_document": "Загрузка документа..."
"uploading_document": "Загрузка документа...",
"agent_running_warning": "Изменения появятся в курсе, как только агент завершит работу. Не перезагружайте страницу."
},
"widgets": {
"heading": "Виджеты",