From b8e3732ef84a5a5e71482314736d328e94971846 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 1 Apr 2026 10:21:13 +0200 Subject: [PATCH] feat(i18n, vocab): enhance localization and vocabulary preparation in VocabLessonView - Added new localization keys in German, English, and Spanish for exercise flow, progress, and learning path instructions, improving user guidance across languages. - Updated VocabLessonView to incorporate these new keys, enhancing the clarity of vocabulary preparation steps and overall user experience during lessons. - Refactored the layout to better present the learning path and vocabulary preparation stages, ensuring a more cohesive and informative interface. --- .../src/i18n/locales/de/socialnetwork.json | 16 + .../src/i18n/locales/en/socialnetwork.json | 16 + .../src/i18n/locales/es/socialnetwork.json | 16 + frontend/src/views/social/VocabLessonView.vue | 745 +++++++++++++----- 4 files changed, 614 insertions(+), 179 deletions(-) diff --git a/frontend/src/i18n/locales/de/socialnetwork.json b/frontend/src/i18n/locales/de/socialnetwork.json index 1bc75d5..7650c9a 100644 --- a/frontend/src/i18n/locales/de/socialnetwork.json +++ b/frontend/src/i18n/locales/de/socialnetwork.json @@ -431,6 +431,19 @@ "invalidCode": "Ungültiger Code", "courseNotFound": "Kurs nicht gefunden", "grammarExercises": "Grammatik-Prüfung", + "exerciseFlowIntro": "Arbeite die Aufgaben der Reihe nach durch. Jede korrekt gelöste Aufgabe bringt dich direkt näher zum Abschluss der Lektion.", + "exerciseProgressLabel": "Fortschritt", + "exerciseTargetLabel": "Benötigt", + "exerciseCardLabel": "Aufgabe {number}", + "exerciseStatusOpen": "Offen", + "exerciseStatusCorrect": "Erledigt", + "exerciseStatusRetry": "Nochmal prüfen", + "exerciseAnswerAllHint": "Beantworte zuerst alle {total} Aufgaben. Aktuell bearbeitet: {answered}. Zum Bestehen brauchst du mindestens {target}%.", + "exerciseNeedMoreCorrectHint": "Du hast aktuell {score}%. Für den Abschluss dieser Lektion brauchst du mindestens {target}%.", + "exercisePassedHint": "Ziel erreicht: {score}% von benötigten {target}%. Sobald alle Aufgaben bearbeitet sind, gilt die Prüfung als bestanden.", + "exerciseReinforcementHint": "Nach einem Fehler geht es kurz zurück in den Lernmodus. Übe noch {count} Trainerfragen, dann wird die Kapitel-Prüfung wieder freigeschaltet.", + "exercisePrepReinforcementHint": "Nach einem Fehler gehst du noch einmal durch die vorbereiteten Begriffe. Danach wird die Kapitel-Prüfung wieder freigeschaltet.", + "exerciseGrammarLead": "Wichtige Grammatik für diese Prüfung", "noExercises": "Keine Prüfung verfügbar", "enterAnswer": "Antwort eingeben", "checkAnswer": "Antwort prüfen", @@ -456,6 +469,9 @@ "vocabPrepStep2": "Gehe die gleichen Begriffe noch einmal durch (aktive Wiederholung, ohne zu üben).", "vocabPrepConfirm2": "Zweite Durchsicht erledigt", "vocabPrepReady": "Du kannst jetzt mit dem Vokabeltrainer starten.", + "learningPathLabel": "Hauptpfad", + "learningPathTitle": "Dein Lernweg für diese Lektion", + "learningPathIntro": "Arbeite diese Schritte nacheinander durch: vorbereiten, kurz überblicken, trainieren und dann zur Kapitel-Prüfung wechseln.", "lessonDetailsToggle": "Mehr Lektionsdetails anzeigen", "deepenSectionTitle": "Vertiefen und nachlesen", "assistantSectionTitle": "Mit Sprachassistent vertiefen", diff --git a/frontend/src/i18n/locales/en/socialnetwork.json b/frontend/src/i18n/locales/en/socialnetwork.json index cc17513..0889701 100644 --- a/frontend/src/i18n/locales/en/socialnetwork.json +++ b/frontend/src/i18n/locales/en/socialnetwork.json @@ -431,6 +431,19 @@ "invalidCode": "Invalid code", "courseNotFound": "Course not found", "grammarExercises": "Chapter Test", + "exerciseFlowIntro": "Work through the tasks in order. Every correct answer moves you closer to completing the lesson.", + "exerciseProgressLabel": "Progress", + "exerciseTargetLabel": "Required", + "exerciseCardLabel": "Task {number}", + "exerciseStatusOpen": "Open", + "exerciseStatusCorrect": "Done", + "exerciseStatusRetry": "Try again", + "exerciseAnswerAllHint": "Answer all {total} tasks first. Completed so far: {answered}. You need at least {target}% to pass.", + "exerciseNeedMoreCorrectHint": "You currently have {score}%. You need at least {target}% to complete this lesson.", + "exercisePassedHint": "Target reached: {score}% out of the required {target}%. Once all tasks have been answered, the chapter test is passed.", + "exerciseReinforcementHint": "After a mistake, the flow returns briefly to learning mode. Practice {count} more trainer questions and the chapter test will unlock again.", + "exercisePrepReinforcementHint": "After a mistake, go through the prepared terms once more. Then the chapter test will unlock again.", + "exerciseGrammarLead": "Key grammar for this test", "noExercises": "No test available", "enterAnswer": "Enter answer", "checkAnswer": "Check Answer", @@ -456,6 +469,9 @@ "vocabPrepStep2": "Go through the same items again (active review, not testing yet).", "vocabPrepConfirm2": "Second pass done", "vocabPrepReady": "You can start the vocabulary trainer now.", + "learningPathLabel": "Main path", + "learningPathTitle": "Your learning flow for this lesson", + "learningPathIntro": "Work through these steps in order: prepare, review briefly, train, then move to the chapter test.", "lessonDetailsToggle": "Show more lesson details", "deepenSectionTitle": "Deepen and review", "assistantSectionTitle": "Deepen with language assistant", diff --git a/frontend/src/i18n/locales/es/socialnetwork.json b/frontend/src/i18n/locales/es/socialnetwork.json index f185fcf..2fbffe5 100644 --- a/frontend/src/i18n/locales/es/socialnetwork.json +++ b/frontend/src/i18n/locales/es/socialnetwork.json @@ -429,6 +429,19 @@ "invalidCode": "Código inválido", "courseNotFound": "Curso no encontrado", "grammarExercises": "Prueba de gramática", + "exerciseFlowIntro": "Resuelve las tareas en orden. Cada respuesta correcta te acerca al cierre de la lección.", + "exerciseProgressLabel": "Progreso", + "exerciseTargetLabel": "Necesario", + "exerciseCardLabel": "Tarea {number}", + "exerciseStatusOpen": "Pendiente", + "exerciseStatusCorrect": "Hecha", + "exerciseStatusRetry": "Revisar otra vez", + "exerciseAnswerAllHint": "Responde primero las {total} tareas. Completadas hasta ahora: {answered}. Necesitas al menos {target}% para aprobar.", + "exerciseNeedMoreCorrectHint": "Ahora mismo tienes {score}%. Necesitas al menos {target}% para completar esta lección.", + "exercisePassedHint": "Objetivo alcanzado: {score}% de los {target}% necesarios. En cuanto todas las tareas estén respondidas, la prueba queda aprobada.", + "exerciseReinforcementHint": "Después de un error, el flujo vuelve brevemente al modo de aprendizaje. Practica {count} preguntas más en el entrenador y la prueba del capítulo se desbloqueará otra vez.", + "exercisePrepReinforcementHint": "Después de un error, vuelve a repasar los términos preparados una vez más. Luego la prueba del capítulo se desbloqueará otra vez.", + "exerciseGrammarLead": "Gramática clave para esta prueba", "noExercises": "No hay prueba disponible", "enterAnswer": "Introduce la respuesta", "checkAnswer": "Comprobar respuesta", @@ -454,6 +467,9 @@ "vocabPrepStep2": "Repasa los mismos elementos otra vez (repaso activo, aún sin practicar).", "vocabPrepConfirm2": "Segunda lectura hecha", "vocabPrepReady": "Ya puedes iniciar el entrenador de vocabulario.", + "learningPathLabel": "Ruta principal", + "learningPathTitle": "Tu recorrido de aprendizaje para esta lección", + "learningPathIntro": "Sigue estos pasos en orden: preparar, repasar brevemente, entrenar y luego pasar a la prueba del capítulo.", "lessonDetailsToggle": "Mostrar más detalles de la lección", "deepenSectionTitle": "Profundizar y repasar", "assistantSectionTitle": "Profundizar con el asistente de idiomas", diff --git a/frontend/src/views/social/VocabLessonView.vue b/frontend/src/views/social/VocabLessonView.vue index 70f3511..282e4cb 100644 --- a/frontend/src/views/social/VocabLessonView.vue +++ b/frontend/src/views/social/VocabLessonView.vue @@ -83,169 +83,176 @@

Diese Lektion priorisiert Wiederholung und Vertiefung. Neuer Stoff wird bewusst reduziert, damit vorhandene Muster stabil werden.

- -
-

{{ $t('socialnetwork.vocab.courses.vocabPrepTitle') }}

- -

{{ $t('socialnetwork.vocab.courses.vocabPrepReady') }}

-
+
+
+ {{ $t('socialnetwork.vocab.courses.learningPathLabel') }} +

{{ $t('socialnetwork.vocab.courses.learningPathTitle') }}

+

{{ $t('socialnetwork.vocab.courses.learningPathIntro') }}

+
- -
- - {{ $t('socialnetwork.vocab.courses.vocabOverviewToggle') }} - -

{{ $t('socialnetwork.vocab.courses.vocabInfoText') }}

-
-
- {{ vocab.learning || '—' }} - - {{ vocab.reference }} -
-
-
- - -
-

{{ $t('socialnetwork.vocab.courses.vocabTrainer') }}

-
- Wiederholung läuft schrittweise mit -

Zuerst liegt der Fokus auf den neuen Begriffen dieser Lektion. Mit deinem Fortschritt fließen ältere Vokabeln dann zunehmend mit ein.

-
-
- Kapitel-Prüfung noch gesperrt -

{{ exerciseUnlockHint }}

-
-
-