feat(vocab): add dashboard learning summary and related endpoints
All checks were successful
Deploy to production / deploy (push) Successful in 2m52s

- Introduced `getDashboardLearningSummary` method in `VocabService` to provide a compact overview of enrolled courses and current lessons for users.
- Updated `vocabController` to include a new route for the dashboard widget, allowing users to access their learning summary.
- Enhanced `vocabRouter` to route requests for the new dashboard widget endpoint.
- Added localization support for the new dashboard features across multiple languages, improving user engagement and accessibility.
- Updated UI components to integrate the new dashboard widget, ensuring a seamless user experience.
This commit is contained in:
Torsten Schulz (local)
2026-04-02 15:06:50 +02:00
parent 77e6f8d3e8
commit 5fcd55be43
28 changed files with 1095 additions and 39 deletions

View File

@@ -1261,6 +1261,20 @@
"upcoming": "Cargos pendientes de (re)elección",
"elections": "Elecciones"
},
"benefits": {
"daily_salary": "Estipendio diario (una vez al día): unos {amount}",
"tax_exemption": "Exención fiscal: {regions}",
"tax_exemption_all": "Exención fiscal: todos los niveles regionales",
"generic": "Ventaja ({code})"
},
"regionLevels": {
"city": "Ciudad",
"county": "Condado",
"shire": "Condado (shire)",
"markgrave": "Margraviato",
"duchy": "Ducado",
"country": "País"
},
"current": {
"office": "Cargo",
"region": "Región",

View File

@@ -92,6 +92,16 @@
},
"falukant": {
"emptyValue": "—"
},
"vocabCourses": {
"empty": "Aún no estás inscrito en ningún curso de vocabulario.",
"browseCourses": "Ver cursos",
"unnamedCourse": "Curso sin título",
"lessonLine": "Lección n.º {number}: {title}",
"noLessons": "Este curso aún no tiene lecciones.",
"allDone": "Todas las lecciones completadas",
"openLesson": "Ir a la lección",
"openCourse": "Abrir curso"
}
},
"gender": {

View File

@@ -23,7 +23,8 @@
"news": "Noticias",
"birthdays": "Cumpleaños",
"upcoming": "Próximas citas",
"calendar": "Calendario"
"calendar": "Calendario",
"vocabCourses": "Cursos de idiomas"
},
"overview": {
"activeWidgetsLabel": "Widgets activos",