Implement vocab course and grammar exercise features in backend and frontend

- Added new course management functionalities in VocabController, including creating, updating, and deleting courses and lessons.
- Implemented enrollment and progress tracking for courses, along with grammar exercise creation and management.
- Updated database schema to include tables for courses, lessons, enrollments, and grammar exercises.
- Enhanced frontend with new routes and views for course listing and details, including internationalization support for course-related texts.
- Improved user experience by adding navigation to courses from the main vocab trainer view.
This commit is contained in:
Torsten Schulz (local)
2026-01-19 10:58:53 +01:00
parent 9553cc811a
commit b6a4607e60
28 changed files with 3629 additions and 0 deletions

View File

@@ -319,6 +319,35 @@
"search": "Suchen",
"noResults": "Keine Treffer.",
"error": "Suche fehlgeschlagen."
},
"courses": {
"title": "Sprachlernkurse",
"create": "Kurs erstellen",
"myCourses": "Meine Kurse",
"allCourses": "Alle Kurse",
"none": "Keine Kurse gefunden.",
"owner": "Besitzer",
"enrolled": "Eingeschrieben",
"public": "Öffentlich",
"difficulty": "Schwierigkeit",
"lessons": "Lektionen",
"enroll": "Einschreiben",
"continue": "Fortsetzen",
"edit": "Bearbeiten",
"addLesson": "Lektion hinzufügen",
"completed": "Abgeschlossen",
"score": "Punktzahl",
"review": "Wiederholen",
"start": "Starten",
"noLessons": "Dieser Kurs hat noch keine Lektionen.",
"lessonNumber": "Lektionsnummer",
"chapter": "Kapitel",
"selectChapter": "Kapitel auswählen",
"selectLanguage": "Sprache auswählen",
"confirmDelete": "Lektion wirklich löschen?",
"titleLabel": "Titel",
"descriptionLabel": "Beschreibung",
"languageLabel": "Sprache"
}
}
}

View File

@@ -319,6 +319,35 @@
"search": "Search",
"noResults": "No results.",
"error": "Search failed."
},
"courses": {
"title": "Language Learning Courses",
"create": "Create Course",
"myCourses": "My Courses",
"allCourses": "All Courses",
"none": "No courses found.",
"owner": "Owner",
"enrolled": "Enrolled",
"public": "Public",
"difficulty": "Difficulty",
"lessons": "Lessons",
"enroll": "Enroll",
"continue": "Continue",
"edit": "Edit",
"addLesson": "Add Lesson",
"completed": "Completed",
"score": "Score",
"review": "Review",
"start": "Start",
"noLessons": "This course has no lessons yet.",
"lessonNumber": "Lesson Number",
"chapter": "Chapter",
"selectChapter": "Select Chapter",
"selectLanguage": "Select Language",
"confirmDelete": "Really delete lesson?",
"titleLabel": "Title",
"descriptionLabel": "Description",
"languageLabel": "Language"
}
}
}