feat: live class sessions, CE workflow, and docs (#683)
Adds live-class session scheduling on lessons (join link, date/time, timezone) with automatic 24h and 1h reminder emails plus a calendar invite (.ics), a time-change notification with an updated invite, a teacher-authored welcome email and session invite on enrollment, and a "Notify students" quiz nudge. LMS gets an upcoming live-sessions card and Join buttons, plus a reusable live-session card component (3 states) in @cio/ui with a Storybook story. The sidebar content tree now reflects sequential progression locking like the content list, and the course-completion confetti regression is fixed. Org-based emails no longer reference ClassroomIO by name. Docs add live-class, welcome-email, and course-progression guides, expand the certificates guide (design, signatures, corrected labels), move plan-required callouts to the top, flatten how-to-guides to the docs root with redirects, and add screenshots. Includes an add-docs-image skill.
This commit is contained in:
@@ -677,6 +677,15 @@
|
||||
"user_analytics": {
|
||||
"title": "Профиль студента",
|
||||
"page_subtitle": "Progress, grades, and activity across their courses."
|
||||
},
|
||||
"delete": {
|
||||
"action": "Удалить",
|
||||
"title": "Удалить участника",
|
||||
"description": "Это приведет к удалению участника из вашей организации и аннулированию его доступа ко всем назначенным курсам и программам.",
|
||||
"confirmation": "Вы уверены, что хотите удалить {name} ({email})? Это действие невозможно отменить.",
|
||||
"cancel": "Отмена",
|
||||
"confirm": "Удалить",
|
||||
"snackbar_success": "Участник удален"
|
||||
}
|
||||
},
|
||||
"community": {
|
||||
@@ -803,6 +812,12 @@
|
||||
"animation_waves": "Волны",
|
||||
"animation_dotted": "Пунктирный",
|
||||
"animation_none": "Нет"
|
||||
},
|
||||
"course_type_learn_more": "Узнать больше",
|
||||
"welcome_email": {
|
||||
"title": "Приветственное письмо",
|
||||
"description": "Настройте электронное письмо, которое студенты получат после регистрации. Добавьте личную заметку, инструкции или ссылку на сеанс в реальном времени.",
|
||||
"placeholder": "Напишите приветственное сообщение, которое студенты получат при зачислении…"
|
||||
}
|
||||
},
|
||||
"analytics": {
|
||||
@@ -1054,7 +1069,7 @@
|
||||
"add": "Добавить",
|
||||
"add_team": "Добавьте своих товарищей по команде или сотрудников в свою организацию. Начните работать вместе",
|
||||
"invite": "Пригласить",
|
||||
"placeholder": "электронная почта, разделенная запятой",
|
||||
"placeholder": "[email protected], [email protected]",
|
||||
"role": "Роль",
|
||||
"send_invite": "Отправить приглашение",
|
||||
"members": "Члены",
|
||||
@@ -1066,6 +1081,7 @@
|
||||
"description": "Любой, у кого есть эта ссылка, может присоединиться к вашей организации.",
|
||||
"generate": "Создать ссылку",
|
||||
"copy": "Копировать",
|
||||
"copy_invite_link": "Скопировать ссылку приглашения",
|
||||
"copied": "Скопировано!",
|
||||
"toggle_label": "Приглашение по ссылке активно",
|
||||
"disabled_notice": "Эта ссылка отключена. Включите его, чтобы позволить новым участникам присоединяться по ссылке.",
|
||||
@@ -1775,7 +1791,13 @@
|
||||
"settings_completion_policy": "Правило завершения",
|
||||
"settings_completion_submitted": "Отправлено — любая отправка засчитывается",
|
||||
"settings_completion_passed": "Пройдено — требуется минимальный балл",
|
||||
"settings_pass_threshold": "Порог прохождения (%)"
|
||||
"settings_pass_threshold": "Порог прохождения (%)",
|
||||
"notify": {
|
||||
"action": "Уведомить студентов",
|
||||
"sending": "Уведомление учащихся…",
|
||||
"sent": "Уведомлено учащихся: {count}",
|
||||
"failed": "Не удалось уведомить студентов"
|
||||
}
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Новое упражнение",
|
||||
@@ -2046,6 +2068,41 @@
|
||||
"sections": "Разделы",
|
||||
"lessons": "Уроки",
|
||||
"exercises": "Упражнения"
|
||||
},
|
||||
"session": {
|
||||
"join": "Присоединиться к сеансу",
|
||||
"heading": "Живая сессия",
|
||||
"intro": "Установите ссылку для присоединения и запланированное время для этого живого урока. Студенты получают напоминания за 24 часа и за 1 час.",
|
||||
"link_label": "Ссылка для присоединения (Zoom, Meet и т. д.)",
|
||||
"datetime_label": "Дата и время",
|
||||
"timezone_label": "Часовой пояс",
|
||||
"timezone_helper": "Напоминания и приглашения в календаре используют этот часовой пояс для отображения.",
|
||||
"save": "Сохранить сеанс",
|
||||
"saved": "Сеанс сохранен.",
|
||||
"notified": "Студенты уведомлены об обновленной сессии",
|
||||
"notify_failed": "Не удалось уведомить учащихся об изменении.",
|
||||
"confirm_title": "Уведомить студентов об изменении?",
|
||||
"confirm_body": "При сохранении всем зачисленным учащимся будет отправлено электронное письмо об обновленном сеансе с новым приглашением в календаре, которое обновит событие в их календаре.",
|
||||
"confirm_cancel": "Отмена",
|
||||
"confirm_save": "Сохранить и уведомить",
|
||||
"live_indicator": "Этот урок представляет собой живое занятие",
|
||||
"live_session": "Живая сессия",
|
||||
"live_now": "В прямом эфире",
|
||||
"live_event": "Живая сессия",
|
||||
"started": "Началось",
|
||||
"min_ago": "минуту назад",
|
||||
"join_now": "Присоединяйтесь сейчас",
|
||||
"copy_link": "Скопировать ссылку",
|
||||
"copy": "Копировать",
|
||||
"add_to_calendar": "Добавить в календарь",
|
||||
"add_google": "Google Календарь",
|
||||
"add_outlook": "Outlook.com",
|
||||
"add_office365": "Офис 365",
|
||||
"add_yahoo": "Yahoo-календарь",
|
||||
"add_apple": "Календарь Apple (.ics)",
|
||||
"starts_in": "Начинается через",
|
||||
"session_ended": "Сессия завершена",
|
||||
"link_copied": "Ссылка скопирована"
|
||||
}
|
||||
},
|
||||
"news_feed": {
|
||||
@@ -2211,7 +2268,10 @@
|
||||
"title": "Требования курса выполнены!",
|
||||
"subtitle": "Поздравляем — вы можете просмотреть и скачать свой сертификат в любое время.",
|
||||
"view_certificate": "Посмотреть сертификат",
|
||||
"later": "Закрыть"
|
||||
"later": "Закрыть",
|
||||
"checking": "Проверка пригодности…",
|
||||
"not_eligible_title": "Почти там",
|
||||
"retake_exercise": "Пересдать упражнение"
|
||||
}
|
||||
},
|
||||
"certificates": {
|
||||
@@ -2236,7 +2296,8 @@
|
||||
"blocker_final_score": "Ваш лучший результат в «{exerciseTitle}» — {bestPercent}%; Требуется {requiredPercent}%.",
|
||||
"blocker_final_misconfigured": "Для сертификационного упражнения «{exerciseTitle}» не настроены баллы; попросите инструктора это исправить.",
|
||||
"email_message_label": "Сообщение электронной почты",
|
||||
"email_message_placeholder": "например Мы гордимся вашим прогрессом — продолжайте учиться!"
|
||||
"email_message_placeholder": "например Мы гордимся вашим прогрессом — продолжайте учиться!",
|
||||
"final_exercise_multiple_attempts_note": "Студентам будет разрешено неограниченное количество попыток выполнения выбранного упражнения."
|
||||
},
|
||||
"creator": {
|
||||
"heading": "Какой курс вы хотите создать?",
|
||||
@@ -2440,8 +2501,10 @@
|
||||
"learner": "Студент",
|
||||
"progress": "Прогресс",
|
||||
"pick_up_where_you_left_off": "Продолжайте с того места, где вы остановились",
|
||||
"get_your_certificate": "Получите свой сертификат",
|
||||
"course_awaits_you": "{title} ждет вас",
|
||||
"learning_awaits_you": "Следующий курс ждет вас",
|
||||
"my_certificate": "Мой сертификат",
|
||||
"lms_today_progress": "Ваш прогресс в обучении – {progress} %. Каждый шаг имеет значение.",
|
||||
"lms_today_empty": "Ваш путь обучения готов, когда вы будете готовы.",
|
||||
"compliance_score": "Оценка соответствия",
|
||||
@@ -2459,7 +2522,8 @@
|
||||
"login_activity_logins": "логины",
|
||||
"open_academy": "Открытая Академия",
|
||||
"explore_more_courses": "Ознакомьтесь с другими курсами",
|
||||
"view_more": "Посмотреть больше"
|
||||
"view_more": "Посмотреть больше",
|
||||
"upcoming_sessions_heading": "Живые сессии"
|
||||
},
|
||||
"schedule": {
|
||||
"title": "Ваше расписание",
|
||||
|
||||
Reference in New Issue
Block a user