feat(vocab): update course today plan localization and UI logic
All checks were successful
Deploy to production / deploy (push) Successful in 2m49s

- Added new localization strings for scenarios with no due reviews in German, English, and Spanish, enhancing user guidance.
- Updated VocabCourseView to conditionally display the appropriate introduction message based on the presence of due reviews, improving clarity in the course flow.
This commit is contained in:
Torsten Schulz (local)
2026-04-07 09:55:01 +02:00
parent f504a5d597
commit 86dfb0d859
5 changed files with 48 additions and 15 deletions

View File

@@ -3,7 +3,7 @@
<section class="surface-card review-header">
<button type="button" class="button-secondary" @click="backToCourse">{{ $t('general.back') }}</button>
<div>
<h2>Kurz-Wiederholung</h2>
<h2>{{ $t('socialnetwork.vocab.courses.quickReviewTitle') }}</h2>
<p v-if="lesson">{{ lesson.title }} (#{{ lesson.lessonNumber }})</p>
</div>
</section>
@@ -12,17 +12,17 @@
<section v-else-if="!lesson" class="surface-card review-state">{{ $t('socialnetwork.vocab.notFound') }}</section>
<section v-else class="surface-card review-body">
<p class="review-intro">
Kurze Session mit {{ reviewQueue.length }} Begriffen. Nach Abschluss wird die geplante Wiederholung als erledigt markiert.
{{ $t('socialnetwork.vocab.courses.quickReviewIntro', { count: reviewQueue.length }) }}
</p>
<div v-if="reviewDone" class="review-done">
<h3>Geschafft</h3>
<p>Richtig: {{ correctCount }} / {{ reviewQueue.length }}</p>
<button type="button" @click="backToCourse">Zurück zum Kurs</button>
<h3>{{ $t('socialnetwork.vocab.courses.quickReviewDoneTitle') }}</h3>
<p>{{ $t('socialnetwork.vocab.courses.quickReviewDoneScore', { correct: correctCount, total: reviewQueue.length }) }}</p>
<button type="button" @click="backToCourse">{{ $t('socialnetwork.vocab.courses.quickReviewBackToCourse') }}</button>
</div>
<div v-else-if="currentItem" class="review-card">
<p class="review-progress">Begriff {{ currentIndex + 1 }} von {{ reviewQueue.length }}</p>
<p class="review-progress">{{ $t('socialnetwork.vocab.courses.quickReviewProgress', { current: currentIndex + 1, total: reviewQueue.length }) }}</p>
<p class="review-question">{{ currentPrompt }}</p>
<div v-if="mode === 'multiple_choice'" class="review-options">
@@ -55,7 +55,7 @@
class="button-secondary"
@click="advanceAfterFeedback"
>
Gelesen, weiter
{{ $t('socialnetwork.vocab.courses.quickReviewAcknowledge') }}
</button>
</div>
@@ -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;