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

@@ -53,7 +53,11 @@
<div v-if="todayRecommendedSteps.length > 0" class="course-today-plan">
<h4 class="course-today-plan__title">{{ $t('socialnetwork.vocab.courses.courseTodayPlanTitle') }}</h4>
<p class="course-today-plan__intro">{{ $t('socialnetwork.vocab.courses.courseTodayPlanIntro') }}</p>
<p class="course-today-plan__intro">
{{ dueReviewLessons.length > 0
? $t('socialnetwork.vocab.courses.courseTodayPlanIntro')
: $t('socialnetwork.vocab.courses.courseTodayPlanIntroNoDueReview') }}
</p>
<ol class="course-today-plan__list">
<li v-for="(step, idx) in todayRecommendedSteps" :key="`${step.type}-${step.lesson.id}-${idx}`" class="course-today-plan__item">
<div class="course-today-plan__item-main">
@@ -73,7 +77,7 @@
</div>
<div class="course-flow__grid">
<article class="course-flow-card">
<article v-if="dueReviewLessons.length > 0" class="course-flow-card">
<div class="course-flow-card__top">
<span class="course-flow-card__badge course-flow-card__badge--review">1</span>
<div>
@@ -93,12 +97,11 @@
<span>{{ formatReviewDue(getLessonProgress(lesson.id, lesson)?.reviewNextDueAt) }}</span>
</button>
</div>
<p v-else class="course-flow-card__empty">{{ $t('socialnetwork.vocab.courses.courseFlowReviewEmpty') }}</p>
</article>
<article class="course-flow-card">
<div class="course-flow-card__top">
<span class="course-flow-card__badge course-flow-card__badge--block">2</span>
<span class="course-flow-card__badge course-flow-card__badge--block">{{ dueReviewLessons.length > 0 ? 2 : 1 }}</span>
<div>
<h4>{{ $t('socialnetwork.vocab.courses.courseFlowBlockTitle') }}</h4>
<p>{{ $t('socialnetwork.vocab.courses.courseFlowBlockDescription') }}</p>
@@ -121,7 +124,7 @@
<article class="course-flow-card">
<div class="course-flow-card__top">
<span class="course-flow-card__badge course-flow-card__badge--intensive">3</span>
<span class="course-flow-card__badge course-flow-card__badge--intensive">{{ dueReviewLessons.length > 0 ? 3 : 2 }}</span>
<div>
<h4>{{ $t('socialnetwork.vocab.courses.courseFlowIntensiveTitle') }}</h4>
<p>{{ $t('socialnetwork.vocab.courses.courseFlowIntensiveDescription') }}</p>
@@ -142,7 +145,7 @@
<article class="course-flow-card">
<div class="course-flow-card__top">
<span class="course-flow-card__badge course-flow-card__badge--practice">4</span>
<span class="course-flow-card__badge course-flow-card__badge--practice">{{ dueReviewLessons.length > 0 ? 4 : 3 }}</span>
<div>
<h4>{{ $t('socialnetwork.vocab.courses.courseFlowPracticeTitle') }}</h4>
<p>{{ $t('socialnetwork.vocab.courses.courseFlowPracticeDescription') }}</p>