@hed-hog/lms 0.0.304 → 0.0.306
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +413 -401
- package/dist/certificate/certificate.controller.d.ts +90 -0
- package/dist/certificate/certificate.controller.d.ts.map +1 -0
- package/dist/certificate/certificate.controller.js +121 -0
- package/dist/certificate/certificate.controller.js.map +1 -0
- package/dist/certificate/certificate.module.d.ts +3 -0
- package/dist/certificate/certificate.module.d.ts.map +1 -0
- package/dist/certificate/certificate.module.js +26 -0
- package/dist/certificate/certificate.module.js.map +1 -0
- package/dist/certificate/certificate.service.d.ts +115 -0
- package/dist/certificate/certificate.service.d.ts.map +1 -0
- package/dist/certificate/certificate.service.js +343 -0
- package/dist/certificate/certificate.service.js.map +1 -0
- package/dist/certificate/dto/create-certificate-template.dto.d.ts +8 -0
- package/dist/certificate/dto/create-certificate-template.dto.d.ts.map +1 -0
- package/dist/certificate/dto/create-certificate-template.dto.js +44 -0
- package/dist/certificate/dto/create-certificate-template.dto.js.map +1 -0
- package/dist/certificate/dto/update-certificate-template.dto.d.ts +6 -0
- package/dist/certificate/dto/update-certificate-template.dto.d.ts.map +1 -0
- package/dist/certificate/dto/update-certificate-template.dto.js +9 -0
- package/dist/certificate/dto/update-certificate-template.dto.js.map +1 -0
- package/dist/class-group/class-group.controller.d.ts +305 -0
- package/dist/class-group/class-group.controller.d.ts.map +1 -0
- package/dist/class-group/class-group.controller.js +257 -0
- package/dist/class-group/class-group.controller.js.map +1 -0
- package/dist/class-group/class-group.module.d.ts +3 -0
- package/dist/class-group/class-group.module.d.ts.map +1 -0
- package/dist/class-group/class-group.module.js +25 -0
- package/dist/class-group/class-group.module.js.map +1 -0
- package/dist/class-group/class-group.service.d.ts +354 -0
- package/dist/class-group/class-group.service.d.ts.map +1 -0
- package/dist/class-group/class-group.service.js +1356 -0
- package/dist/class-group/class-group.service.js.map +1 -0
- package/dist/class-group/dto/create-class-group.dto.d.ts +33 -0
- package/dist/class-group/dto/create-class-group.dto.d.ts.map +1 -0
- package/dist/class-group/dto/create-class-group.dto.js +165 -0
- package/dist/class-group/dto/create-class-group.dto.js.map +1 -0
- package/dist/class-group/dto/create-session.dto.d.ts +22 -0
- package/dist/class-group/dto/create-session.dto.d.ts.map +1 -0
- package/dist/class-group/dto/create-session.dto.js +117 -0
- package/dist/class-group/dto/create-session.dto.js.map +1 -0
- package/dist/class-group/dto/enrollment.dto.d.ts +22 -0
- package/dist/class-group/dto/enrollment.dto.d.ts.map +1 -0
- package/dist/class-group/dto/enrollment.dto.js +89 -0
- package/dist/class-group/dto/enrollment.dto.js.map +1 -0
- package/dist/class-group/dto/update-class-group.dto.d.ts +6 -0
- package/dist/class-group/dto/update-class-group.dto.d.ts.map +1 -0
- package/dist/class-group/dto/update-class-group.dto.js +9 -0
- package/dist/class-group/dto/update-class-group.dto.js.map +1 -0
- package/dist/class-group/dto/update-session.dto.d.ts +7 -0
- package/dist/class-group/dto/update-session.dto.d.ts.map +1 -0
- package/dist/class-group/dto/update-session.dto.js +24 -0
- package/dist/class-group/dto/update-session.dto.js.map +1 -0
- package/dist/course/course-structure.controller.d.ts +127 -0
- package/dist/course/course-structure.controller.d.ts.map +1 -0
- package/dist/course/course-structure.controller.js +115 -0
- package/dist/course/course-structure.controller.js.map +1 -0
- package/dist/course/course-structure.service.d.ts +142 -0
- package/dist/course/course-structure.service.d.ts.map +1 -0
- package/dist/course/course-structure.service.js +445 -0
- package/dist/course/course-structure.service.js.map +1 -0
- package/dist/course/course.controller.d.ts +195 -0
- package/dist/course/course.controller.d.ts.map +1 -0
- package/dist/course/course.controller.js +104 -0
- package/dist/course/course.controller.js.map +1 -0
- package/dist/course/course.module.d.ts +3 -0
- package/dist/course/course.module.d.ts.map +1 -0
- package/dist/course/course.module.js +28 -0
- package/dist/course/course.module.js.map +1 -0
- package/dist/course/course.service.d.ts +215 -0
- package/dist/course/course.service.d.ts.map +1 -0
- package/dist/course/course.service.js +743 -0
- package/dist/course/course.service.js.map +1 -0
- package/dist/course/dto/create-course-structure-lesson.dto.d.ts +24 -0
- package/dist/course/dto/create-course-structure-lesson.dto.d.ts.map +1 -0
- package/dist/course/dto/create-course-structure-lesson.dto.js +118 -0
- package/dist/course/dto/create-course-structure-lesson.dto.js.map +1 -0
- package/dist/course/dto/create-course-structure-session.dto.d.ts +7 -0
- package/dist/course/dto/create-course-structure-session.dto.d.ts.map +1 -0
- package/dist/course/dto/create-course-structure-session.dto.js +40 -0
- package/dist/course/dto/create-course-structure-session.dto.js.map +1 -0
- package/dist/course/dto/create-course.dto.d.ts +26 -0
- package/dist/course/dto/create-course.dto.d.ts.map +1 -0
- package/dist/course/dto/create-course.dto.js +138 -0
- package/dist/course/dto/create-course.dto.js.map +1 -0
- package/dist/course/dto/update-course-structure-lesson.dto.d.ts +6 -0
- package/dist/course/dto/update-course-structure-lesson.dto.d.ts.map +1 -0
- package/dist/course/dto/update-course-structure-lesson.dto.js +9 -0
- package/dist/course/dto/update-course-structure-lesson.dto.js.map +1 -0
- package/dist/course/dto/update-course-structure-session.dto.d.ts +6 -0
- package/dist/course/dto/update-course-structure-session.dto.d.ts.map +1 -0
- package/dist/course/dto/update-course-structure-session.dto.js +9 -0
- package/dist/course/dto/update-course-structure-session.dto.js.map +1 -0
- package/dist/course/dto/update-course.dto.d.ts +6 -0
- package/dist/course/dto/update-course.dto.d.ts.map +1 -0
- package/dist/course/dto/update-course.dto.js +9 -0
- package/dist/course/dto/update-course.dto.js.map +1 -0
- package/dist/dashboard/dashboard.controller.d.ts +101 -0
- package/dist/dashboard/dashboard.controller.d.ts.map +1 -0
- package/dist/dashboard/dashboard.controller.js +40 -0
- package/dist/dashboard/dashboard.controller.js.map +1 -0
- package/dist/dashboard/dashboard.module.d.ts +3 -0
- package/dist/dashboard/dashboard.module.d.ts.map +1 -0
- package/dist/dashboard/dashboard.module.js +25 -0
- package/dist/dashboard/dashboard.module.js.map +1 -0
- package/dist/dashboard/dashboard.service.d.ts +130 -0
- package/dist/dashboard/dashboard.service.d.ts.map +1 -0
- package/dist/dashboard/dashboard.service.js +626 -0
- package/dist/dashboard/dashboard.service.js.map +1 -0
- package/dist/enterprise/dto/add-enterprise-class-group.dto.d.ts +4 -0
- package/dist/enterprise/dto/add-enterprise-class-group.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/add-enterprise-class-group.dto.js +22 -0
- package/dist/enterprise/dto/add-enterprise-class-group.dto.js.map +1 -0
- package/dist/enterprise/dto/add-enterprise-course.dto.d.ts +5 -0
- package/dist/enterprise/dto/add-enterprise-course.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/add-enterprise-course.dto.js +27 -0
- package/dist/enterprise/dto/add-enterprise-course.dto.js.map +1 -0
- package/dist/enterprise/dto/add-enterprise-student.dto.d.ts +5 -0
- package/dist/enterprise/dto/add-enterprise-student.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/add-enterprise-student.dto.js +27 -0
- package/dist/enterprise/dto/add-enterprise-student.dto.js.map +1 -0
- package/dist/enterprise/dto/add-enterprise-user.dto.d.ts +7 -0
- package/dist/enterprise/dto/add-enterprise-user.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/add-enterprise-user.dto.js +36 -0
- package/dist/enterprise/dto/add-enterprise-user.dto.js.map +1 -0
- package/dist/enterprise/dto/create-enterprise.dto.d.ts +10 -0
- package/dist/enterprise/dto/create-enterprise.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/create-enterprise.dto.js +54 -0
- package/dist/enterprise/dto/create-enterprise.dto.js.map +1 -0
- package/dist/enterprise/dto/update-enterprise-student.dto.d.ts +4 -0
- package/dist/enterprise/dto/update-enterprise-student.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/update-enterprise-student.dto.js +22 -0
- package/dist/enterprise/dto/update-enterprise-student.dto.js.map +1 -0
- package/dist/enterprise/dto/update-enterprise-user.dto.d.ts +5 -0
- package/dist/enterprise/dto/update-enterprise-user.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/update-enterprise-user.dto.js +27 -0
- package/dist/enterprise/dto/update-enterprise-user.dto.js.map +1 -0
- package/dist/enterprise/dto/update-enterprise.dto.d.ts +6 -0
- package/dist/enterprise/dto/update-enterprise.dto.d.ts.map +1 -0
- package/dist/enterprise/dto/update-enterprise.dto.js +9 -0
- package/dist/enterprise/dto/update-enterprise.dto.js.map +1 -0
- package/dist/enterprise/enterprise.controller.d.ts +269 -0
- package/dist/enterprise/enterprise.controller.d.ts.map +1 -0
- package/dist/enterprise/enterprise.controller.js +311 -0
- package/dist/enterprise/enterprise.controller.js.map +1 -0
- package/dist/enterprise/enterprise.module.d.ts +3 -0
- package/dist/enterprise/enterprise.module.d.ts.map +1 -0
- package/dist/enterprise/enterprise.module.js +25 -0
- package/dist/enterprise/enterprise.module.js.map +1 -0
- package/dist/enterprise/enterprise.service.d.ts +282 -0
- package/dist/enterprise/enterprise.service.d.ts.map +1 -0
- package/dist/enterprise/enterprise.service.js +627 -0
- package/dist/enterprise/enterprise.service.js.map +1 -0
- package/dist/evaluation/evaluation.controller.d.ts +56 -0
- package/dist/evaluation/evaluation.controller.d.ts.map +1 -0
- package/dist/evaluation/evaluation.controller.js +76 -0
- package/dist/evaluation/evaluation.controller.js.map +1 -0
- package/dist/evaluation/evaluation.module.d.ts +3 -0
- package/dist/evaluation/evaluation.module.d.ts.map +1 -0
- package/dist/evaluation/evaluation.module.js +25 -0
- package/dist/evaluation/evaluation.module.js.map +1 -0
- package/dist/evaluation/evaluation.service.d.ts +67 -0
- package/dist/evaluation/evaluation.service.d.ts.map +1 -0
- package/dist/evaluation/evaluation.service.js +378 -0
- package/dist/evaluation/evaluation.service.js.map +1 -0
- package/dist/exam/dto/create-exam-question.dto.d.ts +25 -0
- package/dist/exam/dto/create-exam-question.dto.d.ts.map +1 -0
- package/dist/exam/dto/create-exam-question.dto.js +117 -0
- package/dist/exam/dto/create-exam-question.dto.js.map +1 -0
- package/dist/exam/dto/create-exam.dto.d.ts +11 -0
- package/dist/exam/dto/create-exam.dto.d.ts.map +1 -0
- package/dist/exam/dto/create-exam.dto.js +63 -0
- package/dist/exam/dto/create-exam.dto.js.map +1 -0
- package/dist/exam/dto/reorder-exam-questions.dto.d.ts +4 -0
- package/dist/exam/dto/reorder-exam-questions.dto.d.ts.map +1 -0
- package/dist/exam/dto/reorder-exam-questions.dto.js +23 -0
- package/dist/exam/dto/reorder-exam-questions.dto.js.map +1 -0
- package/dist/exam/dto/save-exam-attempt-answers.dto.d.ts +14 -0
- package/dist/exam/dto/save-exam-attempt-answers.dto.d.ts.map +1 -0
- package/dist/exam/dto/save-exam-attempt-answers.dto.js +68 -0
- package/dist/exam/dto/save-exam-attempt-answers.dto.js.map +1 -0
- package/dist/exam/dto/start-exam-attempt.dto.d.ts +4 -0
- package/dist/exam/dto/start-exam-attempt.dto.d.ts.map +1 -0
- package/dist/exam/dto/start-exam-attempt.dto.js +23 -0
- package/dist/exam/dto/start-exam-attempt.dto.js.map +1 -0
- package/dist/exam/dto/submit-exam-attempt.dto.d.ts +5 -0
- package/dist/exam/dto/submit-exam-attempt.dto.d.ts.map +1 -0
- package/dist/exam/dto/submit-exam-attempt.dto.js +23 -0
- package/dist/exam/dto/submit-exam-attempt.dto.js.map +1 -0
- package/dist/exam/dto/update-exam-question.dto.d.ts +6 -0
- package/dist/exam/dto/update-exam-question.dto.d.ts.map +1 -0
- package/dist/exam/dto/update-exam-question.dto.js +9 -0
- package/dist/exam/dto/update-exam-question.dto.js.map +1 -0
- package/dist/exam/dto/update-exam.dto.d.ts +6 -0
- package/dist/exam/dto/update-exam.dto.d.ts.map +1 -0
- package/dist/exam/dto/update-exam.dto.js +9 -0
- package/dist/exam/dto/update-exam.dto.js.map +1 -0
- package/dist/exam/exam-attempt.controller.d.ts +273 -0
- package/dist/exam/exam-attempt.controller.d.ts.map +1 -0
- package/dist/exam/exam-attempt.controller.js +84 -0
- package/dist/exam/exam-attempt.controller.js.map +1 -0
- package/dist/exam/exam-attempt.service.d.ts +302 -0
- package/dist/exam/exam-attempt.service.d.ts.map +1 -0
- package/dist/exam/exam-attempt.service.js +776 -0
- package/dist/exam/exam-attempt.service.js.map +1 -0
- package/dist/exam/exam.controller.d.ts +162 -0
- package/dist/exam/exam.controller.d.ts.map +1 -0
- package/dist/exam/exam.controller.js +158 -0
- package/dist/exam/exam.controller.js.map +1 -0
- package/dist/exam/exam.module.d.ts +3 -0
- package/dist/exam/exam.module.d.ts.map +1 -0
- package/dist/exam/exam.module.js +27 -0
- package/dist/exam/exam.module.js.map +1 -0
- package/dist/exam/exam.service.d.ts +179 -0
- package/dist/exam/exam.service.d.ts.map +1 -0
- package/dist/exam/exam.service.js +597 -0
- package/dist/exam/exam.service.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/dist/instructor/dto/create-instructor.dto.d.ts +10 -0
- package/dist/instructor/dto/create-instructor.dto.d.ts.map +1 -0
- package/dist/instructor/dto/create-instructor.dto.js +55 -0
- package/dist/instructor/dto/create-instructor.dto.js.map +1 -0
- package/dist/instructor/dto/update-instructor.dto.d.ts +9 -0
- package/dist/instructor/dto/update-instructor.dto.d.ts.map +1 -0
- package/dist/instructor/dto/update-instructor.dto.js +51 -0
- package/dist/instructor/dto/update-instructor.dto.js.map +1 -0
- package/dist/instructor/instructor.controller.d.ts +52 -0
- package/dist/instructor/instructor.controller.d.ts.map +1 -0
- package/dist/instructor/instructor.controller.js +98 -0
- package/dist/instructor/instructor.controller.js.map +1 -0
- package/dist/instructor/instructor.module.d.ts +3 -0
- package/dist/instructor/instructor.module.d.ts.map +1 -0
- package/dist/instructor/instructor.module.js +25 -0
- package/dist/instructor/instructor.module.js.map +1 -0
- package/dist/instructor/instructor.service.d.ts +79 -0
- package/dist/instructor/instructor.service.d.ts.map +1 -0
- package/dist/instructor/instructor.service.js +528 -0
- package/dist/instructor/instructor.service.js.map +1 -0
- package/dist/lms.module.d.ts.map +1 -1
- package/dist/lms.module.js +36 -4
- package/dist/lms.module.js.map +1 -1
- package/dist/reports/reports.controller.d.ts +69 -0
- package/dist/reports/reports.controller.d.ts.map +1 -0
- package/dist/reports/reports.controller.js +40 -0
- package/dist/reports/reports.controller.js.map +1 -0
- package/dist/reports/reports.module.d.ts +3 -0
- package/dist/reports/reports.module.d.ts.map +1 -0
- package/dist/reports/reports.module.js +25 -0
- package/dist/reports/reports.module.js.map +1 -0
- package/dist/reports/reports.service.d.ts +80 -0
- package/dist/reports/reports.service.d.ts.map +1 -0
- package/dist/reports/reports.service.js +366 -0
- package/dist/reports/reports.service.js.map +1 -0
- package/dist/training/dto/create-training.dto.d.ts +19 -0
- package/dist/training/dto/create-training.dto.d.ts.map +1 -0
- package/dist/training/dto/create-training.dto.js +98 -0
- package/dist/training/dto/create-training.dto.js.map +1 -0
- package/dist/training/dto/update-training.dto.d.ts +6 -0
- package/dist/training/dto/update-training.dto.d.ts.map +1 -0
- package/dist/training/dto/update-training.dto.js +9 -0
- package/dist/training/dto/update-training.dto.js.map +1 -0
- package/dist/training/training.controller.d.ts +195 -0
- package/dist/training/training.controller.d.ts.map +1 -0
- package/dist/training/training.controller.js +104 -0
- package/dist/training/training.controller.js.map +1 -0
- package/dist/training/training.module.d.ts +3 -0
- package/dist/training/training.module.d.ts.map +1 -0
- package/dist/training/training.module.js +25 -0
- package/dist/training/training.module.js.map +1 -0
- package/dist/training/training.service.d.ts +213 -0
- package/dist/training/training.service.d.ts.map +1 -0
- package/dist/training/training.service.js +497 -0
- package/dist/training/training.service.js.map +1 -0
- package/hedhog/data/dashboard.yaml +6 -0
- package/hedhog/data/dashboard_component.yaml +153 -0
- package/hedhog/data/dashboard_component_role.yaml +97 -0
- package/hedhog/data/dashboard_item.yaml +167 -0
- package/hedhog/data/dashboard_role.yaml +6 -0
- package/hedhog/data/instructor_qualification.yaml +16 -0
- package/hedhog/data/menu.yaml +129 -19
- package/hedhog/data/role.yaml +25 -1
- package/hedhog/data/route.yaml +867 -0
- package/hedhog/frontend/app/_components/class-form-sheet.tsx.ejs +1992 -0
- package/hedhog/frontend/app/_components/course-form-sheet.tsx.ejs +480 -0
- package/hedhog/frontend/app/_components/create-lms-instructor-sheet.tsx.ejs +591 -0
- package/hedhog/frontend/app/_components/create-lms-person-sheet.tsx.ejs +164 -0
- package/hedhog/frontend/app/_components/create-lms-student-person-sheet.tsx.ejs +120 -0
- package/hedhog/frontend/app/_components/lms-class-calendar.tsx.ejs +272 -0
- package/hedhog/frontend/app/_components/mobile-calendar.tsx.ejs +277 -0
- package/hedhog/frontend/app/_lib/editor/canvasInstance.ts.ejs +48 -0
- package/hedhog/frontend/app/_lib/editor/pctHelpers.ts.ejs +50 -0
- package/hedhog/frontend/app/_lib/editor/templateSerializer.ts.ejs +268 -0
- package/hedhog/frontend/app/_lib/editor/types.ts.ejs +94 -0
- package/hedhog/frontend/app/_lib/store/useTemplateStore.ts.ejs +284 -0
- package/hedhog/frontend/app/certificates/issued/page.tsx.ejs +638 -0
- package/hedhog/frontend/app/certificates/models/CanvasStage.tsx.ejs +916 -0
- package/hedhog/frontend/app/certificates/models/LeftPanel.tsx.ejs +200 -0
- package/hedhog/frontend/app/certificates/models/RightPanel.tsx.ejs +769 -0
- package/hedhog/frontend/app/certificates/models/TemplateEditorPage.tsx.ejs +104 -0
- package/hedhog/frontend/app/certificates/models/TopBar.tsx.ejs +354 -0
- package/hedhog/frontend/app/certificates/models/editor/page.tsx.ejs +5 -0
- package/hedhog/frontend/app/certificates/models/page.tsx.ejs +883 -0
- package/hedhog/frontend/app/classes/[id]/_components/event-summary-popover.tsx.ejs +279 -0
- package/hedhog/frontend/app/classes/[id]/_components/quick-create-session-popover.tsx.ejs +1027 -0
- package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +3130 -993
- package/hedhog/frontend/app/classes/page.tsx.ejs +2731 -759
- package/hedhog/frontend/app/courses/[id]/_components/CourseCertificateCard.tsx.ejs +80 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseClassificationCard.tsx.ejs +226 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseContentCard.tsx.ejs +71 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseDangerZoneCard.tsx.ejs +42 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseFlagsCard.tsx.ejs +111 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseMainInfoCard.tsx.ejs +113 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseMediaCard.tsx.ejs +215 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseMultiEntityPicker.tsx.ejs +236 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseRelationsCard.tsx.ejs +141 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseSectionCard.tsx.ejs +57 -0
- package/hedhog/frontend/app/courses/[id]/_components/CourseSummaryCard.tsx.ejs +60 -0
- package/hedhog/frontend/app/courses/[id]/_components/course-edit-types.ts.ejs +33 -0
- package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +933 -1103
- package/hedhog/frontend/app/courses/[id]/structure/page.tsx.ejs +699 -117
- package/hedhog/frontend/app/courses/page.tsx.ejs +1018 -1042
- package/hedhog/frontend/app/enterprise/[id]/page.tsx.ejs +317 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-activity-panel.tsx.ejs +88 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-admin-create-sheet.tsx.ejs +318 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-administrators-tab.tsx.ejs +332 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-class-create-sheet.tsx.ejs +58 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-classes-tab.tsx.ejs +390 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-company-identity-card.tsx.ejs +112 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-course-create-sheet.tsx.ejs +183 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-courses-tab.tsx.ejs +363 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-detail-constants.ts.ejs +88 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-detail-sheet.tsx.ejs +548 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-detail-utils.ts.ejs +33 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-mocks.ts.ejs +277 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-person-picker.ts.ejs +31 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-progress-bar.tsx.ejs +21 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-related-tab.tsx.ejs +224 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-sheet.tsx.ejs +397 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-student-create-sheet.tsx.ejs +167 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-students-tab.tsx.ejs +267 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-system-user-picker.ts.ejs +42 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-types.ts.ejs +96 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-user-create-sheet.tsx.ejs +207 -0
- package/hedhog/frontend/app/enterprise/_components/enterprise-user-distribution-chart.tsx.ejs +149 -0
- package/hedhog/frontend/app/enterprise/page.tsx.ejs +596 -0
- package/hedhog/frontend/app/evaluations/page.tsx.ejs +1250 -0
- package/hedhog/frontend/app/exams/[id]/attempt/page.tsx.ejs +642 -196
- package/hedhog/frontend/app/exams/[id]/page.tsx.ejs +11 -0
- package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +1316 -436
- package/hedhog/frontend/app/exams/page.tsx.ejs +799 -546
- package/hedhog/frontend/app/layout.tsx.ejs +5 -0
- package/hedhog/frontend/app/page.tsx.ejs +3 -1220
- package/hedhog/frontend/app/reports/courses/page.tsx.ejs +843 -0
- package/hedhog/frontend/app/reports/dashboard/page.tsx.ejs +890 -0
- package/hedhog/frontend/app/reports/page.tsx.ejs +802 -808
- package/hedhog/frontend/app/reports/students/page.tsx.ejs +772 -0
- package/hedhog/frontend/app/training/page.tsx.ejs +1873 -628
- package/hedhog/frontend/messages/en.json +1606 -111
- package/hedhog/frontend/messages/pt.json +1636 -134
- package/hedhog/frontend/widgets/active-classes-kpi.tsx.ejs +74 -0
- package/hedhog/frontend/widgets/active-courses-kpi.tsx.ejs +74 -0
- package/hedhog/frontend/widgets/approval-rate-kpi.tsx.ejs +81 -0
- package/hedhog/frontend/widgets/category-distribution-chart.tsx.ejs +119 -0
- package/hedhog/frontend/widgets/class-calendar.tsx.ejs +440 -0
- package/hedhog/frontend/widgets/completion-rate-kpi.tsx.ejs +81 -0
- package/hedhog/frontend/widgets/engagement-chart.tsx.ejs +120 -0
- package/hedhog/frontend/widgets/footer-summary.tsx.ejs +80 -0
- package/hedhog/frontend/widgets/issued-certificates-kpi.tsx.ejs +74 -0
- package/hedhog/frontend/widgets/latest-enrollments.tsx.ejs +166 -0
- package/hedhog/frontend/widgets/student-growth-chart.tsx.ejs +89 -0
- package/hedhog/frontend/widgets/top-courses-chart.tsx.ejs +104 -0
- package/hedhog/frontend/widgets/total-students-kpi.tsx.ejs +78 -0
- package/hedhog/frontend/widgets/upcoming-classes.tsx.ejs +152 -0
- package/hedhog/table/course.yaml +19 -1
- package/hedhog/table/course_class_group.yaml +8 -0
- package/hedhog/table/course_class_session.yaml +33 -0
- package/hedhog/table/course_instructor.yaml +27 -0
- package/hedhog/table/enterprise.yaml +29 -0
- package/hedhog/table/enterprise_class_group.yaml +20 -0
- package/hedhog/table/enterprise_course.yaml +23 -0
- package/hedhog/table/enterprise_student.yaml +24 -0
- package/hedhog/table/enterprise_user.yaml +35 -0
- package/hedhog/table/instructor_qualification.yaml +26 -0
- package/hedhog/table/instructor_qualification_assignment.yaml +22 -0
- package/hedhog/table/question.yaml +6 -0
- package/package.json +6 -6
- package/src/certificate/certificate.controller.ts +83 -0
- package/src/certificate/certificate.module.ts +13 -0
- package/src/certificate/certificate.service.ts +413 -0
- package/src/certificate/dto/create-certificate-template.dto.ts +25 -0
- package/src/certificate/dto/update-certificate-template.dto.ts +6 -0
- package/src/class-group/class-group.controller.ts +189 -0
- package/src/class-group/class-group.module.ts +12 -0
- package/src/class-group/class-group.service.ts +1802 -0
- package/src/class-group/dto/create-class-group.dto.ts +139 -0
- package/src/class-group/dto/create-session.dto.ts +102 -0
- package/src/class-group/dto/enrollment.dto.ts +70 -0
- package/src/class-group/dto/update-class-group.dto.ts +4 -0
- package/src/class-group/dto/update-session.dto.ts +9 -0
- package/src/course/course-structure.controller.ts +85 -0
- package/src/course/course-structure.service.ts +525 -0
- package/src/course/course.controller.ts +69 -0
- package/src/course/course.module.ts +15 -0
- package/src/course/course.service.ts +920 -0
- package/src/course/dto/create-course-structure-lesson.dto.ts +97 -0
- package/src/course/dto/create-course-structure-session.dto.ts +22 -0
- package/src/course/dto/create-course.dto.ts +111 -0
- package/src/course/dto/update-course-structure-lesson.dto.ts +6 -0
- package/src/course/dto/update-course-structure-session.dto.ts +6 -0
- package/src/course/dto/update-course.dto.ts +4 -0
- package/src/dashboard/dashboard.controller.ts +14 -0
- package/src/dashboard/dashboard.module.ts +12 -0
- package/src/dashboard/dashboard.service.ts +726 -0
- package/src/enterprise/dto/add-enterprise-class-group.dto.ts +7 -0
- package/src/enterprise/dto/add-enterprise-course.dto.ts +11 -0
- package/src/enterprise/dto/add-enterprise-student.dto.ts +16 -0
- package/src/enterprise/dto/add-enterprise-user.dto.ts +23 -0
- package/src/enterprise/dto/create-enterprise.dto.ts +41 -0
- package/src/enterprise/dto/update-enterprise-student.dto.ts +7 -0
- package/src/enterprise/dto/update-enterprise-user.dto.ts +11 -0
- package/src/enterprise/dto/update-enterprise.dto.ts +4 -0
- package/src/enterprise/enterprise.controller.ts +233 -0
- package/src/enterprise/enterprise.module.ts +12 -0
- package/src/enterprise/enterprise.service.ts +712 -0
- package/src/evaluation/evaluation.controller.ts +44 -0
- package/src/evaluation/evaluation.module.ts +12 -0
- package/src/evaluation/evaluation.service.ts +394 -0
- package/src/exam/dto/create-exam-question.dto.ts +103 -0
- package/src/exam/dto/create-exam.dto.ts +41 -0
- package/src/exam/dto/reorder-exam-questions.dto.ts +8 -0
- package/src/exam/dto/save-exam-attempt-answers.dto.ts +55 -0
- package/src/exam/dto/start-exam-attempt.dto.ts +8 -0
- package/src/exam/dto/submit-exam-attempt.dto.ts +8 -0
- package/src/exam/dto/update-exam-question.dto.ts +4 -0
- package/src/exam/dto/update-exam.dto.ts +4 -0
- package/src/exam/exam-attempt.controller.ts +65 -0
- package/src/exam/exam-attempt.service.ts +1008 -0
- package/src/exam/exam.controller.ts +102 -0
- package/src/exam/exam.module.ts +14 -0
- package/src/exam/exam.service.ts +784 -0
- package/src/index.ts +29 -0
- package/src/instructor/dto/create-instructor.dto.ts +43 -0
- package/src/instructor/dto/update-instructor.dto.ts +38 -0
- package/src/instructor/instructor.controller.ts +73 -0
- package/src/instructor/instructor.module.ts +12 -0
- package/src/instructor/instructor.service.ts +646 -0
- package/src/lms.module.ts +36 -4
- package/src/reports/reports.controller.ts +14 -0
- package/src/reports/reports.module.ts +12 -0
- package/src/reports/reports.service.ts +485 -0
- package/src/training/dto/create-training.dto.ts +81 -0
- package/src/training/dto/update-training.dto.ts +4 -0
- package/src/training/training.controller.ts +68 -0
- package/src/training/training.module.ts +12 -0
- package/src/training/training.service.ts +574 -0
|
@@ -1,10 +1,184 @@
|
|
|
1
1
|
{
|
|
2
2
|
"DashboardPage": {
|
|
3
3
|
"title": "Dashboard",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Global overview of the courses and classes platform.",
|
|
5
5
|
"breadcrumbs": {
|
|
6
6
|
"home": "Home",
|
|
7
|
-
"lms": "LMS"
|
|
7
|
+
"lms": "LMS",
|
|
8
|
+
"dashboard": "Dashboard"
|
|
9
|
+
},
|
|
10
|
+
"months": {
|
|
11
|
+
"jul": "Jul",
|
|
12
|
+
"aug": "Aug",
|
|
13
|
+
"sep": "Sep",
|
|
14
|
+
"oct": "Oct",
|
|
15
|
+
"nov": "Nov",
|
|
16
|
+
"dec": "Dec",
|
|
17
|
+
"jan": "Jan"
|
|
18
|
+
},
|
|
19
|
+
"weeks": {
|
|
20
|
+
"w1": "W1",
|
|
21
|
+
"w2": "W2",
|
|
22
|
+
"w3": "W3",
|
|
23
|
+
"w4": "W4",
|
|
24
|
+
"w5": "W5",
|
|
25
|
+
"w6": "W6",
|
|
26
|
+
"w7": "W7",
|
|
27
|
+
"w8": "W8"
|
|
28
|
+
},
|
|
29
|
+
"kpis": {
|
|
30
|
+
"totalStudents": {
|
|
31
|
+
"label": "Total Students",
|
|
32
|
+
"description": "vs. previous month"
|
|
33
|
+
},
|
|
34
|
+
"activeCourses": {
|
|
35
|
+
"label": "Active Courses",
|
|
36
|
+
"description": "new this month"
|
|
37
|
+
},
|
|
38
|
+
"activeClasses": {
|
|
39
|
+
"label": "Active Classes",
|
|
40
|
+
"description": "currently in progress"
|
|
41
|
+
},
|
|
42
|
+
"issuedCertificates": {
|
|
43
|
+
"label": "Issued Certificates",
|
|
44
|
+
"description": "this month"
|
|
45
|
+
},
|
|
46
|
+
"completionRate": {
|
|
47
|
+
"label": "Completion Rate",
|
|
48
|
+
"description": "overall average"
|
|
49
|
+
},
|
|
50
|
+
"approvalRate": {
|
|
51
|
+
"label": "Approval Rate",
|
|
52
|
+
"description": "in exams"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"charts": {
|
|
56
|
+
"studentGrowth": {
|
|
57
|
+
"title": "Student Growth",
|
|
58
|
+
"description": "Monthly growth of total enrollments",
|
|
59
|
+
"series": "Students"
|
|
60
|
+
},
|
|
61
|
+
"engagement": {
|
|
62
|
+
"title": "Engagement",
|
|
63
|
+
"description": "Accesses, videos, and exercises per week",
|
|
64
|
+
"series": {
|
|
65
|
+
"accesses": "Accesses",
|
|
66
|
+
"videos": "Videos",
|
|
67
|
+
"exercises": "Exercises"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"topCourses": {
|
|
71
|
+
"title": "Most Accessed Courses",
|
|
72
|
+
"description": "Ranking by number of accesses this month",
|
|
73
|
+
"series": "Accesses"
|
|
74
|
+
},
|
|
75
|
+
"categoryDistribution": {
|
|
76
|
+
"title": "Distribution by Category",
|
|
77
|
+
"description": "Percentage of active courses by area",
|
|
78
|
+
"tooltip": "Percentage",
|
|
79
|
+
"categories": {
|
|
80
|
+
"technology": "Technology",
|
|
81
|
+
"design": "Design",
|
|
82
|
+
"management": "Management",
|
|
83
|
+
"marketing": "Marketing",
|
|
84
|
+
"others": "Others"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"globalCalendar": {
|
|
88
|
+
"title": "Global Class Calendar",
|
|
89
|
+
"description": "All classes from every cohort"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"calendar": {
|
|
93
|
+
"messages": {
|
|
94
|
+
"today": "Today",
|
|
95
|
+
"previous": "Previous",
|
|
96
|
+
"next": "Next",
|
|
97
|
+
"month": "Month",
|
|
98
|
+
"week": "Week",
|
|
99
|
+
"day": "Day",
|
|
100
|
+
"agenda": "Agenda",
|
|
101
|
+
"date": "Date",
|
|
102
|
+
"time": "Time",
|
|
103
|
+
"event": "Event",
|
|
104
|
+
"noEventsInRange": "No classes in this period.",
|
|
105
|
+
"showMore": "+{count} more"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"tabs": {
|
|
109
|
+
"latestEnrollments": "Latest Enrollments",
|
|
110
|
+
"upcomingClasses": "Upcoming Classes"
|
|
111
|
+
},
|
|
112
|
+
"tables": {
|
|
113
|
+
"latestEnrollments": {
|
|
114
|
+
"title": "Latest Enrollments",
|
|
115
|
+
"description": "{count} recent enrollments",
|
|
116
|
+
"columns": {
|
|
117
|
+
"student": "Student",
|
|
118
|
+
"email": "Email",
|
|
119
|
+
"course": "Course",
|
|
120
|
+
"date": "Date",
|
|
121
|
+
"status": "Status"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"upcomingClasses": {
|
|
125
|
+
"title": "Upcoming Classes",
|
|
126
|
+
"description": "Schedule of the next planned classes",
|
|
127
|
+
"columns": {
|
|
128
|
+
"class": "Class",
|
|
129
|
+
"subject": "Subject",
|
|
130
|
+
"teacher": "Teacher",
|
|
131
|
+
"date": "Date",
|
|
132
|
+
"time": "Time"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"pagination": {
|
|
137
|
+
"showingRange": "Showing {from} - {to} of {total}",
|
|
138
|
+
"previousPage": "Previous page",
|
|
139
|
+
"nextPage": "Next page"
|
|
140
|
+
},
|
|
141
|
+
"statuses": {
|
|
142
|
+
"confirmed": "Confirmed",
|
|
143
|
+
"active": "Active",
|
|
144
|
+
"completed": "Completed",
|
|
145
|
+
"pending": "Pending",
|
|
146
|
+
"paused": "Paused",
|
|
147
|
+
"open": "Open",
|
|
148
|
+
"cancelled": "Cancelled",
|
|
149
|
+
"inProgress": "In progress"
|
|
150
|
+
},
|
|
151
|
+
"types": {
|
|
152
|
+
"online": "Online",
|
|
153
|
+
"inPerson": "In-person",
|
|
154
|
+
"hybrid": "Hybrid"
|
|
155
|
+
},
|
|
156
|
+
"footer": {
|
|
157
|
+
"systemStatus": "System status",
|
|
158
|
+
"activeClasses": "{count} active classes",
|
|
159
|
+
"publishedCourses": "{count} published courses",
|
|
160
|
+
"enrolledStudents": "{count} enrolled students",
|
|
161
|
+
"certificates": "{count} certificates"
|
|
162
|
+
},
|
|
163
|
+
"sheet": {
|
|
164
|
+
"lessonDetails": "Class Details",
|
|
165
|
+
"classInfo": "Class Information",
|
|
166
|
+
"fields": {
|
|
167
|
+
"lesson": "Lesson",
|
|
168
|
+
"date": "Date",
|
|
169
|
+
"time": "Time",
|
|
170
|
+
"teacher": "Teacher",
|
|
171
|
+
"classLink": "Class Link",
|
|
172
|
+
"location": "Location",
|
|
173
|
+
"locationOrLink": "Location / Link"
|
|
174
|
+
},
|
|
175
|
+
"accessVirtualRoom": "Access virtual room",
|
|
176
|
+
"enrolledStudents": "Enrolled students",
|
|
177
|
+
"availableSeats": "Available seats",
|
|
178
|
+
"occupancy": "Occupancy",
|
|
179
|
+
"modality": "Modality:",
|
|
180
|
+
"viewFullClass": "View Full Class",
|
|
181
|
+
"joinClass": "Join Class"
|
|
8
182
|
}
|
|
9
183
|
},
|
|
10
184
|
"CursoEditPage": {
|
|
@@ -24,6 +198,31 @@
|
|
|
24
198
|
"badges": {
|
|
25
199
|
"featured": "Featured"
|
|
26
200
|
},
|
|
201
|
+
"summary": {
|
|
202
|
+
"slug": "Slug",
|
|
203
|
+
"offeringType": "Format"
|
|
204
|
+
},
|
|
205
|
+
"offeringType": {
|
|
206
|
+
"options": {
|
|
207
|
+
"onDemand": {
|
|
208
|
+
"label": "On demand",
|
|
209
|
+
"description": "Recorded course for self-paced consumption without depending on class groups."
|
|
210
|
+
},
|
|
211
|
+
"scheduled": {
|
|
212
|
+
"label": "Scheduled",
|
|
213
|
+
"description": "Course mainly offered through class groups with calendars and planned meetings."
|
|
214
|
+
},
|
|
215
|
+
"blended": {
|
|
216
|
+
"label": "Blended",
|
|
217
|
+
"description": "Mixes recorded content with scheduled meetings, class groups, or sessions."
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"classManagementHint": {
|
|
222
|
+
"scheduled": "Class groups are a central part of this offer. Use this shortcut to plan schedule, modality, and sessions.",
|
|
223
|
+
"onDemand": "Class groups are optional in this format. Use this shortcut only if you want to complement the course with scheduled meetings.",
|
|
224
|
+
"blended": "This course mixes self-paced content with scheduled meetings. Use class groups to organize the synchronous part of the offer."
|
|
225
|
+
},
|
|
27
226
|
"kpis": {
|
|
28
227
|
"totalStudents": "Total Students",
|
|
29
228
|
"avgCompletion": "Avg Completion",
|
|
@@ -67,14 +266,37 @@
|
|
|
67
266
|
"label": "Status *",
|
|
68
267
|
"placeholder": "Select the status"
|
|
69
268
|
},
|
|
269
|
+
"offeringType": {
|
|
270
|
+
"label": "Course Format *",
|
|
271
|
+
"placeholder": "Select the format",
|
|
272
|
+
"description": "Defines whether the course is offered on demand, through scheduled class groups, or in a blended model."
|
|
273
|
+
},
|
|
274
|
+
"primaryColor": {
|
|
275
|
+
"label": "Primary Color *",
|
|
276
|
+
"placeholder": "Ex: #107f46"
|
|
277
|
+
},
|
|
278
|
+
"secondaryColor": {
|
|
279
|
+
"label": "Secondary Color *",
|
|
280
|
+
"placeholder": "Ex: #111827"
|
|
281
|
+
},
|
|
70
282
|
"categories": {
|
|
71
283
|
"label": "Categories *",
|
|
72
|
-
"description": "Select one or more categories for the course"
|
|
284
|
+
"description": "Select one or more categories for the course",
|
|
285
|
+
"selectPlaceholder": "Select a category",
|
|
286
|
+
"searchPlaceholder": "Type to search category...",
|
|
287
|
+
"noResults": "No category found",
|
|
288
|
+
"selectedCount": "selected category(ies)",
|
|
289
|
+
"removeAction": "Remove category",
|
|
290
|
+
"createAction": "Create category"
|
|
73
291
|
},
|
|
74
292
|
"instructors": {
|
|
75
293
|
"label": "Instructors",
|
|
76
294
|
"description": "Select the instructors responsible for the course",
|
|
77
|
-
"selected": "{count} instructor(s) selected"
|
|
295
|
+
"selected": "{count} instructor(s) selected",
|
|
296
|
+
"selectPlaceholder": "Select an instructor",
|
|
297
|
+
"searchPlaceholder": "Type to search instructor...",
|
|
298
|
+
"noResults": "No instructor found",
|
|
299
|
+
"removeAction": "Remove instructor"
|
|
78
300
|
},
|
|
79
301
|
"prerequisites": {
|
|
80
302
|
"label": "Prerequisites",
|
|
@@ -85,19 +307,17 @@
|
|
|
85
307
|
"label": "Course Logo",
|
|
86
308
|
"description": "Square image, max 5MB (PNG, JPG)",
|
|
87
309
|
"change": "Change",
|
|
88
|
-
"remove": "Remove",
|
|
89
310
|
"clickToUpload": "Click to upload",
|
|
90
|
-
"
|
|
91
|
-
"
|
|
311
|
+
"uploadedFile": "Uploaded file: {name}",
|
|
312
|
+
"openFile": "Open"
|
|
92
313
|
},
|
|
93
314
|
"banner": {
|
|
94
315
|
"label": "Course Banner",
|
|
95
316
|
"description": "16:9 image, max 5MB (PNG, JPG)",
|
|
96
317
|
"change": "Change",
|
|
97
|
-
"remove": "Remove",
|
|
98
318
|
"clickToUpload": "Click to upload",
|
|
99
|
-
"
|
|
100
|
-
"
|
|
319
|
+
"uploadedFile": "Uploaded file: {name}",
|
|
320
|
+
"openFile": "Open"
|
|
101
321
|
},
|
|
102
322
|
"certificateModel": {
|
|
103
323
|
"label": "Certificate Model",
|
|
@@ -166,6 +386,8 @@
|
|
|
166
386
|
"onlyImages": "Only image files are allowed.",
|
|
167
387
|
"maxSize": "Maximum allowed size: 5MB.",
|
|
168
388
|
"fileSelected": "{name} selected.",
|
|
389
|
+
"fileUploadError": "Could not upload the file.",
|
|
390
|
+
"openFileError": "Could not open the file.",
|
|
169
391
|
"courseUpdated": "Course updated successfully!",
|
|
170
392
|
"courseDeleted": "Course deleted successfully!"
|
|
171
393
|
},
|
|
@@ -178,7 +400,9 @@
|
|
|
178
400
|
"descriptionMin": "Description must be at least 10 characters",
|
|
179
401
|
"levelRequired": "Select a level",
|
|
180
402
|
"statusRequired": "Select a status",
|
|
181
|
-
"
|
|
403
|
+
"offeringTypeRequired": "Select the course format",
|
|
404
|
+
"categoryRequired": "Select at least one category",
|
|
405
|
+
"colorInvalid": "Enter a valid hexadecimal color (ex: #107f46)"
|
|
182
406
|
}
|
|
183
407
|
},
|
|
184
408
|
"CoursesPage": {
|
|
@@ -228,6 +452,10 @@
|
|
|
228
452
|
"tooltip": "Double click to open",
|
|
229
453
|
"studentsLabel": "students"
|
|
230
454
|
},
|
|
455
|
+
"viewMode": {
|
|
456
|
+
"list": "Show as list",
|
|
457
|
+
"cards": "Show as cards"
|
|
458
|
+
},
|
|
231
459
|
"categories": {
|
|
232
460
|
"technology": "Technology",
|
|
233
461
|
"design": "Design",
|
|
@@ -252,6 +480,7 @@
|
|
|
252
480
|
"headers": {
|
|
253
481
|
"code": "Code",
|
|
254
482
|
"title": "Title",
|
|
483
|
+
"name": "Name",
|
|
255
484
|
"level": "Level",
|
|
256
485
|
"status": "Status",
|
|
257
486
|
"categories": "Categories",
|
|
@@ -325,7 +554,21 @@
|
|
|
325
554
|
},
|
|
326
555
|
"categories": {
|
|
327
556
|
"label": "Categories",
|
|
328
|
-
"description": "Select one or more categories"
|
|
557
|
+
"description": "Select one or more categories",
|
|
558
|
+
"createAction": "Create category",
|
|
559
|
+
"selectPlaceholder": "Select a category",
|
|
560
|
+
"removeAction": "Remove category",
|
|
561
|
+
"searchPlaceholder": "Type to search category...",
|
|
562
|
+
"noResults": "No category found",
|
|
563
|
+
"selectedCount": "selected category(ies)"
|
|
564
|
+
},
|
|
565
|
+
"primaryColor": {
|
|
566
|
+
"label": "Primary Color",
|
|
567
|
+
"placeholder": "#1D4ED8"
|
|
568
|
+
},
|
|
569
|
+
"secondaryColor": {
|
|
570
|
+
"label": "Secondary Color",
|
|
571
|
+
"placeholder": "#111827"
|
|
329
572
|
}
|
|
330
573
|
},
|
|
331
574
|
"flags": {
|
|
@@ -357,7 +600,8 @@
|
|
|
357
600
|
"descriptionMinLength": "Description must have at least 10 characters",
|
|
358
601
|
"levelRequired": "Select a level",
|
|
359
602
|
"statusRequired": "Select a status",
|
|
360
|
-
"categoriesRequired": "Select at least one category"
|
|
603
|
+
"categoriesRequired": "Select at least one category",
|
|
604
|
+
"colorInvalid": "Enter a valid HEX color"
|
|
361
605
|
}
|
|
362
606
|
},
|
|
363
607
|
"deleteDialog": {
|
|
@@ -418,6 +662,9 @@
|
|
|
418
662
|
"titlePlaceholder": "E.g.: Introduction to React",
|
|
419
663
|
"duration": "Estimated duration (min) *",
|
|
420
664
|
"durationDescription": "Total expected duration of the session in minutes.",
|
|
665
|
+
"autoSaveSaving": "Saving session automatically...",
|
|
666
|
+
"autoSaveSaved": "Session saved automatically",
|
|
667
|
+
"autoSaveError": "Automatic session save failed",
|
|
421
668
|
"create": "Create Session",
|
|
422
669
|
"update": "Update"
|
|
423
670
|
},
|
|
@@ -444,6 +691,9 @@
|
|
|
444
691
|
"privateDescriptionHelp": "Only visible to instructors and admins.",
|
|
445
692
|
"type": "Type *",
|
|
446
693
|
"typePlaceholder": "Select type",
|
|
694
|
+
"lessonInstructors": "Lesson instructors",
|
|
695
|
+
"noInstructors": "No active and eligible instructors found.",
|
|
696
|
+
"leadInstructorHint": "The first selected instructor will be defined as lead.",
|
|
447
697
|
"videoConfig": "Video Configuration",
|
|
448
698
|
"provider": "Provider",
|
|
449
699
|
"videoUrl": "Video URL",
|
|
@@ -452,6 +702,9 @@
|
|
|
452
702
|
"autoDurationHelp": "Detect duration from video.",
|
|
453
703
|
"transcriptionUpload": "Transcription Upload",
|
|
454
704
|
"transcriptionUploadText": "Click to upload .txt, .srt, .vtt",
|
|
705
|
+
"videoUpload": "Video Upload",
|
|
706
|
+
"videoUploadText": "Click to upload a video file",
|
|
707
|
+
"videoUploadHelp": "Only video files are accepted in this area.",
|
|
455
708
|
"linkExam": "Link Exam",
|
|
456
709
|
"linkedExam": "Linked exam",
|
|
457
710
|
"linkedExamPlaceholder": "Select an exam...",
|
|
@@ -478,6 +731,9 @@
|
|
|
478
731
|
"noResources": "No resources added.",
|
|
479
732
|
"publicTooltip": "Public (click to make private)",
|
|
480
733
|
"privateTooltip": "Private (click to make public)",
|
|
734
|
+
"autoSaveSaving": "Saving automatically...",
|
|
735
|
+
"autoSaveSaved": "Changes saved automatically",
|
|
736
|
+
"autoSaveError": "Automatic save failed",
|
|
481
737
|
"cancel": "Cancel",
|
|
482
738
|
"create": "Create Lesson",
|
|
483
739
|
"update": "Update"
|
|
@@ -560,7 +816,12 @@
|
|
|
560
816
|
"insertImage": "Insert image",
|
|
561
817
|
"transcriptionCopied": "Transcription copied!",
|
|
562
818
|
"downloadStarted": "Download started!",
|
|
563
|
-
"filesAdded": "{count} file(s) added!"
|
|
819
|
+
"filesAdded": "{count} file(s) added!",
|
|
820
|
+
"videoUploaded": "Video added!",
|
|
821
|
+
"invalidVideoType": "Invalid file. Upload only video in this area.",
|
|
822
|
+
"errorLoadingData": "Unable to load the course structure.",
|
|
823
|
+
"autoSaveFailed": "Unable to automatically save the lesson.",
|
|
824
|
+
"sessionAutoSaveFailed": "Unable to automatically save the session."
|
|
564
825
|
},
|
|
565
826
|
"validation": {
|
|
566
827
|
"codeMin": "Code must be at least 2 characters",
|
|
@@ -625,6 +886,10 @@
|
|
|
625
886
|
"minScoreLabel": "Min score",
|
|
626
887
|
"avgScoreLabel": "Average score"
|
|
627
888
|
},
|
|
889
|
+
"viewMode": {
|
|
890
|
+
"list": "Show as list",
|
|
891
|
+
"cards": "Show as cards"
|
|
892
|
+
},
|
|
628
893
|
"empty": {
|
|
629
894
|
"title": "No exams found",
|
|
630
895
|
"description": "Adjust the filters or create a new exam.",
|
|
@@ -675,6 +940,7 @@
|
|
|
675
940
|
},
|
|
676
941
|
"status": {
|
|
677
942
|
"label": "Status",
|
|
943
|
+
"placeholder": "Select status",
|
|
678
944
|
"required": true
|
|
679
945
|
},
|
|
680
946
|
"shuffle": {
|
|
@@ -737,6 +1003,18 @@
|
|
|
737
1003
|
"alternatives": "{count} alternatives",
|
|
738
1004
|
"points": "{score} pt",
|
|
739
1005
|
"pointsPlural": "{score} pts",
|
|
1006
|
+
"types": {
|
|
1007
|
+
"multiple_choice": "Multiple choice",
|
|
1008
|
+
"true_false": "True or false",
|
|
1009
|
+
"essay": "Essay",
|
|
1010
|
+
"fill_blank": "Fill in the blank",
|
|
1011
|
+
"matching": "Matching"
|
|
1012
|
+
},
|
|
1013
|
+
"noAlternatives": "This question does not use alternatives.",
|
|
1014
|
+
"noFillBlankAnswers": "This question has no configured expected answers.",
|
|
1015
|
+
"noMatchingPairs": "This question has no configured pairs.",
|
|
1016
|
+
"fillBlankAnswers": "{count} expected answers",
|
|
1017
|
+
"matchingPairs": "{count} pairs",
|
|
740
1018
|
"actions": {
|
|
741
1019
|
"edit": "Edit",
|
|
742
1020
|
"duplicate": "Duplicate",
|
|
@@ -760,7 +1038,25 @@
|
|
|
760
1038
|
"scorePlaceholder": "2",
|
|
761
1039
|
"alternatives": "Alternatives",
|
|
762
1040
|
"alternativesDescription": "Drag to reorder. Click the circle to mark as correct.",
|
|
763
|
-
"alternativePlaceholder": "Alternative text..."
|
|
1041
|
+
"alternativePlaceholder": "Alternative text...",
|
|
1042
|
+
"questionType": "Question type",
|
|
1043
|
+
"questionTypePlaceholder": "Select the type",
|
|
1044
|
+
"trueLabel": "True",
|
|
1045
|
+
"falseLabel": "False",
|
|
1046
|
+
"trueFalseDescription": "True or false questions always use two fixed options. Choose which one is correct.",
|
|
1047
|
+
"essayDescription": "Essay questions do not use alternatives. Learners will answer with free text.",
|
|
1048
|
+
"fillBlankAnswers": "Expected answers",
|
|
1049
|
+
"fillBlankDescription": "Provide accepted answers for automatic grading (separate alternatives with commas).",
|
|
1050
|
+
"fillBlankItem": "Blank {number}",
|
|
1051
|
+
"fillBlankExpectedAnswer": "Primary answer",
|
|
1052
|
+
"fillBlankExpectedAnswerPlaceholder": "Ex: photosynthesis",
|
|
1053
|
+
"fillBlankAlternativeAnswers": "Alternative answers",
|
|
1054
|
+
"fillBlankAlternativeAnswersPlaceholder": "Ex: fotosynthesis, photosynthetic process",
|
|
1055
|
+
"matchingPairs": "Matching pairs",
|
|
1056
|
+
"matchingDescription": "Define the correct pairs between left and right columns.",
|
|
1057
|
+
"matchingItem": "Pair {number}",
|
|
1058
|
+
"matchingLeftPlaceholder": "Left column text",
|
|
1059
|
+
"matchingRightPlaceholder": "Right column text"
|
|
764
1060
|
},
|
|
765
1061
|
"actions": {
|
|
766
1062
|
"add": "Add",
|
|
@@ -789,9 +1085,34 @@
|
|
|
789
1085
|
"questionCreated": "Question created!",
|
|
790
1086
|
"questionRemoved": "Question removed!",
|
|
791
1087
|
"questionDuplicated": "Question duplicated!",
|
|
792
|
-
"changesSaved": "Changes saved successfully!"
|
|
1088
|
+
"changesSaved": "Changes saved successfully!",
|
|
1089
|
+
"fillBlankNeedsAnswers": "Provide at least one expected answer for fill-blank questions.",
|
|
1090
|
+
"matchingNeedsPairs": "Provide at least two valid pairs for matching questions."
|
|
1091
|
+
},
|
|
1092
|
+
"copySuffix": " (copy)",
|
|
1093
|
+
"viewMode": {
|
|
1094
|
+
"list": "View as list",
|
|
1095
|
+
"cards": "View as cards"
|
|
793
1096
|
},
|
|
794
|
-
"
|
|
1097
|
+
"filters": {
|
|
1098
|
+
"searchPlaceholder": "Search question...",
|
|
1099
|
+
"allTypes": "All types",
|
|
1100
|
+
"clear": "Clear"
|
|
1101
|
+
},
|
|
1102
|
+
"pagination": {
|
|
1103
|
+
"question": "question",
|
|
1104
|
+
"questions": "questions"
|
|
1105
|
+
},
|
|
1106
|
+
"table": {
|
|
1107
|
+
"headers": {
|
|
1108
|
+
"question": "Question",
|
|
1109
|
+
"type": "Type",
|
|
1110
|
+
"points": "Points"
|
|
1111
|
+
},
|
|
1112
|
+
"actions": {
|
|
1113
|
+
"label": "Actions"
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
795
1116
|
},
|
|
796
1117
|
"TrainingPage": {
|
|
797
1118
|
"title": "Training",
|
|
@@ -824,6 +1145,7 @@
|
|
|
824
1145
|
"filters": {
|
|
825
1146
|
"searchPlaceholder": "Search trainings by name or description...",
|
|
826
1147
|
"allAreas": "All areas",
|
|
1148
|
+
"allStatuses": "All statuses",
|
|
827
1149
|
"allLevels": "All levels",
|
|
828
1150
|
"clear": "Clear",
|
|
829
1151
|
"search": "Search"
|
|
@@ -855,6 +1177,8 @@
|
|
|
855
1177
|
"coursesLabel": "courses",
|
|
856
1178
|
"hoursLabel": "h",
|
|
857
1179
|
"studentsLabel": "students",
|
|
1180
|
+
"prerequisiteLabel": "Prerequisite:",
|
|
1181
|
+
"noPrerequisite": "None",
|
|
858
1182
|
"actions": {
|
|
859
1183
|
"label": "Actions",
|
|
860
1184
|
"viewDetails": "View details",
|
|
@@ -862,6 +1186,10 @@
|
|
|
862
1186
|
"delete": "Delete"
|
|
863
1187
|
}
|
|
864
1188
|
},
|
|
1189
|
+
"viewMode": {
|
|
1190
|
+
"list": "Show as list",
|
|
1191
|
+
"cards": "Show as cards"
|
|
1192
|
+
},
|
|
865
1193
|
"pagination": {
|
|
866
1194
|
"formacao": "training",
|
|
867
1195
|
"formacoes": "trainings",
|
|
@@ -905,6 +1233,9 @@
|
|
|
905
1233
|
"placeholder": "Select",
|
|
906
1234
|
"required": true
|
|
907
1235
|
},
|
|
1236
|
+
"level": {
|
|
1237
|
+
"label": "Level"
|
|
1238
|
+
},
|
|
908
1239
|
"status": {
|
|
909
1240
|
"label": "Status",
|
|
910
1241
|
"placeholder": "Select",
|
|
@@ -916,7 +1247,22 @@
|
|
|
916
1247
|
},
|
|
917
1248
|
"cursos": {
|
|
918
1249
|
"label": "Training Courses",
|
|
919
|
-
"description": "Select the courses for the training"
|
|
1250
|
+
"description": "Select the courses for the training",
|
|
1251
|
+
"placeholder": "Select a course",
|
|
1252
|
+
"add": "Create course",
|
|
1253
|
+
"emptyForArea": "There are no courses registered for this area.",
|
|
1254
|
+
"createCourse": "Create course",
|
|
1255
|
+
"loading": "Refreshing courses list..."
|
|
1256
|
+
},
|
|
1257
|
+
"exames": {
|
|
1258
|
+
"placeholder": "Select an exam",
|
|
1259
|
+
"add": "Create exam",
|
|
1260
|
+
"createExam": "Create exam"
|
|
1261
|
+
},
|
|
1262
|
+
"trilha": {
|
|
1263
|
+
"label": "Path Items",
|
|
1264
|
+
"empty": "Add courses and/or exams to build a custom learning path.",
|
|
1265
|
+
"loading": "Refreshing courses and exams..."
|
|
920
1266
|
}
|
|
921
1267
|
},
|
|
922
1268
|
"validation": {
|
|
@@ -932,11 +1278,44 @@
|
|
|
932
1278
|
"create": "Create Training"
|
|
933
1279
|
}
|
|
934
1280
|
},
|
|
1281
|
+
"courseForm": {
|
|
1282
|
+
"title": "Create Course",
|
|
1283
|
+
"description": "Create a course quickly to link it to this training.",
|
|
1284
|
+
"fields": {
|
|
1285
|
+
"nome": {
|
|
1286
|
+
"label": "Name",
|
|
1287
|
+
"placeholder": "Ex: React for Beginners"
|
|
1288
|
+
},
|
|
1289
|
+
"descricao": {
|
|
1290
|
+
"label": "Description",
|
|
1291
|
+
"placeholder": "Describe the course content..."
|
|
1292
|
+
},
|
|
1293
|
+
"area": {
|
|
1294
|
+
"label": "Area",
|
|
1295
|
+
"placeholder": "Select"
|
|
1296
|
+
},
|
|
1297
|
+
"nivel": {
|
|
1298
|
+
"label": "Level",
|
|
1299
|
+
"placeholder": "Select"
|
|
1300
|
+
}
|
|
1301
|
+
},
|
|
1302
|
+
"actions": {
|
|
1303
|
+
"create": "Create course"
|
|
1304
|
+
}
|
|
1305
|
+
},
|
|
935
1306
|
"coursesSummary": {
|
|
936
1307
|
"courses": "course(s)",
|
|
1308
|
+
"items": "item(s)",
|
|
937
1309
|
"hours": "h total",
|
|
938
1310
|
"dot": "·"
|
|
939
1311
|
},
|
|
1312
|
+
"examForm": {
|
|
1313
|
+
"title": "Create Exam",
|
|
1314
|
+
"description": "Create an exam quickly to link it to this training.",
|
|
1315
|
+
"actions": {
|
|
1316
|
+
"create": "Create exam"
|
|
1317
|
+
}
|
|
1318
|
+
},
|
|
940
1319
|
"deleteDialog": {
|
|
941
1320
|
"title": "Delete Training",
|
|
942
1321
|
"description": "Are you sure you want to delete",
|
|
@@ -950,12 +1329,17 @@
|
|
|
950
1329
|
"formacaoUpdated": "Training updated!",
|
|
951
1330
|
"formacaoCriada": "Training created!",
|
|
952
1331
|
"formacaoRemovida": "Training removed!",
|
|
1332
|
+
"courseCreated": "Course created and selected!",
|
|
1333
|
+
"examCreated": "Exam created and selected!",
|
|
1334
|
+
"selectAtLeastOneItem": "Select at least one item for the training.",
|
|
1335
|
+
"selectAtLeastOneCourse": "Select at least one course for the training.",
|
|
1336
|
+
"selectCoursesFromSelectedArea": "Select only courses from the selected area.",
|
|
953
1337
|
"openingFormacao": "Opening \"{nome}\"...",
|
|
954
1338
|
"openingDetails": "Opening training..."
|
|
955
1339
|
}
|
|
956
1340
|
},
|
|
957
1341
|
"ReportsPage": {
|
|
958
|
-
"title": "
|
|
1342
|
+
"title": "Report",
|
|
959
1343
|
"description": "Detailed platform performance analysis",
|
|
960
1344
|
"breadcrumbs": {
|
|
961
1345
|
"home": "Home",
|
|
@@ -965,7 +1349,9 @@
|
|
|
965
1349
|
"export": "Export"
|
|
966
1350
|
},
|
|
967
1351
|
"toasts": {
|
|
968
|
-
"exported": "Report exported!"
|
|
1352
|
+
"exported": "Report exported!",
|
|
1353
|
+
"exportError": "Failed to export PDF.",
|
|
1354
|
+
"noDataToExport": "There is no data to export."
|
|
969
1355
|
},
|
|
970
1356
|
"period": {
|
|
971
1357
|
"7d": "7 days",
|
|
@@ -975,10 +1361,10 @@
|
|
|
975
1361
|
},
|
|
976
1362
|
"kpis": {
|
|
977
1363
|
"totalRevenue": {
|
|
978
|
-
"title": "Total
|
|
1364
|
+
"title": "Total Students"
|
|
979
1365
|
},
|
|
980
1366
|
"enrollments": {
|
|
981
|
-
"title": "Enrollments"
|
|
1367
|
+
"title": "Enrollments (Period)"
|
|
982
1368
|
},
|
|
983
1369
|
"completionRate": {
|
|
984
1370
|
"title": "Completion Rate"
|
|
@@ -1060,9 +1446,9 @@
|
|
|
1060
1446
|
"title": "Course Ranking",
|
|
1061
1447
|
"description": "By number of enrolled students"
|
|
1062
1448
|
},
|
|
1063
|
-
"
|
|
1064
|
-
"title": "Performance by
|
|
1065
|
-
"description": "Average score and completion rate",
|
|
1449
|
+
"performanceByPath": {
|
|
1450
|
+
"title": "Performance by Learning Path",
|
|
1451
|
+
"description": "Average score and completion rate per path",
|
|
1066
1452
|
"completion": "Completion %"
|
|
1067
1453
|
},
|
|
1068
1454
|
"weeklyActivity": {
|
|
@@ -1077,17 +1463,19 @@
|
|
|
1077
1463
|
"description": "Average score in the last 12 months",
|
|
1078
1464
|
"averageScore": "Average Score"
|
|
1079
1465
|
},
|
|
1080
|
-
"
|
|
1081
|
-
"title": "
|
|
1082
|
-
"description": "Detailed comparison across
|
|
1466
|
+
"metricsByPath": {
|
|
1467
|
+
"title": "Learning Path Metrics",
|
|
1468
|
+
"description": "Detailed comparison across learning paths"
|
|
1083
1469
|
}
|
|
1084
1470
|
},
|
|
1085
1471
|
"table": {
|
|
1472
|
+
"metric": "Metric",
|
|
1473
|
+
"value": "Value",
|
|
1086
1474
|
"course": "Course",
|
|
1087
1475
|
"students": "Students",
|
|
1088
1476
|
"completion": "Completion",
|
|
1089
1477
|
"score": "Score",
|
|
1090
|
-
"
|
|
1478
|
+
"path": "Learning Path",
|
|
1091
1479
|
"averageScore": "Average Score",
|
|
1092
1480
|
"completionRate": "Completion Rate",
|
|
1093
1481
|
"trend": "Trend",
|
|
@@ -1104,94 +1492,684 @@
|
|
|
1104
1492
|
"designSystem": "Design System"
|
|
1105
1493
|
}
|
|
1106
1494
|
},
|
|
1107
|
-
"
|
|
1495
|
+
"ReportsCoursesPage": {
|
|
1496
|
+
"title": "Course Report",
|
|
1497
|
+
"description": "Track enrollments, completion, and course performance in a single dashboard.",
|
|
1108
1498
|
"breadcrumbs": {
|
|
1109
1499
|
"home": "Home",
|
|
1110
|
-
"
|
|
1111
|
-
"
|
|
1112
|
-
"examResult": "Exam Result"
|
|
1500
|
+
"reports": "Reports",
|
|
1501
|
+
"courses": "Course Report"
|
|
1113
1502
|
},
|
|
1114
|
-
"
|
|
1115
|
-
"
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
"
|
|
1119
|
-
"
|
|
1120
|
-
"
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1503
|
+
"actions": {
|
|
1504
|
+
"export": "Export"
|
|
1505
|
+
},
|
|
1506
|
+
"filters": {
|
|
1507
|
+
"searchPlaceholder": "Search by course or path...",
|
|
1508
|
+
"period": "Period",
|
|
1509
|
+
"path": "Path",
|
|
1510
|
+
"allPaths": "All paths"
|
|
1511
|
+
},
|
|
1512
|
+
"toasts": {
|
|
1513
|
+
"exported": "Report exported!",
|
|
1514
|
+
"exportError": "Failed to export PDF.",
|
|
1515
|
+
"noDataToExport": "There is no data to export."
|
|
1516
|
+
},
|
|
1517
|
+
"export": {
|
|
1518
|
+
"title": "Course Report - LMS",
|
|
1519
|
+
"periodLabel": "Period",
|
|
1520
|
+
"generatedAt": "Generated at"
|
|
1521
|
+
},
|
|
1522
|
+
"period": {
|
|
1523
|
+
"7d": "7 days",
|
|
1524
|
+
"30d": "30 days",
|
|
1525
|
+
"6m": "6 months",
|
|
1526
|
+
"12m": "12 months"
|
|
1527
|
+
},
|
|
1528
|
+
"kpis": {
|
|
1529
|
+
"totalStudents": {
|
|
1530
|
+
"title": "Unique Students"
|
|
1126
1531
|
},
|
|
1127
|
-
"
|
|
1532
|
+
"enrollments": {
|
|
1533
|
+
"title": "Period Enrollments"
|
|
1534
|
+
},
|
|
1535
|
+
"completionRate": {
|
|
1536
|
+
"title": "Average Completion"
|
|
1537
|
+
},
|
|
1538
|
+
"churnRate": {
|
|
1539
|
+
"title": "Inactive Enrollments"
|
|
1540
|
+
},
|
|
1541
|
+
"vsPreviousPeriod": "vs. previous period"
|
|
1128
1542
|
},
|
|
1129
|
-
"
|
|
1130
|
-
"
|
|
1131
|
-
"
|
|
1132
|
-
"
|
|
1133
|
-
"
|
|
1134
|
-
"
|
|
1135
|
-
"
|
|
1136
|
-
"
|
|
1137
|
-
"
|
|
1138
|
-
"
|
|
1543
|
+
"months": {
|
|
1544
|
+
"jan": "Jan",
|
|
1545
|
+
"feb": "Feb",
|
|
1546
|
+
"mar": "Mar",
|
|
1547
|
+
"apr": "Apr",
|
|
1548
|
+
"may": "May",
|
|
1549
|
+
"jun": "Jun",
|
|
1550
|
+
"jul": "Jul",
|
|
1551
|
+
"aug": "Aug",
|
|
1552
|
+
"sep": "Sep",
|
|
1553
|
+
"oct": "Oct",
|
|
1554
|
+
"nov": "Nov",
|
|
1555
|
+
"dec": "Dec"
|
|
1139
1556
|
},
|
|
1140
|
-
"
|
|
1141
|
-
"
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
"
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
"
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
"
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1557
|
+
"highlights": {
|
|
1558
|
+
"topCourse": {
|
|
1559
|
+
"title": "Leading course",
|
|
1560
|
+
"description": "Highest enrollment volume",
|
|
1561
|
+
"helper": "{students} enrollments"
|
|
1562
|
+
},
|
|
1563
|
+
"bestPath": {
|
|
1564
|
+
"title": "Best path",
|
|
1565
|
+
"description": "Highest completion rate",
|
|
1566
|
+
"helper": "{completion}% completion"
|
|
1567
|
+
},
|
|
1568
|
+
"averageScore": {
|
|
1569
|
+
"title": "Average score",
|
|
1570
|
+
"description": "Final score with progress fallback",
|
|
1571
|
+
"helper": "Based on {total} courses"
|
|
1572
|
+
},
|
|
1573
|
+
"pathCompletion": {
|
|
1574
|
+
"title": "Path completion",
|
|
1575
|
+
"description": "Average completion across learning paths",
|
|
1576
|
+
"helper": "Based on {total} paths"
|
|
1577
|
+
}
|
|
1161
1578
|
},
|
|
1162
|
-
"
|
|
1163
|
-
"
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
"
|
|
1169
|
-
|
|
1170
|
-
|
|
1579
|
+
"charts": {
|
|
1580
|
+
"monthlyEnrollments": {
|
|
1581
|
+
"title": "Enrollment Trend",
|
|
1582
|
+
"description": "Verified enrollment trend across courses",
|
|
1583
|
+
"enrollments": "Enrollments"
|
|
1584
|
+
},
|
|
1585
|
+
"courseRanking": {
|
|
1586
|
+
"title": "Course Ranking",
|
|
1587
|
+
"description": "Courses ordered by enrolled students"
|
|
1588
|
+
},
|
|
1589
|
+
"performanceByPath": {
|
|
1590
|
+
"title": "Completion by Path",
|
|
1591
|
+
"description": "Comparison of completion percentage across learning paths",
|
|
1592
|
+
"completion": "Completion %"
|
|
1593
|
+
},
|
|
1594
|
+
"pathMetrics": {
|
|
1595
|
+
"title": "Path Metrics",
|
|
1596
|
+
"description": "Detailed view of students, progress indicator, and completion by path"
|
|
1597
|
+
}
|
|
1171
1598
|
},
|
|
1172
|
-
"
|
|
1173
|
-
"
|
|
1174
|
-
"
|
|
1175
|
-
"
|
|
1599
|
+
"table": {
|
|
1600
|
+
"metric": "Metric",
|
|
1601
|
+
"value": "Value",
|
|
1602
|
+
"course": "Course",
|
|
1603
|
+
"students": "Students",
|
|
1604
|
+
"completion": "Completion",
|
|
1605
|
+
"score": "Score",
|
|
1606
|
+
"path": "Learning Path",
|
|
1607
|
+
"averageScore": "Progress Indicator",
|
|
1608
|
+
"completionRate": "Completion Rate"
|
|
1609
|
+
},
|
|
1610
|
+
"emptyState": {
|
|
1611
|
+
"title": "No course data for this period",
|
|
1612
|
+
"description": "Adjust the selected period or wait for new records to view this report.",
|
|
1613
|
+
"shortValue": "-"
|
|
1176
1614
|
}
|
|
1177
1615
|
},
|
|
1178
|
-
"
|
|
1179
|
-
"title": "
|
|
1180
|
-
"description": "
|
|
1616
|
+
"ReportsStudentsPage": {
|
|
1617
|
+
"title": "Student Report",
|
|
1618
|
+
"description": "Track enrollment status, operational volume, performance signal, and student progress.",
|
|
1181
1619
|
"breadcrumbs": {
|
|
1182
1620
|
"home": "Home",
|
|
1183
|
-
"
|
|
1621
|
+
"reports": "Reports",
|
|
1622
|
+
"students": "Student Report"
|
|
1184
1623
|
},
|
|
1185
1624
|
"actions": {
|
|
1186
|
-
"
|
|
1625
|
+
"export": "Export"
|
|
1626
|
+
},
|
|
1627
|
+
"filters": {
|
|
1628
|
+
"searchPlaceholder": "Search by status or path...",
|
|
1629
|
+
"period": "Period",
|
|
1630
|
+
"status": "Enrollment status",
|
|
1631
|
+
"allStatuses": "All statuses"
|
|
1632
|
+
},
|
|
1633
|
+
"toasts": {
|
|
1634
|
+
"exported": "Report exported!",
|
|
1635
|
+
"exportError": "Failed to export PDF.",
|
|
1636
|
+
"noDataToExport": "There is no data to export."
|
|
1637
|
+
},
|
|
1638
|
+
"export": {
|
|
1639
|
+
"title": "Student Report - LMS",
|
|
1640
|
+
"periodLabel": "Period",
|
|
1641
|
+
"generatedAt": "Generated at"
|
|
1642
|
+
},
|
|
1643
|
+
"period": {
|
|
1644
|
+
"7d": "7 days",
|
|
1645
|
+
"30d": "30 days",
|
|
1646
|
+
"6m": "6 months",
|
|
1647
|
+
"12m": "12 months"
|
|
1187
1648
|
},
|
|
1188
1649
|
"kpis": {
|
|
1189
|
-
"
|
|
1190
|
-
"
|
|
1191
|
-
"sub": "registered"
|
|
1650
|
+
"totalStudents": {
|
|
1651
|
+
"title": "Unique Students"
|
|
1192
1652
|
},
|
|
1193
|
-
"
|
|
1194
|
-
"
|
|
1653
|
+
"enrollments": {
|
|
1654
|
+
"title": "Period Enrollments"
|
|
1655
|
+
},
|
|
1656
|
+
"completionRate": {
|
|
1657
|
+
"title": "Average Completion"
|
|
1658
|
+
},
|
|
1659
|
+
"churnRate": {
|
|
1660
|
+
"title": "Inactive Enrollments"
|
|
1661
|
+
}
|
|
1662
|
+
},
|
|
1663
|
+
"months": {
|
|
1664
|
+
"jan": "Jan",
|
|
1665
|
+
"feb": "Feb",
|
|
1666
|
+
"mar": "Mar",
|
|
1667
|
+
"apr": "Apr",
|
|
1668
|
+
"may": "May",
|
|
1669
|
+
"jun": "Jun",
|
|
1670
|
+
"jul": "Jul",
|
|
1671
|
+
"aug": "Aug",
|
|
1672
|
+
"sep": "Sep",
|
|
1673
|
+
"oct": "Oct",
|
|
1674
|
+
"nov": "Nov",
|
|
1675
|
+
"dec": "Dec"
|
|
1676
|
+
},
|
|
1677
|
+
"weekdays": {
|
|
1678
|
+
"mon": "Mon",
|
|
1679
|
+
"tue": "Tue",
|
|
1680
|
+
"wed": "Wed",
|
|
1681
|
+
"thu": "Thu",
|
|
1682
|
+
"fri": "Fri",
|
|
1683
|
+
"sat": "Sat",
|
|
1684
|
+
"sun": "Sun"
|
|
1685
|
+
},
|
|
1686
|
+
"statusDistribution": {
|
|
1687
|
+
"active": "Active",
|
|
1688
|
+
"completed": "Completed",
|
|
1689
|
+
"inactive": "Inactive"
|
|
1690
|
+
},
|
|
1691
|
+
"highlights": {
|
|
1692
|
+
"dominantStatus": {
|
|
1693
|
+
"title": "Dominant status",
|
|
1694
|
+
"description": "Highest enrollment concentration",
|
|
1695
|
+
"helper": "{total} students in this status"
|
|
1696
|
+
},
|
|
1697
|
+
"activeDay": {
|
|
1698
|
+
"title": "Top enrollment day",
|
|
1699
|
+
"description": "Highest volume of enrollments recorded in the period",
|
|
1700
|
+
"helper": "{total} recorded enrollments"
|
|
1701
|
+
},
|
|
1702
|
+
"averageScore": {
|
|
1703
|
+
"title": "Performance signal",
|
|
1704
|
+
"description": "Signal based on final score with progress fallback",
|
|
1705
|
+
"helper": "Based on {total} periods"
|
|
1706
|
+
},
|
|
1707
|
+
"pathCompletion": {
|
|
1708
|
+
"title": "Path completion",
|
|
1709
|
+
"description": "Average student progress by path",
|
|
1710
|
+
"helper": "Based on {total} paths"
|
|
1711
|
+
}
|
|
1712
|
+
},
|
|
1713
|
+
"charts": {
|
|
1714
|
+
"weeklyActivity": {
|
|
1715
|
+
"title": "Weekly Volume",
|
|
1716
|
+
"description": "Enrollments, scheduled sessions, and completed exams in the period",
|
|
1717
|
+
"accesses": "Enrollments",
|
|
1718
|
+
"lessons": "Sessions",
|
|
1719
|
+
"exercises": "Completed Exams"
|
|
1720
|
+
},
|
|
1721
|
+
"studentStatus": {
|
|
1722
|
+
"title": "Enrollment Status",
|
|
1723
|
+
"description": "Distribution of students by enrollment status"
|
|
1724
|
+
},
|
|
1725
|
+
"performanceEvolution": {
|
|
1726
|
+
"title": "Performance Evolution",
|
|
1727
|
+
"description": "Trend of the average performance signal throughout the period",
|
|
1728
|
+
"averageScore": "Average Signal"
|
|
1729
|
+
},
|
|
1730
|
+
"pathMetrics": {
|
|
1731
|
+
"title": "Path Metrics",
|
|
1732
|
+
"description": "Detailed view of students, progress indicator, and completion by path"
|
|
1733
|
+
}
|
|
1734
|
+
},
|
|
1735
|
+
"table": {
|
|
1736
|
+
"metric": "Metric",
|
|
1737
|
+
"value": "Value",
|
|
1738
|
+
"status": "Status",
|
|
1739
|
+
"students": "Students",
|
|
1740
|
+
"path": "Learning Path",
|
|
1741
|
+
"averageScore": "Performance Signal",
|
|
1742
|
+
"completionRate": "Completion Rate"
|
|
1743
|
+
},
|
|
1744
|
+
"emptyState": {
|
|
1745
|
+
"title": "No student data for this period",
|
|
1746
|
+
"description": "Adjust the selected filters or wait for new records to view this report.",
|
|
1747
|
+
"shortValue": "-"
|
|
1748
|
+
}
|
|
1749
|
+
},
|
|
1750
|
+
"ReportsDashboardPage": {
|
|
1751
|
+
"title": "General Report",
|
|
1752
|
+
"description": "Quick view of the main LMS indicators, focused on enrollments, statuses, and consolidated performance signals.",
|
|
1753
|
+
"breadcrumbs": {
|
|
1754
|
+
"home": "Home",
|
|
1755
|
+
"reports": "General Report"
|
|
1756
|
+
},
|
|
1757
|
+
"actions": {
|
|
1758
|
+
"export": "Export"
|
|
1759
|
+
},
|
|
1760
|
+
"filters": {
|
|
1761
|
+
"searchPlaceholder": "Search by course, status, or path...",
|
|
1762
|
+
"period": "Period"
|
|
1763
|
+
},
|
|
1764
|
+
"toasts": {
|
|
1765
|
+
"exported": "Report exported!",
|
|
1766
|
+
"exportError": "Failed to export PDF.",
|
|
1767
|
+
"noDataToExport": "There is no data to export."
|
|
1768
|
+
},
|
|
1769
|
+
"export": {
|
|
1770
|
+
"title": "General Report - LMS",
|
|
1771
|
+
"periodLabel": "Period",
|
|
1772
|
+
"generatedAt": "Generated at"
|
|
1773
|
+
},
|
|
1774
|
+
"period": {
|
|
1775
|
+
"7d": "7 days",
|
|
1776
|
+
"30d": "30 days",
|
|
1777
|
+
"6m": "6 months",
|
|
1778
|
+
"12m": "12 months"
|
|
1779
|
+
},
|
|
1780
|
+
"kpis": {
|
|
1781
|
+
"totalStudents": {
|
|
1782
|
+
"title": "Unique Students"
|
|
1783
|
+
},
|
|
1784
|
+
"enrollments": {
|
|
1785
|
+
"title": "Enrollments"
|
|
1786
|
+
},
|
|
1787
|
+
"completionRate": {
|
|
1788
|
+
"title": "Average Completion"
|
|
1789
|
+
},
|
|
1790
|
+
"churnRate": {
|
|
1791
|
+
"title": "Inactive Enrollments"
|
|
1792
|
+
}
|
|
1793
|
+
},
|
|
1794
|
+
"months": {
|
|
1795
|
+
"jan": "Jan",
|
|
1796
|
+
"feb": "Feb",
|
|
1797
|
+
"mar": "Mar",
|
|
1798
|
+
"apr": "Apr",
|
|
1799
|
+
"may": "May",
|
|
1800
|
+
"jun": "Jun",
|
|
1801
|
+
"jul": "Jul",
|
|
1802
|
+
"aug": "Aug",
|
|
1803
|
+
"sep": "Sep",
|
|
1804
|
+
"oct": "Oct",
|
|
1805
|
+
"nov": "Nov",
|
|
1806
|
+
"dec": "Dec"
|
|
1807
|
+
},
|
|
1808
|
+
"weekdays": {
|
|
1809
|
+
"mon": "Mon",
|
|
1810
|
+
"tue": "Tue",
|
|
1811
|
+
"wed": "Wed",
|
|
1812
|
+
"thu": "Thu",
|
|
1813
|
+
"fri": "Fri",
|
|
1814
|
+
"sat": "Sat",
|
|
1815
|
+
"sun": "Sun"
|
|
1816
|
+
},
|
|
1817
|
+
"statusDistribution": {
|
|
1818
|
+
"active": "Active",
|
|
1819
|
+
"completed": "Completed",
|
|
1820
|
+
"inactive": "Inactive"
|
|
1821
|
+
},
|
|
1822
|
+
"highlights": {
|
|
1823
|
+
"topCourse": {
|
|
1824
|
+
"title": "Featured course",
|
|
1825
|
+
"description": "Highest enrollment volume",
|
|
1826
|
+
"helper": "{total} enrollments"
|
|
1827
|
+
},
|
|
1828
|
+
"topPath": {
|
|
1829
|
+
"title": "Leading path",
|
|
1830
|
+
"description": "Highest average completion",
|
|
1831
|
+
"helper": "{total}% completion"
|
|
1832
|
+
},
|
|
1833
|
+
"studentStatus": {
|
|
1834
|
+
"title": "Dominant status",
|
|
1835
|
+
"description": "Most recurring student situation",
|
|
1836
|
+
"helper": "{total} students in this status"
|
|
1837
|
+
},
|
|
1838
|
+
"activity": {
|
|
1839
|
+
"title": "Dominant volume",
|
|
1840
|
+
"description": "Day with the highest operational volume in the period",
|
|
1841
|
+
"helper": "{total} operational records in the period"
|
|
1842
|
+
}
|
|
1843
|
+
},
|
|
1844
|
+
"charts": {
|
|
1845
|
+
"monthlyOverview": {
|
|
1846
|
+
"title": "Enrollment Movement",
|
|
1847
|
+
"description": "Quick overview of verified enrollments in the selected period",
|
|
1848
|
+
"enrollments": "Enrollments"
|
|
1849
|
+
},
|
|
1850
|
+
"topCourses": {
|
|
1851
|
+
"title": "Top Courses",
|
|
1852
|
+
"description": "Strongest courses by enrollment base"
|
|
1853
|
+
},
|
|
1854
|
+
"studentStatus": {
|
|
1855
|
+
"title": "Student Status",
|
|
1856
|
+
"description": "Consolidated student distribution"
|
|
1857
|
+
},
|
|
1858
|
+
"pathPerformance": {
|
|
1859
|
+
"title": "Completion by Path",
|
|
1860
|
+
"description": "Quick reading of path performance",
|
|
1861
|
+
"completion": "Completion %"
|
|
1862
|
+
},
|
|
1863
|
+
"performanceEvolution": {
|
|
1864
|
+
"title": "Performance Evolution",
|
|
1865
|
+
"description": "Average score signal trend across the period",
|
|
1866
|
+
"averageScore": "Average Signal"
|
|
1867
|
+
}
|
|
1868
|
+
},
|
|
1869
|
+
"table": {
|
|
1870
|
+
"metric": "Metric",
|
|
1871
|
+
"value": "Value",
|
|
1872
|
+
"course": "Course",
|
|
1873
|
+
"students": "Students",
|
|
1874
|
+
"score": "Signal",
|
|
1875
|
+
"status": "Status"
|
|
1876
|
+
},
|
|
1877
|
+
"footer": {
|
|
1878
|
+
"quickSummary": "Quick summary",
|
|
1879
|
+
"averageScore": "{total} average score signal",
|
|
1880
|
+
"totalActivity": "{total} operational records",
|
|
1881
|
+
"tracks": "{total} tracked paths",
|
|
1882
|
+
"courses": "{total} tracked courses"
|
|
1883
|
+
},
|
|
1884
|
+
"emptyState": {
|
|
1885
|
+
"title": "No data for this period",
|
|
1886
|
+
"description": "Adjust the filters or wait for new records to view the dashboard.",
|
|
1887
|
+
"shortValue": "-"
|
|
1888
|
+
}
|
|
1889
|
+
},
|
|
1890
|
+
"AttemptPage": {
|
|
1891
|
+
"breadcrumbs": {
|
|
1892
|
+
"home": "Home",
|
|
1893
|
+
"exams": "Exams",
|
|
1894
|
+
"attemptExam": "Exam Attempt",
|
|
1895
|
+
"examResult": "Exam Result"
|
|
1896
|
+
},
|
|
1897
|
+
"startScreen": {
|
|
1898
|
+
"questions": "Questions",
|
|
1899
|
+
"minutes": "Minutes",
|
|
1900
|
+
"points": "Points",
|
|
1901
|
+
"minGrade": "Min Grade",
|
|
1902
|
+
"instructions": "Instructions",
|
|
1903
|
+
"instructionsList": {
|
|
1904
|
+
"item1": "Answer all questions within the time limit.",
|
|
1905
|
+
"item2": "You can navigate between questions freely.",
|
|
1906
|
+
"item3": "Use the flag button to mark questions for review.",
|
|
1907
|
+
"item4": "Progress is saved automatically.",
|
|
1908
|
+
"item5": "Upon completion, your answers will be evaluated immediately."
|
|
1909
|
+
},
|
|
1910
|
+
"startButton": "Start Exam"
|
|
1911
|
+
},
|
|
1912
|
+
"resultScreen": {
|
|
1913
|
+
"passed": "Passed!",
|
|
1914
|
+
"failed": "Failed",
|
|
1915
|
+
"pendingReview": "Pending review",
|
|
1916
|
+
"pendingBadge": "Pending",
|
|
1917
|
+
"pendingDescription": "{count} answer(s) are waiting for manual review.",
|
|
1918
|
+
"scoreText": "{total} of {max} points",
|
|
1919
|
+
"answered": "Answered",
|
|
1920
|
+
"blank": "Blank",
|
|
1921
|
+
"timeUsed": "Time Used",
|
|
1922
|
+
"answersSummary": "Answers Summary",
|
|
1923
|
+
"noAnswer": "No answer",
|
|
1924
|
+
"pendingAnswer": "Under review",
|
|
1925
|
+
"backButton": "Back"
|
|
1926
|
+
},
|
|
1927
|
+
"examInProgress": {
|
|
1928
|
+
"saveButton": "Save",
|
|
1929
|
+
"finishButton": "Finish",
|
|
1930
|
+
"question": "Question",
|
|
1931
|
+
"of": "of",
|
|
1932
|
+
"marked": "Marked",
|
|
1933
|
+
"markQuestion": "Mark question",
|
|
1934
|
+
"previousButton": "Previous",
|
|
1935
|
+
"nextButton": "Next",
|
|
1936
|
+
"navigation": "Navigation",
|
|
1937
|
+
"answeredCount": "{count} of {total} answered",
|
|
1938
|
+
"questionLabel": "Question {number}",
|
|
1939
|
+
"questionAnswered": "(answered)",
|
|
1940
|
+
"questionMarked": "(marked)",
|
|
1941
|
+
"current": "Current",
|
|
1942
|
+
"answeredLabel": "Answered",
|
|
1943
|
+
"notAnswered": "Not answered",
|
|
1944
|
+
"markedForReview": "Marked for review",
|
|
1945
|
+
"navigationMobile": "Navigation - {count}/{total} answered",
|
|
1946
|
+
"closeButton": "Close",
|
|
1947
|
+
"progressSaved": "Progress saved!",
|
|
1948
|
+
"essayDescription": "Write your answer below. You can save progress and review it before submitting.",
|
|
1949
|
+
"essayPlaceholder": "Write your answer...",
|
|
1950
|
+
"fillBlankDescription": "Fill in your answer for the blank.",
|
|
1951
|
+
"fillBlankPlaceholder": "Type the expected answer...",
|
|
1952
|
+
"matchingDescription": "Match each item on the left with the correct option on the right.",
|
|
1953
|
+
"matchingSelectPlaceholder": "Select the correct option",
|
|
1954
|
+
"types": {
|
|
1955
|
+
"multiple_choice": "Multiple choice",
|
|
1956
|
+
"true_false": "True or false",
|
|
1957
|
+
"essay": "Essay",
|
|
1958
|
+
"fill_blank": "Fill in the blank",
|
|
1959
|
+
"matching": "Matching"
|
|
1960
|
+
}
|
|
1961
|
+
},
|
|
1962
|
+
"submitDialog": {
|
|
1963
|
+
"title": "Finish Exam",
|
|
1964
|
+
"description": "Do you really want to finish the exam and submit your answers?",
|
|
1965
|
+
"answeredLabel": "Answered",
|
|
1966
|
+
"blankLabel": "Blank",
|
|
1967
|
+
"markedLabel": "Marked",
|
|
1968
|
+
"warning": "Warning: You have {count} unanswered question(s).",
|
|
1969
|
+
"continueButton": "Continue Exam",
|
|
1970
|
+
"submitButton": "Finish and Submit"
|
|
1971
|
+
},
|
|
1972
|
+
"timeUpDialog": {
|
|
1973
|
+
"title": "Time Up",
|
|
1974
|
+
"description": "The exam time is over. Your answers will be submitted automatically.",
|
|
1975
|
+
"viewResultButton": "View Result"
|
|
1976
|
+
}
|
|
1977
|
+
},
|
|
1978
|
+
"IssuedCertificatesPage": {
|
|
1979
|
+
"title": "Issued Certificates",
|
|
1980
|
+
"description": "Review certificates already issued for students, courses, classes, exams, and learning paths.",
|
|
1981
|
+
"breadcrumbs": {
|
|
1982
|
+
"home": "Home",
|
|
1983
|
+
"certificates": "Certificates",
|
|
1984
|
+
"issued": "Issued"
|
|
1985
|
+
},
|
|
1986
|
+
"actions": {
|
|
1987
|
+
"issueCertificate": "Issue Certificate",
|
|
1988
|
+
"newTemplate": "New Template"
|
|
1989
|
+
},
|
|
1990
|
+
"kpis": {
|
|
1991
|
+
"totalIssued": "Total issued",
|
|
1992
|
+
"templatesOnPage": "Templates on page",
|
|
1993
|
+
"studentsOnPage": "Students on page",
|
|
1994
|
+
"pdfOnPage": "With PDF"
|
|
1995
|
+
},
|
|
1996
|
+
"filters": {
|
|
1997
|
+
"searchPlaceholder": "Search by student, course, template, or verification code...",
|
|
1998
|
+
"type": "Type",
|
|
1999
|
+
"allTypes": "All types",
|
|
2000
|
+
"clear": "Clear"
|
|
2001
|
+
},
|
|
2002
|
+
"results": {
|
|
2003
|
+
"single": "issued certificate",
|
|
2004
|
+
"plural": "issued certificates"
|
|
2005
|
+
},
|
|
2006
|
+
"types": {
|
|
2007
|
+
"course": "Course",
|
|
2008
|
+
"exam": "Exam",
|
|
2009
|
+
"courseClassGroup": "Class",
|
|
2010
|
+
"learningPath": "Learning Path"
|
|
2011
|
+
},
|
|
2012
|
+
"empty": {
|
|
2013
|
+
"title": "No issued certificates found",
|
|
2014
|
+
"description": "Adjust the filters or create a new template to issue certificates.",
|
|
2015
|
+
"action": "New Template"
|
|
2016
|
+
},
|
|
2017
|
+
"cards": {
|
|
2018
|
+
"template": "Template",
|
|
2019
|
+
"issuedAt": "Issued at",
|
|
2020
|
+
"workload": "Workload",
|
|
2021
|
+
"finalScore": "Final score",
|
|
2022
|
+
"verificationCode": "Verification code",
|
|
2023
|
+
"actions": {
|
|
2024
|
+
"newTemplate": "New Template",
|
|
2025
|
+
"editTemplate": "Edit Template",
|
|
2026
|
+
"openPdf": "Open PDF",
|
|
2027
|
+
"verify": "Verify"
|
|
2028
|
+
}
|
|
2029
|
+
},
|
|
2030
|
+
"sheet": {
|
|
2031
|
+
"title": "Create certificate template",
|
|
2032
|
+
"description": "Fill the initial template fields. Then you can refine layout in the visual editor.",
|
|
2033
|
+
"fields": {
|
|
2034
|
+
"name": "Name",
|
|
2035
|
+
"slug": "Slug",
|
|
2036
|
+
"description": "Description",
|
|
2037
|
+
"status": "Status"
|
|
2038
|
+
},
|
|
2039
|
+
"placeholders": {
|
|
2040
|
+
"name": "e.g. Corporate Certificate",
|
|
2041
|
+
"slug": "e-g-corporate-certificate",
|
|
2042
|
+
"description": "Short description to identify this template"
|
|
2043
|
+
},
|
|
2044
|
+
"status": {
|
|
2045
|
+
"draft": "Draft",
|
|
2046
|
+
"active": "Active",
|
|
2047
|
+
"inactive": "Inactive"
|
|
2048
|
+
},
|
|
2049
|
+
"validation": {
|
|
2050
|
+
"required": "Name and slug are required"
|
|
2051
|
+
},
|
|
2052
|
+
"cancel": "Cancel",
|
|
2053
|
+
"submit": "Create and open editor",
|
|
2054
|
+
"success": "Template created successfully",
|
|
2055
|
+
"error": "Unable to create template"
|
|
2056
|
+
}
|
|
2057
|
+
},
|
|
2058
|
+
"CertificateTemplatesPage": {
|
|
2059
|
+
"title": "Certificate Templates",
|
|
2060
|
+
"description": "Manage certificate templates and open the visual editor when needed.",
|
|
2061
|
+
"breadcrumbs": {
|
|
2062
|
+
"home": "Home",
|
|
2063
|
+
"certificates": "Certificates",
|
|
2064
|
+
"models": "Templates"
|
|
2065
|
+
},
|
|
2066
|
+
"actions": {
|
|
2067
|
+
"newTemplate": "New Template"
|
|
2068
|
+
},
|
|
2069
|
+
"kpis": {
|
|
2070
|
+
"total": "Total templates",
|
|
2071
|
+
"totalSub": "registered",
|
|
2072
|
+
"active": "Active",
|
|
2073
|
+
"draft": "Draft",
|
|
2074
|
+
"inactive": "Inactive",
|
|
2075
|
+
"onPageSub": "on this page"
|
|
2076
|
+
},
|
|
2077
|
+
"filters": {
|
|
2078
|
+
"searchPlaceholder": "Search by template name or slug...",
|
|
2079
|
+
"status": "Status",
|
|
2080
|
+
"allStatuses": "All statuses",
|
|
2081
|
+
"clear": "Clear"
|
|
2082
|
+
},
|
|
2083
|
+
"results": {
|
|
2084
|
+
"single": "template",
|
|
2085
|
+
"plural": "templates"
|
|
2086
|
+
},
|
|
2087
|
+
"status": {
|
|
2088
|
+
"draft": "Draft",
|
|
2089
|
+
"active": "Active",
|
|
2090
|
+
"inactive": "Inactive"
|
|
2091
|
+
},
|
|
2092
|
+
"empty": {
|
|
2093
|
+
"title": "No templates found",
|
|
2094
|
+
"description": "Adjust filters or create your first certificate template.",
|
|
2095
|
+
"action": "Create template"
|
|
2096
|
+
},
|
|
2097
|
+
"cards": {
|
|
2098
|
+
"status": "Status",
|
|
2099
|
+
"updatedAt": "Updated",
|
|
2100
|
+
"actions": {
|
|
2101
|
+
"menuLabel": "More actions",
|
|
2102
|
+
"editTemplate": "Edit template",
|
|
2103
|
+
"deleteTemplate": "Remove template",
|
|
2104
|
+
"deleteConfirm": "Are you sure you want to remove template \"{name}\"?",
|
|
2105
|
+
"deleteSuccess": "Template removed successfully",
|
|
2106
|
+
"deleteError": "Unable to remove template"
|
|
2107
|
+
}
|
|
2108
|
+
},
|
|
2109
|
+
"sheet": {
|
|
2110
|
+
"title": "Create certificate template",
|
|
2111
|
+
"description": "Fill the initial fields. You can refine layout in the visual editor right after creation.",
|
|
2112
|
+
"fields": {
|
|
2113
|
+
"name": "Name",
|
|
2114
|
+
"description": "Description",
|
|
2115
|
+
"status": "Status"
|
|
2116
|
+
},
|
|
2117
|
+
"placeholders": {
|
|
2118
|
+
"name": "e.g. Corporate Certificate",
|
|
2119
|
+
"description": "Short description to identify this template"
|
|
2120
|
+
},
|
|
2121
|
+
"validation": {
|
|
2122
|
+
"required": "Name is required"
|
|
2123
|
+
},
|
|
2124
|
+
"cancel": "Cancel",
|
|
2125
|
+
"submit": "Create and open editor",
|
|
2126
|
+
"success": "Template created successfully",
|
|
2127
|
+
"error": "Unable to create template"
|
|
2128
|
+
},
|
|
2129
|
+
"editSheet": {
|
|
2130
|
+
"title": "Edit certificate template",
|
|
2131
|
+
"description": "Update the template basic information.",
|
|
2132
|
+
"fields": {
|
|
2133
|
+
"name": "Name",
|
|
2134
|
+
"description": "Description"
|
|
2135
|
+
},
|
|
2136
|
+
"placeholders": {
|
|
2137
|
+
"name": "e.g. Corporate Certificate",
|
|
2138
|
+
"description": "Short description to identify this template"
|
|
2139
|
+
},
|
|
2140
|
+
"validation": {
|
|
2141
|
+
"required": "Name is required"
|
|
2142
|
+
},
|
|
2143
|
+
"submit": "Save changes",
|
|
2144
|
+
"success": "Template updated successfully",
|
|
2145
|
+
"error": "Unable to update template"
|
|
2146
|
+
},
|
|
2147
|
+
"deleteDialog": {
|
|
2148
|
+
"title": "Remove template",
|
|
2149
|
+
"description": "Are you sure you want to remove template",
|
|
2150
|
+
"actions": {
|
|
2151
|
+
"cancel": "Cancel",
|
|
2152
|
+
"delete": "Remove"
|
|
2153
|
+
}
|
|
2154
|
+
}
|
|
2155
|
+
},
|
|
2156
|
+
"ClassesPage": {
|
|
2157
|
+
"title": "Classes",
|
|
2158
|
+
"description": "Manage classes, students, and schedules",
|
|
2159
|
+
"breadcrumbs": {
|
|
2160
|
+
"home": "Home",
|
|
2161
|
+
"classes": "Classes"
|
|
2162
|
+
},
|
|
2163
|
+
"actions": {
|
|
2164
|
+
"createClass": "New Class"
|
|
2165
|
+
},
|
|
2166
|
+
"kpis": {
|
|
2167
|
+
"totalClasses": {
|
|
2168
|
+
"label": "Total Classes",
|
|
2169
|
+
"sub": "registered"
|
|
2170
|
+
},
|
|
2171
|
+
"inProgress": {
|
|
2172
|
+
"label": "In Progress",
|
|
1195
2173
|
"sub": "active classes now"
|
|
1196
2174
|
},
|
|
1197
2175
|
"openVacancies": {
|
|
@@ -1252,6 +2230,10 @@
|
|
|
1252
2230
|
"schedule": "Schedule",
|
|
1253
2231
|
"enrolled": "enrolled"
|
|
1254
2232
|
},
|
|
2233
|
+
"viewMode": {
|
|
2234
|
+
"list": "Show as list",
|
|
2235
|
+
"cards": "Show as cards"
|
|
2236
|
+
},
|
|
1255
2237
|
"pagination": {
|
|
1256
2238
|
"class": "class",
|
|
1257
2239
|
"classes": "classes",
|
|
@@ -1274,12 +2256,21 @@
|
|
|
1274
2256
|
"fields": {
|
|
1275
2257
|
"code": {
|
|
1276
2258
|
"label": "Code",
|
|
1277
|
-
"placeholder": "C-2024-001"
|
|
2259
|
+
"placeholder": "C-2024-001",
|
|
2260
|
+
"description": "Code generated automatically by the system."
|
|
1278
2261
|
},
|
|
1279
2262
|
"course": {
|
|
1280
2263
|
"label": "Course",
|
|
1281
2264
|
"placeholder": "Select course"
|
|
1282
2265
|
},
|
|
2266
|
+
"startTime": {
|
|
2267
|
+
"label": "Class start time",
|
|
2268
|
+
"placeholder": "08:00"
|
|
2269
|
+
},
|
|
2270
|
+
"endTime": {
|
|
2271
|
+
"label": "Class end time",
|
|
2272
|
+
"placeholder": "10:00"
|
|
2273
|
+
},
|
|
1283
2274
|
"type": {
|
|
1284
2275
|
"label": "Type"
|
|
1285
2276
|
},
|
|
@@ -1294,16 +2285,75 @@
|
|
|
1294
2285
|
"label": "Vacancies"
|
|
1295
2286
|
},
|
|
1296
2287
|
"startDate": {
|
|
1297
|
-
"label": "Start Date"
|
|
2288
|
+
"label": "Start Date",
|
|
2289
|
+
"placeholder": "Select a date"
|
|
1298
2290
|
},
|
|
1299
2291
|
"endDate": {
|
|
1300
|
-
"label": "End Date"
|
|
2292
|
+
"label": "End Date",
|
|
2293
|
+
"placeholder": "Select a date"
|
|
2294
|
+
},
|
|
2295
|
+
"sessionTitle": {
|
|
2296
|
+
"label": "Lesson title",
|
|
2297
|
+
"placeholder": "e.g. Live class session"
|
|
1301
2298
|
},
|
|
1302
2299
|
"schedule": {
|
|
1303
2300
|
"label": "Schedule",
|
|
1304
2301
|
"placeholder": "7:00 PM - 10:00 PM"
|
|
1305
2302
|
}
|
|
1306
2303
|
},
|
|
2304
|
+
"recurrence": {
|
|
2305
|
+
"sectionTitle": "Lesson schedule",
|
|
2306
|
+
"sectionDescription": "Define how this class should generate lessons in the calendar.",
|
|
2307
|
+
"label": "Recurrence",
|
|
2308
|
+
"until": "Ends on",
|
|
2309
|
+
"summary": {
|
|
2310
|
+
"none": "A single lesson will be created on the class start date.",
|
|
2311
|
+
"daily": "Lessons every day until {until}.",
|
|
2312
|
+
"weekly": "Weekly lessons until {until}.",
|
|
2313
|
+
"monthly": "Monthly lessons until {until}.",
|
|
2314
|
+
"yearly": "Yearly lessons until {until}.",
|
|
2315
|
+
"weekdays": "Weekday lessons until {until}.",
|
|
2316
|
+
"custom": "Custom recurrence until {until}."
|
|
2317
|
+
},
|
|
2318
|
+
"options": {
|
|
2319
|
+
"none": "Does not repeat",
|
|
2320
|
+
"daily": "Every day",
|
|
2321
|
+
"weekly": "Weekly",
|
|
2322
|
+
"monthly": "Monthly",
|
|
2323
|
+
"yearly": "Yearly",
|
|
2324
|
+
"weekdays": "Weekdays",
|
|
2325
|
+
"custom": "Customize..."
|
|
2326
|
+
},
|
|
2327
|
+
"titleMode": {
|
|
2328
|
+
"label": "Lesson title",
|
|
2329
|
+
"default": "Use class default",
|
|
2330
|
+
"custom": "Custom title"
|
|
2331
|
+
},
|
|
2332
|
+
"customDialog": {
|
|
2333
|
+
"title": "Custom recurrence",
|
|
2334
|
+
"description": "Configure how the lessons in this class should repeat.",
|
|
2335
|
+
"repeatEvery": "Repeat every",
|
|
2336
|
+
"repeatOn": "Repeat on",
|
|
2337
|
+
"endDate": "Ends on",
|
|
2338
|
+
"cancel": "Cancel",
|
|
2339
|
+
"confirm": "Done",
|
|
2340
|
+
"frequency": {
|
|
2341
|
+
"daily": "day",
|
|
2342
|
+
"weekly": "week",
|
|
2343
|
+
"monthly": "month",
|
|
2344
|
+
"yearly": "year"
|
|
2345
|
+
},
|
|
2346
|
+
"days": {
|
|
2347
|
+
"MO": "M",
|
|
2348
|
+
"TU": "T",
|
|
2349
|
+
"WE": "W",
|
|
2350
|
+
"TH": "T",
|
|
2351
|
+
"FR": "F",
|
|
2352
|
+
"SA": "S",
|
|
2353
|
+
"SU": "S"
|
|
2354
|
+
}
|
|
2355
|
+
}
|
|
2356
|
+
},
|
|
1307
2357
|
"validation": {
|
|
1308
2358
|
"codigoMinLength": "Minimum 3 characters",
|
|
1309
2359
|
"cursoRequired": "Select a course",
|
|
@@ -1312,8 +2362,14 @@
|
|
|
1312
2362
|
"vagasMin": "Minimum 1 vacancy",
|
|
1313
2363
|
"dataInicioRequired": "Date required",
|
|
1314
2364
|
"dataFimRequired": "Date required",
|
|
1315
|
-
"
|
|
1316
|
-
"
|
|
2365
|
+
"horarioInicioRequired": "Enter the start time",
|
|
2366
|
+
"horarioFimRequired": "Enter the end time",
|
|
2367
|
+
"horarioFormato": "Enter time in HH:MM format",
|
|
2368
|
+
"statusRequired": "Select a status",
|
|
2369
|
+
"sessionRecurrenceUntilRequired": "Provide the recurrence end date",
|
|
2370
|
+
"sessionRecurrenceUntilAfterStart": "The recurrence must end on or after the class start date",
|
|
2371
|
+
"sessionRecurrenceDaysRequired": "Select at least one weekday",
|
|
2372
|
+
"sessionRecurrenceIntervalMin": "The recurrence interval must be at least 1"
|
|
1317
2373
|
},
|
|
1318
2374
|
"actions": {
|
|
1319
2375
|
"save": "Save",
|
|
@@ -1334,11 +2390,24 @@
|
|
|
1334
2390
|
"turmaCreated": "Class created! Redirecting...",
|
|
1335
2391
|
"turmaRemoved": "Class removed!"
|
|
1336
2392
|
},
|
|
2393
|
+
"table": {
|
|
2394
|
+
"headers": {
|
|
2395
|
+
"course": "Course",
|
|
2396
|
+
"status": "Status",
|
|
2397
|
+
"type": "Type",
|
|
2398
|
+
"period": "Period",
|
|
2399
|
+
"schedule": "Schedule"
|
|
2400
|
+
},
|
|
2401
|
+
"actions": {
|
|
2402
|
+
"label": "Actions"
|
|
2403
|
+
}
|
|
2404
|
+
},
|
|
1337
2405
|
"DetailPage": {
|
|
1338
2406
|
"breadcrumbs": {
|
|
1339
2407
|
"home": "Home",
|
|
1340
2408
|
"classes": "Classes",
|
|
1341
|
-
"management": "Class Management"
|
|
2409
|
+
"management": "Class Management",
|
|
2410
|
+
"managementMobile": "Management"
|
|
1342
2411
|
},
|
|
1343
2412
|
"actions": {
|
|
1344
2413
|
"viewCourse": "View Course",
|
|
@@ -1357,7 +2426,15 @@
|
|
|
1357
2426
|
"event": "Event",
|
|
1358
2427
|
"noEventsInRange": "No lessons in this period",
|
|
1359
2428
|
"showMore": "+{count} more",
|
|
1360
|
-
"
|
|
2429
|
+
"messages": {
|
|
2430
|
+
"previous": "Previous",
|
|
2431
|
+
"next": "Next",
|
|
2432
|
+
"noEventsInRange": "No lessons in this period"
|
|
2433
|
+
},
|
|
2434
|
+
"helper": "Click a lesson to edit it or create new lessons.",
|
|
2435
|
+
"viewSingle": "Month",
|
|
2436
|
+
"viewQuarter": "Quarter",
|
|
2437
|
+
"viewYear": "Year"
|
|
1361
2438
|
},
|
|
1362
2439
|
"info": {
|
|
1363
2440
|
"period": "Period",
|
|
@@ -1397,14 +2474,76 @@
|
|
|
1397
2474
|
},
|
|
1398
2475
|
"attendance": {
|
|
1399
2476
|
"helper": "Select a lesson to record student attendance.",
|
|
2477
|
+
"empty": {
|
|
2478
|
+
"title": "No lessons to record",
|
|
2479
|
+
"description": "Attendance can only be recorded for lessons that have already taken place."
|
|
2480
|
+
},
|
|
1400
2481
|
"register": "Record"
|
|
1401
2482
|
},
|
|
2483
|
+
"sidebar": {
|
|
2484
|
+
"nextSession": "Next Lesson",
|
|
2485
|
+
"openSession": "Open session",
|
|
2486
|
+
"noNextSession": "No upcoming lessons scheduled.",
|
|
2487
|
+
"instructor": "Instructor",
|
|
2488
|
+
"instructorLabel": "Primary instructor",
|
|
2489
|
+
"noInstructor": "Not set",
|
|
2490
|
+
"classInfo": "Class Info",
|
|
2491
|
+
"occupancy": "Occupancy",
|
|
2492
|
+
"seatsAvailable": "seats available",
|
|
2493
|
+
"classFull": "Class is full",
|
|
2494
|
+
"viewStudents": "View students",
|
|
2495
|
+
"linkCopied": "Link copied!"
|
|
2496
|
+
},
|
|
1402
2497
|
"dialogs": {
|
|
1403
2498
|
"addStudents": {
|
|
1404
2499
|
"title": "Add Students",
|
|
1405
2500
|
"description": "Select students to add to the class.",
|
|
2501
|
+
"searchPlaceholder": "Type at least 2 characters to search people...",
|
|
2502
|
+
"notFound": "No students are registered yet.",
|
|
2503
|
+
"createNew": "Register New Student",
|
|
1406
2504
|
"confirm": "Add"
|
|
1407
2505
|
},
|
|
2506
|
+
"createStudent": {
|
|
2507
|
+
"title": "Register New Student",
|
|
2508
|
+
"description": "Create a new student to select in this class.",
|
|
2509
|
+
"fields": {
|
|
2510
|
+
"name": "Name",
|
|
2511
|
+
"namePlaceholder": "Student full name",
|
|
2512
|
+
"email": "Email",
|
|
2513
|
+
"emailPlaceholder": "name@example.com",
|
|
2514
|
+
"phone": "Phone",
|
|
2515
|
+
"phonePlaceholder": "+1 (555) 000-0000"
|
|
2516
|
+
},
|
|
2517
|
+
"confirm": "Register"
|
|
2518
|
+
},
|
|
2519
|
+
"studentProfile": {
|
|
2520
|
+
"title": "Student Profile",
|
|
2521
|
+
"description": "Registration details for the selected student.",
|
|
2522
|
+
"fields": {
|
|
2523
|
+
"name": "Name",
|
|
2524
|
+
"email": "Email",
|
|
2525
|
+
"phone": "Phone",
|
|
2526
|
+
"progress": "Progress",
|
|
2527
|
+
"enrolledAt": "Enrollment"
|
|
2528
|
+
}
|
|
2529
|
+
},
|
|
2530
|
+
"editStudent": {
|
|
2531
|
+
"title": "Edit Student",
|
|
2532
|
+
"description": "Update the student details.",
|
|
2533
|
+
"fields": {
|
|
2534
|
+
"name": "Name",
|
|
2535
|
+
"namePlaceholder": "Student full name",
|
|
2536
|
+
"email": "Email",
|
|
2537
|
+
"emailPlaceholder": "name@example.com",
|
|
2538
|
+
"phone": "Phone",
|
|
2539
|
+
"phonePlaceholder": "+1 (555) 000-0000"
|
|
2540
|
+
}
|
|
2541
|
+
},
|
|
2542
|
+
"studentValidation": {
|
|
2543
|
+
"nameMin": "Name must have at least 3 characters",
|
|
2544
|
+
"emailInvalid": "Invalid email",
|
|
2545
|
+
"phoneInvalid": "Invalid phone"
|
|
2546
|
+
},
|
|
1408
2547
|
"removeStudent": {
|
|
1409
2548
|
"title": "Remove Student",
|
|
1410
2549
|
"descriptionPrefix": "Are you sure you want to remove",
|
|
@@ -1413,14 +2552,25 @@
|
|
|
1413
2552
|
},
|
|
1414
2553
|
"common": {
|
|
1415
2554
|
"cancel": "Cancel",
|
|
1416
|
-
"remove": "Remove"
|
|
2555
|
+
"remove": "Remove",
|
|
2556
|
+
"edit": "Edit",
|
|
2557
|
+
"save": "Save"
|
|
1417
2558
|
},
|
|
1418
2559
|
"sheet": {
|
|
2560
|
+
"tabs": {
|
|
2561
|
+
"lessons": "Lessons",
|
|
2562
|
+
"attendance": "Attendance"
|
|
2563
|
+
},
|
|
1419
2564
|
"lessonForm": {
|
|
1420
2565
|
"titleCreate": "New Lesson",
|
|
1421
2566
|
"titleEdit": "Edit Lesson",
|
|
1422
2567
|
"descriptionCreate": "Fill in the data to create a new lesson.",
|
|
1423
2568
|
"descriptionEdit": "Update the lesson data.",
|
|
2569
|
+
"createInstructorTitle": "Register Professor",
|
|
2570
|
+
"createInstructorDescription": "Create a new professor to select for this lesson.",
|
|
2571
|
+
"createInstructorSubmit": "Register",
|
|
2572
|
+
"createInstructorSuccess": "Professor registered successfully.",
|
|
2573
|
+
"createInstructorError": "Could not register the professor.",
|
|
1424
2574
|
"fields": {
|
|
1425
2575
|
"title": "Title",
|
|
1426
2576
|
"titlePlaceholder": "E.g.: Introduction to Hooks",
|
|
@@ -1429,8 +2579,40 @@
|
|
|
1429
2579
|
"select": "Select",
|
|
1430
2580
|
"startTime": "Start Time",
|
|
1431
2581
|
"endTime": "End Time",
|
|
2582
|
+
"instructor": "Professor",
|
|
2583
|
+
"instructorPlaceholder": "Select the professor",
|
|
2584
|
+
"instructorNotFound": "No professor found.",
|
|
2585
|
+
"createInstructor": "Register professor",
|
|
1432
2586
|
"location": "Location / Link",
|
|
1433
|
-
"locationPlaceholder": "Room 201 or https://meet.google.com/..."
|
|
2587
|
+
"locationPlaceholder": "Room 201 or https://meet.google.com/...",
|
|
2588
|
+
"color": "Color",
|
|
2589
|
+
"colorHint": "Choose a color to identify this lesson in the calendar."
|
|
2590
|
+
},
|
|
2591
|
+
"recurrence": {
|
|
2592
|
+
"label": "Repeat",
|
|
2593
|
+
"until": "Until",
|
|
2594
|
+
"daysLabel": "Repeat on",
|
|
2595
|
+
"weeklyHint": "If you do not pick any day, we will use the selected lesson date weekday.",
|
|
2596
|
+
"applyScope": "Apply changes to",
|
|
2597
|
+
"applyScopeSingle": "Only this lesson",
|
|
2598
|
+
"applyScopeSeries": "Entire series",
|
|
2599
|
+
"applyScopeHint": "Use entire series to update all already generated occurrences.",
|
|
2600
|
+
"options": {
|
|
2601
|
+
"none": "Does not repeat",
|
|
2602
|
+
"daily": "Daily",
|
|
2603
|
+
"weekly": "Weekly",
|
|
2604
|
+
"monthly": "Monthly",
|
|
2605
|
+
"yearly": "Yearly"
|
|
2606
|
+
},
|
|
2607
|
+
"days": {
|
|
2608
|
+
"monday": "Mon",
|
|
2609
|
+
"tuesday": "Tue",
|
|
2610
|
+
"wednesday": "Wed",
|
|
2611
|
+
"thursday": "Thu",
|
|
2612
|
+
"friday": "Fri",
|
|
2613
|
+
"saturday": "Sat",
|
|
2614
|
+
"sunday": "Sun"
|
|
2615
|
+
}
|
|
1434
2616
|
},
|
|
1435
2617
|
"actions": {
|
|
1436
2618
|
"save": "Save",
|
|
@@ -1442,7 +2624,10 @@
|
|
|
1442
2624
|
"startTimeRequired": "Time required",
|
|
1443
2625
|
"endTimeRequired": "Time required",
|
|
1444
2626
|
"locationRequired": "Location required",
|
|
1445
|
-
"typeRequired": "Select a type"
|
|
2627
|
+
"typeRequired": "Select a type",
|
|
2628
|
+
"colorInvalid": "Invalid color",
|
|
2629
|
+
"recurrenceUntilRequired": "Provide the repeat end date",
|
|
2630
|
+
"recurrenceUntilAfterStart": "The repeat end date must be on or after the lesson date"
|
|
1446
2631
|
}
|
|
1447
2632
|
},
|
|
1448
2633
|
"attendance": {
|
|
@@ -1452,6 +2637,8 @@
|
|
|
1452
2637
|
"allAbsent": "All absent",
|
|
1453
2638
|
"present": "Present",
|
|
1454
2639
|
"absent": "Absent",
|
|
2640
|
+
"notParticipant": "Not participating",
|
|
2641
|
+
"participantLabel": "Participates in this lesson",
|
|
1455
2642
|
"save": "Save Attendance"
|
|
1456
2643
|
}
|
|
1457
2644
|
},
|
|
@@ -1474,14 +2661,322 @@
|
|
|
1474
2661
|
"sub": "of {total} total"
|
|
1475
2662
|
}
|
|
1476
2663
|
},
|
|
2664
|
+
"quickCreate": {
|
|
2665
|
+
"title": "New Lesson",
|
|
2666
|
+
"titlePlaceholder": "Lesson title",
|
|
2667
|
+
"datePlaceholder": "Select a date",
|
|
2668
|
+
"searchPlaceholder": "Search student...",
|
|
2669
|
+
"tabs": {
|
|
2670
|
+
"lessons": "Lessons",
|
|
2671
|
+
"attendance": "Attendance"
|
|
2672
|
+
},
|
|
2673
|
+
"noStudents": "There are no enrolled students to mark attendance.",
|
|
2674
|
+
"noStudentsFound": "No students found.",
|
|
2675
|
+
"attendanceSummary": "{present} present out of {total}",
|
|
2676
|
+
"allPresent": "All present",
|
|
2677
|
+
"allAbsent": "All absent",
|
|
2678
|
+
"present": "Present",
|
|
2679
|
+
"absent": "Absent",
|
|
2680
|
+
"notParticipant": "Not participating",
|
|
2681
|
+
"participantLabel": "Participates in this lesson",
|
|
2682
|
+
"attendancePartialError": "The lesson was created, but attendance could not be saved.",
|
|
2683
|
+
"color": {
|
|
2684
|
+
"label": "Color",
|
|
2685
|
+
"hint": "Pick the lesson color in the calendar."
|
|
2686
|
+
},
|
|
2687
|
+
"recurrence": {
|
|
2688
|
+
"label": "Repeat",
|
|
2689
|
+
"until": "Until",
|
|
2690
|
+
"daysLabel": "Weekdays",
|
|
2691
|
+
"weeklyHint": "If you do not pick any day, we will use the selected lesson date weekday.",
|
|
2692
|
+
"options": {
|
|
2693
|
+
"none": "Does not repeat",
|
|
2694
|
+
"daily": "Daily",
|
|
2695
|
+
"weekly": "Weekly",
|
|
2696
|
+
"monthly": "Monthly",
|
|
2697
|
+
"yearly": "Yearly"
|
|
2698
|
+
},
|
|
2699
|
+
"days": {
|
|
2700
|
+
"monday": "Mon",
|
|
2701
|
+
"tuesday": "Tue",
|
|
2702
|
+
"wednesday": "Wed",
|
|
2703
|
+
"thursday": "Thu",
|
|
2704
|
+
"friday": "Fri",
|
|
2705
|
+
"saturday": "Sat",
|
|
2706
|
+
"sunday": "Sun"
|
|
2707
|
+
}
|
|
2708
|
+
},
|
|
2709
|
+
"moreOptions": "More options",
|
|
2710
|
+
"save": "Save"
|
|
2711
|
+
},
|
|
2712
|
+
"eventSummary": {
|
|
2713
|
+
"actions": {
|
|
2714
|
+
"close": "Close",
|
|
2715
|
+
"editAndMore": "Edit and more options",
|
|
2716
|
+
"recordAttendance": "Record attendance"
|
|
2717
|
+
},
|
|
2718
|
+
"attendance": {
|
|
2719
|
+
"loading": "Loading attendance...",
|
|
2720
|
+
"summary": "{present} present out of {total} participants.",
|
|
2721
|
+
"missing": "This lesson does not have attendance recorded yet."
|
|
2722
|
+
}
|
|
2723
|
+
},
|
|
1477
2724
|
"toasts": {
|
|
1478
2725
|
"studentsAdded": "{count} student(s) added successfully!",
|
|
1479
2726
|
"studentRemoved": "Student removed from class.",
|
|
1480
2727
|
"studentsRemoved": "{count} student(s) removed from class.",
|
|
2728
|
+
"studentCreated": "Student registered successfully!",
|
|
2729
|
+
"studentUpdated": "Student updated successfully!",
|
|
1481
2730
|
"lessonUpdated": "Lesson updated successfully!",
|
|
1482
2731
|
"lessonCreated": "Lesson created successfully!",
|
|
1483
|
-
"attendanceSaved": "Attendance saved successfully!"
|
|
2732
|
+
"attendanceSaved": "Attendance saved successfully!",
|
|
2733
|
+
"error": "An error occurred. Please try again."
|
|
2734
|
+
}
|
|
2735
|
+
}
|
|
2736
|
+
},
|
|
2737
|
+
"EvaluationsPage": {
|
|
2738
|
+
"title": "Evaluations",
|
|
2739
|
+
"description": "Browse and filter all evaluation ratings submitted by students.",
|
|
2740
|
+
"breadcrumbs": {
|
|
2741
|
+
"home": "Home",
|
|
2742
|
+
"lms": "LMS",
|
|
2743
|
+
"evaluations": "Evaluations"
|
|
2744
|
+
},
|
|
2745
|
+
"filters": {
|
|
2746
|
+
"searchPlaceholder": "Search by topic, target or comment…",
|
|
2747
|
+
"allCourses": "All Courses",
|
|
2748
|
+
"allClasses": "All Classes",
|
|
2749
|
+
"allInstructors": "All Instructors",
|
|
2750
|
+
"allStudents": "All Students",
|
|
2751
|
+
"dateRange": "Pick a date range",
|
|
2752
|
+
"apply": "Apply",
|
|
2753
|
+
"clear": "Clear filters"
|
|
2754
|
+
},
|
|
2755
|
+
"columns": {
|
|
2756
|
+
"topic": "Topic",
|
|
2757
|
+
"target": "Target",
|
|
2758
|
+
"score": "Score",
|
|
2759
|
+
"course": "Course",
|
|
2760
|
+
"class": "Class",
|
|
2761
|
+
"student": "Student",
|
|
2762
|
+
"instructor": "Instructor",
|
|
2763
|
+
"date": "Date"
|
|
2764
|
+
},
|
|
2765
|
+
"sheet": {
|
|
2766
|
+
"scoreLabel": "Rating",
|
|
2767
|
+
"comparison": "vs. Target Average",
|
|
2768
|
+
"thisEvaluation": "This evaluation",
|
|
2769
|
+
"targetAverage": "Target average",
|
|
2770
|
+
"ratings": "ratings",
|
|
2771
|
+
"targetLabel": "Evaluated Target",
|
|
2772
|
+
"noComment": "No comment provided.",
|
|
2773
|
+
"courseLabel": "Course",
|
|
2774
|
+
"classLabel": "Class",
|
|
2775
|
+
"instructorLabel": "Instructor",
|
|
2776
|
+
"evaluatorLabel": "Student",
|
|
2777
|
+
"dateLabel": "Submitted on",
|
|
2778
|
+
"people": "People"
|
|
2779
|
+
},
|
|
2780
|
+
"kpi": {
|
|
2781
|
+
"totalEvaluations": "Total Evaluations",
|
|
2782
|
+
"totalEvaluationsDesc": "All submitted ratings",
|
|
2783
|
+
"averageScore": "Average Score",
|
|
2784
|
+
"averageScoreDesc": "Overall mean rating",
|
|
2785
|
+
"topicsEvaluated": "Topics Evaluated",
|
|
2786
|
+
"topicsEvaluatedDesc": "Unique evaluation topics",
|
|
2787
|
+
"totalEvaluators": "Total Evaluators",
|
|
2788
|
+
"totalEvaluatorsDesc": "Unique students who rated"
|
|
2789
|
+
},
|
|
2790
|
+
"targetType": {
|
|
2791
|
+
"course": "Course",
|
|
2792
|
+
"course_lesson": "Lesson",
|
|
2793
|
+
"course_class_session": "Session",
|
|
2794
|
+
"question": "Question",
|
|
2795
|
+
"exam": "Exam"
|
|
2796
|
+
},
|
|
2797
|
+
"empty": {
|
|
2798
|
+
"title": "No evaluations found",
|
|
2799
|
+
"description": "Try adjusting your filters or search terms."
|
|
2800
|
+
},
|
|
2801
|
+
"pagination": {
|
|
2802
|
+
"items": "evaluation",
|
|
2803
|
+
"itemsPlural": "evaluations"
|
|
2804
|
+
},
|
|
2805
|
+
"viewMode": {
|
|
2806
|
+
"list": "List",
|
|
2807
|
+
"cards": "Cards"
|
|
2808
|
+
},
|
|
2809
|
+
"dropdown": {
|
|
2810
|
+
"viewCourse": "View Course",
|
|
2811
|
+
"viewClass": "View Class",
|
|
2812
|
+
"viewStudent": "View Student",
|
|
2813
|
+
"viewDetails": "View Details"
|
|
2814
|
+
}
|
|
2815
|
+
},
|
|
2816
|
+
"EnterprisePage": {
|
|
2817
|
+
"title": "Enterprise",
|
|
2818
|
+
"description": "Manage B2B corporate accounts, licenses, and enrollments.",
|
|
2819
|
+
"breadcrumbs": {
|
|
2820
|
+
"home": "Home",
|
|
2821
|
+
"lms": "LMS",
|
|
2822
|
+
"enterprise": "Enterprise"
|
|
2823
|
+
},
|
|
2824
|
+
"kpis": {
|
|
2825
|
+
"total": {
|
|
2826
|
+
"label": "Total Accounts",
|
|
2827
|
+
"description": "enterprise accounts"
|
|
2828
|
+
},
|
|
2829
|
+
"active": {
|
|
2830
|
+
"label": "Active",
|
|
2831
|
+
"description": "currently active accounts"
|
|
2832
|
+
},
|
|
2833
|
+
"withClasses": {
|
|
2834
|
+
"label": "With Active Classes",
|
|
2835
|
+
"description": "accounts running classes"
|
|
2836
|
+
},
|
|
2837
|
+
"expiringSoon": {
|
|
2838
|
+
"label": "Expiring Soon",
|
|
2839
|
+
"description": "contracts ending in 30 days"
|
|
2840
|
+
}
|
|
2841
|
+
},
|
|
2842
|
+
"table": {
|
|
2843
|
+
"name": "Account",
|
|
2844
|
+
"industry": "Industry",
|
|
2845
|
+
"contractType": "Contract",
|
|
2846
|
+
"licenses": "Licenses",
|
|
2847
|
+
"activeCourses": "Courses",
|
|
2848
|
+
"status": "Status"
|
|
2849
|
+
},
|
|
2850
|
+
"status": {
|
|
2851
|
+
"active": "Active",
|
|
2852
|
+
"inactive": "Inactive"
|
|
2853
|
+
},
|
|
2854
|
+
"contractType": {
|
|
2855
|
+
"monthly": "Monthly",
|
|
2856
|
+
"annual": "Annual",
|
|
2857
|
+
"custom": "Custom"
|
|
2858
|
+
},
|
|
2859
|
+
"actions": {
|
|
2860
|
+
"new": "New Account",
|
|
2861
|
+
"edit": "Edit",
|
|
2862
|
+
"delete": "Delete",
|
|
2863
|
+
"view": "View Details"
|
|
2864
|
+
},
|
|
2865
|
+
"filters": {
|
|
2866
|
+
"searchPlaceholder": "Search enterprise accounts...",
|
|
2867
|
+
"status": "Status",
|
|
2868
|
+
"allStatuses": "All statuses"
|
|
2869
|
+
},
|
|
2870
|
+
"empty": {
|
|
2871
|
+
"title": "No enterprise accounts yet",
|
|
2872
|
+
"description": "Create the first B2B corporate account to get started."
|
|
2873
|
+
},
|
|
2874
|
+
"delete": {
|
|
2875
|
+
"title": "Delete enterprise account?",
|
|
2876
|
+
"description": "This will permanently delete \"{name}\" and all associated data. This action cannot be undone.",
|
|
2877
|
+
"confirm": "Delete",
|
|
2878
|
+
"cancel": "Cancel"
|
|
2879
|
+
}
|
|
2880
|
+
},
|
|
2881
|
+
"EnterpriseDetailPage": {
|
|
2882
|
+
"breadcrumbs": {
|
|
2883
|
+
"home": "Home",
|
|
2884
|
+
"lms": "LMS",
|
|
2885
|
+
"enterprise": "Enterprise"
|
|
2886
|
+
},
|
|
2887
|
+
"kpis": {
|
|
2888
|
+
"enrolledUsers": {
|
|
2889
|
+
"label": "Enrolled Users",
|
|
2890
|
+
"description": "active in this account"
|
|
2891
|
+
},
|
|
2892
|
+
"activeCourses": {
|
|
2893
|
+
"label": "Active Courses",
|
|
2894
|
+
"description": "contracted courses"
|
|
2895
|
+
},
|
|
2896
|
+
"classes": {
|
|
2897
|
+
"label": "Active Classes",
|
|
2898
|
+
"description": "currently running"
|
|
2899
|
+
},
|
|
2900
|
+
"licensesUsed": {
|
|
2901
|
+
"label": "Licenses Used",
|
|
2902
|
+
"description": "of total contracted"
|
|
2903
|
+
},
|
|
2904
|
+
"students": {
|
|
2905
|
+
"label": "Students",
|
|
2906
|
+
"description": "Active learners"
|
|
2907
|
+
},
|
|
2908
|
+
"courses": {
|
|
2909
|
+
"label": "Courses",
|
|
2910
|
+
"description": "Available courses"
|
|
2911
|
+
},
|
|
2912
|
+
"contractedClasses": {
|
|
2913
|
+
"label": "Classes",
|
|
2914
|
+
"description": "Contracted classes"
|
|
1484
2915
|
}
|
|
2916
|
+
},
|
|
2917
|
+
"tabs": {
|
|
2918
|
+
"overview": "Overview",
|
|
2919
|
+
"users": "Users",
|
|
2920
|
+
"courses": "Courses",
|
|
2921
|
+
"classes": "Classes",
|
|
2922
|
+
"billing": "Billing",
|
|
2923
|
+
"students": "Students",
|
|
2924
|
+
"administrators": "Administrators",
|
|
2925
|
+
"empresa": "Company"
|
|
2926
|
+
},
|
|
2927
|
+
"overview": {
|
|
2928
|
+
"accountInfo": "Account Information",
|
|
2929
|
+
"contactDetails": "Contact Details",
|
|
2930
|
+
"crmAccount": "CRM Account"
|
|
2931
|
+
},
|
|
2932
|
+
"users": {
|
|
2933
|
+
"title": "Enrolled Users",
|
|
2934
|
+
"empty": "No users enrolled yet"
|
|
2935
|
+
},
|
|
2936
|
+
"courses": {
|
|
2937
|
+
"title": "Contracted Courses",
|
|
2938
|
+
"empty": "No courses contracted yet"
|
|
2939
|
+
},
|
|
2940
|
+
"classes": {
|
|
2941
|
+
"title": "Enrolled Classes",
|
|
2942
|
+
"empty": "No classes enrolled yet"
|
|
2943
|
+
},
|
|
2944
|
+
"billing": {
|
|
2945
|
+
"title": "Billing & Contract",
|
|
2946
|
+
"contractDetails": "Contract Details",
|
|
2947
|
+
"licenseUsage": "License Usage"
|
|
2948
|
+
},
|
|
2949
|
+
"actions": {
|
|
2950
|
+
"edit": "Edit",
|
|
2951
|
+
"delete": "Delete",
|
|
2952
|
+
"cancel": "Cancel",
|
|
2953
|
+
"save": "Save",
|
|
2954
|
+
"saving": "Saving..."
|
|
2955
|
+
},
|
|
2956
|
+
"empresa": {
|
|
2957
|
+
"openRecord": "Open record",
|
|
2958
|
+
"industry": "Industry",
|
|
2959
|
+
"website": "Website",
|
|
2960
|
+
"recordId": "Record ID",
|
|
2961
|
+
"changeCompany": "Change company",
|
|
2962
|
+
"emptyTitle": "No company linked",
|
|
2963
|
+
"emptyDescription": "Link a company record to keep commercial data in sync.",
|
|
2964
|
+
"linkCompany": "Link company",
|
|
2965
|
+
"replaceCompany": "Replace linked company",
|
|
2966
|
+
"selectCompany": "Select company",
|
|
2967
|
+
"pickerPlaceholder": "Search company...",
|
|
2968
|
+
"pickerSearchPlaceholder": "Search by name...",
|
|
2969
|
+
"pickerEmptyLabel": "No company found",
|
|
2970
|
+
"pickerEntityLabel": "company",
|
|
2971
|
+
"createFieldLabel": "Company name",
|
|
2972
|
+
"createFieldPlaceholder": "E.g.: Techcorp Ltd"
|
|
2973
|
+
},
|
|
2974
|
+
"identityCard": {
|
|
2975
|
+
"editTooltip": "Click to edit",
|
|
2976
|
+
"empresaLabel": "Company",
|
|
2977
|
+
"createdLabel": "Created",
|
|
2978
|
+
"updatedLabel": "Updated",
|
|
2979
|
+
"editHint": "Edit"
|
|
1485
2980
|
}
|
|
1486
2981
|
}
|
|
1487
2982
|
}
|