feat(learn): add reverse and dictation modes for card review

- Add reverse mode to swap card front/back
- Add dictation mode with TTS audio playback and answer verification
- Add i18n translations for new features in all 8 languages
- Integrate useAudioPlayer hook for TTS playback
This commit is contained in:
2026-03-14 11:52:56 +08:00
parent 6213dd2338
commit c525bd4591
9 changed files with 251 additions and 22 deletions

View File

@@ -226,7 +226,14 @@
"cardTypeNew": "Neu",
"cardTypeLearning": "Lernen",
"cardTypeReview": "Wiederholung",
"cardTypeRelearning": "Neu lernen"
"cardTypeRelearning": "Neu lernen",
"reverse": "Umkehren",
"dictation": "Diktat",
"clickToPlay": "Klicken zum Abspielen",
"yourAnswer": "Ihre Antwort",
"typeWhatYouHear": "Geben Sie ein, was Sie hören",
"correct": "Richtig",
"incorrect": "Falsch"
},
"page": {
"unauthorized": "Sie sind nicht berechtigt, auf dieses Deck zuzugreifen"

View File

@@ -252,7 +252,14 @@
"cardTypeNew": "New",
"cardTypeLearning": "Learning",
"cardTypeReview": "Review",
"cardTypeRelearning": "Relearning"
"cardTypeRelearning": "Relearning",
"reverse": "Reverse",
"dictation": "Dictation",
"clickToPlay": "Click to play audio",
"yourAnswer": "Your answer",
"typeWhatYouHear": "Type what you hear...",
"correct": "Correct",
"incorrect": "Incorrect"
},
"page": {
"unauthorized": "You are not authorized to access this deck"

View File

@@ -295,7 +295,14 @@
"cardTypeNew": "Nouveau",
"cardTypeLearning": "Apprentissage",
"cardTypeReview": "Révision",
"cardTypeRelearning": "Réapprentissage"
"cardTypeRelearning": "Réapprentissage",
"reverse": "Inverser",
"dictation": "Dictée",
"clickToPlay": "Cliquez pour jouer",
"yourAnswer": "Votre réponse",
"typeWhatYouHear": "Tapez ce que vous entendez",
"correct": "Correct",
"incorrect": "Incorrect"
},
"page": {
"unauthorized": "Vous n'êtes pas autorisé à accéder à ce deck"

View File

@@ -260,7 +260,14 @@
"cardTypeNew": "Nuovo",
"cardTypeLearning": "Apprendimento",
"cardTypeReview": "Ripasso",
"cardTypeRelearning": "Riapprendimento"
"cardTypeRelearning": "Riapprendimento",
"reverse": "Inverti",
"dictation": "Dettato",
"clickToPlay": "Clicca per riprodurre",
"yourAnswer": "La tua risposta",
"typeWhatYouHear": "Scrivi ciò che senti",
"correct": "Corretto",
"incorrect": "Errato"
},
"page": {
"unauthorized": "Non sei autorizzato ad accedere a questo mazzo"

View File

@@ -252,7 +252,14 @@
"cardTypeNew": "新規",
"cardTypeLearning": "学習中",
"cardTypeReview": "復習",
"cardTypeRelearning": "再学習"
"cardTypeRelearning": "再学習",
"reverse": "反転",
"dictation": "聴き取り",
"clickToPlay": "クリックして再生",
"yourAnswer": "あなたの答え",
"typeWhatYouHear": "聞こえた内容を入力",
"correct": "正解",
"incorrect": "不正解"
},
"page": {
"unauthorized": "このデッキにアクセスする権限がありません"

View File

@@ -226,7 +226,14 @@
"cardTypeNew": "새 카드",
"cardTypeLearning": "학습 중",
"cardTypeReview": "복습 중",
"cardTypeRelearning": "재학습 중"
"cardTypeRelearning": "재학습 중",
"reverse": "반전",
"dictation": "받아쓰기",
"clickToPlay": "클릭하여 재생",
"yourAnswer": "당신의 답변",
"typeWhatYouHear": "들은 내용을 입력하세요",
"correct": "정답",
"incorrect": "오답"
},
"page": {
"unauthorized": "이 덱에 접근할 권한이 없습니다"

View File

@@ -226,7 +226,14 @@
"cardTypeNew": "يېڭى",
"cardTypeLearning": "ئۆگىنىۋاتىدۇ",
"cardTypeReview": "تەكرارلاش",
"cardTypeRelearning": "قايتا ئۆگىنىش"
"cardTypeRelearning": "قايتا ئۆگىنىش",
"reverse": "ئەكسى",
"dictation": "ئاڭلاپ يېزىش",
"clickToPlay": "چېكىپ قويۇش",
"yourAnswer": "سىزنىڭ جاۋابىڭىز",
"typeWhatYouHear": "ئاڭلىغىنىڭىزنى كىرگۈزۈڭ",
"correct": "توغرا",
"incorrect": "خاتا"
},
"page": {
"unauthorized": "بۇ دېكنى زىيارەت قىلىش ھوقۇقىڭىز يوق"

View File

@@ -252,7 +252,14 @@
"cardTypeNew": "新卡片",
"cardTypeLearning": "学习中",
"cardTypeReview": "复习中",
"cardTypeRelearning": "重学中"
"cardTypeRelearning": "重学中",
"reverse": "反向",
"dictation": "听写",
"clickToPlay": "点击播放",
"yourAnswer": "你的答案",
"typeWhatYouHear": "输入你听到的内容",
"correct": "正确",
"incorrect": "错误"
},
"page": {
"unauthorized": "您无权访问该牌组"