diff --git a/frontend/src/i18n/locales/de/socialnetwork.json b/frontend/src/i18n/locales/de/socialnetwork.json index 3e05cbc..2090e92 100644 --- a/frontend/src/i18n/locales/de/socialnetwork.json +++ b/frontend/src/i18n/locales/de/socialnetwork.json @@ -670,8 +670,18 @@ "courseFlowEyebrow": "Tagesfluss", "courseFlowTitle": "Heute sinnvoll weitermachen", "courseFlowIntro": "Zuerst die Tagesempfehlung mit konkreter Reihenfolge. Darunter die vier Bereiche: fällige Kurz-Wiederholung, aktueller Block, Intensivphase, freie Vertiefung.", + "quickReviewTitle": "Kurz-Wiederholung", + "quickReviewIntro": "Kurze Session mit {count} Begriffen. Nach Abschluss wird die geplante Wiederholung als erledigt markiert.", + "quickReviewDoneTitle": "Geschafft", + "quickReviewDoneScore": "Richtig: {correct} / {total}", + "quickReviewBackToCourse": "Zurück zum Kurs", + "quickReviewProgress": "Begriff {current} von {total}", + "quickReviewPromptMeaning": "Was bedeutet \"{term}\"?", + "quickReviewPromptTarget": "Tippe auf Zielsprache: \"{term}\"", + "quickReviewAcknowledge": "Gelesen, weiter", "courseTodayPlanTitle": "Empfehlung für heute", "courseTodayPlanIntro": "So kannst du vorgehen: zuerst alles unter „Jetzt kurz wiederholen“, dann die offenen Lektionen deines Blocks, danach ggf. die Intensivphase. Kurz-Wiederholungen sind die drei kleinen Termine nach Lektionsende (typisch nach etwa 1, 3 und 7 Tagen), damit Vokabeln hängen bleiben.", + "courseTodayPlanIntroNoDueReview": "Heute ist keine Kurz-Wiederholung fällig. Starte mit den offenen Lektionen im aktuellen Block und nimm danach ggf. die Intensivphase mit. Kurz-Wiederholungen erscheinen automatisch wieder nach dem 1/3/7-Tage-Rhythmus.", "courseTodayPlanStepReviewDue": "Jetzt kurz wiederholen", "courseTodayPlanStepBlock": "Weiter im aktuellen Block", "courseTodayPlanStepIntensive": "Intensive Wiederholung", diff --git a/frontend/src/i18n/locales/en/socialnetwork.json b/frontend/src/i18n/locales/en/socialnetwork.json index d17f6d0..de19961 100644 --- a/frontend/src/i18n/locales/en/socialnetwork.json +++ b/frontend/src/i18n/locales/en/socialnetwork.json @@ -670,8 +670,18 @@ "courseFlowEyebrow": "Daily flow", "courseFlowTitle": "Best next step for today", "courseFlowIntro": "Start with today’s suggested order at the top. Below that, the four areas in detail: due quick reviews, current block, intensive review, free practice.", + "quickReviewTitle": "Quick Review", + "quickReviewIntro": "Short session with {count} terms. After completion, the scheduled review is marked as done.", + "quickReviewDoneTitle": "Done", + "quickReviewDoneScore": "Correct: {correct} / {total}", + "quickReviewBackToCourse": "Back to course", + "quickReviewProgress": "Term {current} of {total}", + "quickReviewPromptMeaning": "What does \"{term}\" mean?", + "quickReviewPromptTarget": "Type in target language: \"{term}\"", + "quickReviewAcknowledge": "Read, continue", "courseTodayPlanTitle": "Suggested for today", "courseTodayPlanIntro": "Practical order: first everything that is due for a quick review, then open lessons in your current block, then intensive review if shown. Quick reviews are three short revisit dates after you finish a lesson (typically about 1, 3 and 7 days apart) so vocabulary sticks.", + "courseTodayPlanIntroNoDueReview": "No quick review is due today. Start with the open lessons in your current block, then do intensive review if shown. Quick reviews reappear automatically on the 1/3/7-day rhythm.", "courseTodayPlanStepReviewDue": "Quick review now", "courseTodayPlanStepBlock": "Continue in your current block", "courseTodayPlanStepIntensive": "Intensive review", diff --git a/frontend/src/i18n/locales/es/socialnetwork.json b/frontend/src/i18n/locales/es/socialnetwork.json index b299f64..92e0fca 100644 --- a/frontend/src/i18n/locales/es/socialnetwork.json +++ b/frontend/src/i18n/locales/es/socialnetwork.json @@ -668,8 +668,18 @@ "courseFlowEyebrow": "Flujo del día", "courseFlowTitle": "La mejor continuación para hoy", "courseFlowIntro": "Primero la sugerencia del día con orden concreto. Debajo, las cuatro zonas: repaso breve pendiente, bloque actual, fase intensiva, práctica libre.", + "quickReviewTitle": "Repaso breve", + "quickReviewIntro": "Sesión corta con {count} términos. Al terminar, el repaso programado se marca como completado.", + "quickReviewDoneTitle": "Completado", + "quickReviewDoneScore": "Correctas: {correct} / {total}", + "quickReviewBackToCourse": "Volver al curso", + "quickReviewProgress": "Término {current} de {total}", + "quickReviewPromptMeaning": "¿Qué significa \"{term}\"?", + "quickReviewPromptTarget": "Escribe en la lengua meta: \"{term}\"", + "quickReviewAcknowledge": "Leído, continuar", "courseTodayPlanTitle": "Sugerencia para hoy", "courseTodayPlanIntro": "Orden práctico: primero todo lo marcado como repaso breve pendiente, luego las lecciones abiertas de tu bloque, después la fase intensiva si aparece. Los repasos breves son tres citas cortas tras terminar una lección (típicamente aprox. 1, 3 y 7 días) para fijar vocabulario.", + "courseTodayPlanIntroNoDueReview": "Hoy no hay repaso breve pendiente. Empieza con las lecciones abiertas de tu bloque actual y luego haz la fase intensiva si aparece. Los repasos breves vuelven automáticamente con el ritmo de 1/3/7 días.", "courseTodayPlanStepReviewDue": "Repaso breve ahora", "courseTodayPlanStepBlock": "Seguir en el bloque actual", "courseTodayPlanStepIntensive": "Repaso intensivo", diff --git a/frontend/src/views/social/VocabCourseView.vue b/frontend/src/views/social/VocabCourseView.vue index 526550f..6f4b7a7 100644 --- a/frontend/src/views/social/VocabCourseView.vue +++ b/frontend/src/views/social/VocabCourseView.vue @@ -53,7 +53,11 @@

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

-

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

+

+ {{ dueReviewLessons.length > 0 + ? $t('socialnetwork.vocab.courses.courseTodayPlanIntro') + : $t('socialnetwork.vocab.courses.courseTodayPlanIntroNoDueReview') }} +

  1. @@ -73,7 +77,7 @@
    -
    +
    1
    @@ -93,12 +97,11 @@ {{ formatReviewDue(getLessonProgress(lesson.id, lesson)?.reviewNextDueAt) }}
    -

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

    - 2 + {{ dueReviewLessons.length > 0 ? 2 : 1 }}

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

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

    @@ -121,7 +124,7 @@
    - 3 + {{ dueReviewLessons.length > 0 ? 3 : 2 }}

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

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

    @@ -142,7 +145,7 @@
    - 4 + {{ dueReviewLessons.length > 0 ? 4 : 3 }}

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

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

    diff --git a/frontend/src/views/social/VocabLessonReviewView.vue b/frontend/src/views/social/VocabLessonReviewView.vue index 0c3f987..1fbd6b8 100644 --- a/frontend/src/views/social/VocabLessonReviewView.vue +++ b/frontend/src/views/social/VocabLessonReviewView.vue @@ -3,7 +3,7 @@
    -

    Kurz-Wiederholung

    +

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

    {{ lesson.title }} (#{{ lesson.lessonNumber }})

    @@ -12,17 +12,17 @@
    {{ $t('socialnetwork.vocab.notFound') }}

    - Kurze Session mit {{ reviewQueue.length }} Begriffen. Nach Abschluss wird die geplante Wiederholung als erledigt markiert. + {{ $t('socialnetwork.vocab.courses.quickReviewIntro', { count: reviewQueue.length }) }}

    -

    Geschafft

    -

    Richtig: {{ correctCount }} / {{ reviewQueue.length }}

    - +

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

    +

    {{ $t('socialnetwork.vocab.courses.quickReviewDoneScore', { correct: correctCount, total: reviewQueue.length }) }}

    +
    -

    Begriff {{ currentIndex + 1 }} von {{ reviewQueue.length }}

    +

    {{ $t('socialnetwork.vocab.courses.quickReviewProgress', { current: currentIndex + 1, total: reviewQueue.length }) }}

    {{ currentPrompt }}

    @@ -55,7 +55,7 @@ class="button-secondary" @click="advanceAfterFeedback" > - Gelesen, weiter + {{ $t('socialnetwork.vocab.courses.quickReviewAcknowledge') }}
    @@ -101,8 +101,8 @@ export default { currentPrompt() { if (!this.currentItem) return ''; return this.mode === 'multiple_choice' - ? `Was bedeutet "${this.currentItem.target}"?` - : `Tippe auf Zielsprache: "${this.currentItem.gloss}"`; + ? this.$t('socialnetwork.vocab.courses.quickReviewPromptMeaning', { term: this.currentItem.target }) + : this.$t('socialnetwork.vocab.courses.quickReviewPromptTarget', { term: this.currentItem.gloss }); }, submitDisabled() { if (!this.currentItem) return true;