feat: add sticky error-aware key mastery
Persist ranked-only mastery and use it consistently across progression, milestones, counts, and localized UI. Preserve mastery during history rebuilds, replay errors accurately, and generate replay-derived test profiles. Document the follow-up plan to remove the drill history cap.
This commit is contained in:
+17
-6
@@ -319,13 +319,13 @@ milestones:
|
||||
open_skill_tree: 'Druecke [t], um den Faehigkeitenbaum zu oeffnen'
|
||||
branch_complete_msg: 'Du hast den Zweig %{branch} abgeschlossen!'
|
||||
all_levels_mastered: 'Alle %{count} Stufen gemeistert.'
|
||||
all_keys_confident: 'Jede Taste in diesem Zweig hat volle Sicherheit.'
|
||||
all_keys_confident: 'Jede Taste in diesem Zweig wurde gemeistert.'
|
||||
all_unlocked_msg: 'Du hast jede Taste auf der Tastatur freigeschaltet!'
|
||||
all_unlocked_desc: 'Jedes Zeichen, Symbol und jeder Modifikator ist jetzt in deinen Lektionen verfuegbar.'
|
||||
keep_practicing_mastery: 'Uebe weiter, um Meisterschaft aufzubauen — wenn jede Taste volle'
|
||||
confidence_complete: 'Sicherheit erreicht hat, hast du die volle Tastaturbeherrschung!'
|
||||
keep_practicing_mastery: 'Uebe weiter — sobald jede Taste gemeistert ist,'
|
||||
confidence_complete: 'hast du die volle Tastaturbeherrschung erreicht!'
|
||||
all_mastered_msg: 'Glueckwunsch — du hast volle Tastaturbeherrschung erreicht!'
|
||||
all_mastered_desc: 'Jede Taste auf der Tastatur hat maximale Sicherheit.'
|
||||
all_mastered_desc: 'Jede Taste auf der Tastatur wurde gemeistert.'
|
||||
mastery_takes_practice: 'Meisterschaft ist kein Ziel — sie erfordert staendiges Ueben.'
|
||||
keep_drilling: 'Uebe weiter, um dein Koennen zu erhalten.'
|
||||
hint_skill_tree_continue: 'Faehigkeitenbaum [Andere Taste] Weiter'
|
||||
@@ -335,16 +335,24 @@ milestones:
|
||||
unlock_msg_2: 'Eine weitere Taste in deinem Arsenal!'
|
||||
unlock_msg_3: 'Deine Tastatur waechst! Weiter so.'
|
||||
unlock_msg_4: 'Einen Schritt naeher an voller Tastaturbeherrschung!'
|
||||
mastery_msg_1: 'Diese Taste hat jetzt volle Sicherheit!'
|
||||
unlock_msg_plural_1: 'Gut gemacht! Baue deine Tippfaehigkeiten weiter aus.'
|
||||
unlock_msg_plural_2: 'Weitere Tasten in deinem Arsenal!'
|
||||
unlock_msg_plural_3: 'Deine Tastatur waechst! Weiter so.'
|
||||
unlock_msg_plural_4: 'Ein paar Schritte naeher an voller Tastaturbeherrschung!'
|
||||
mastery_msg_1: 'Diese Taste ist jetzt gemeistert.'
|
||||
mastery_msg_2: 'Diese Taste sitzt perfekt!'
|
||||
mastery_msg_3: 'Muskelgedaechtnis verankert!'
|
||||
mastery_msg_4: 'Eine weitere Taste bezwungen!'
|
||||
mastery_msg_plural_1: 'Diese Tasten sind jetzt gemeistert.'
|
||||
mastery_msg_plural_2: 'Diese Tasten sitzen perfekt!'
|
||||
mastery_msg_plural_3: 'Muskelgedaechtnis verankert!'
|
||||
mastery_msg_plural_4: 'Weitere Tasten bezwungen!'
|
||||
|
||||
# Adaptive drill intro overlay
|
||||
adaptive_intro:
|
||||
title: ' Willkommen bei keydr! '
|
||||
how_it_works: 'Wie adaptive Lektionen funktionieren:'
|
||||
description: 'Du startest mit einer kleinen Auswahl der haeufigsten Buchstaben. Die Lektion generiert nur Woerter, die diese Buchstaben verwenden. Je sicherer du sie tippst, desto mehr neue Tasten werden schrittweise freigeschaltet, bis du die ganze Tastatur beherrschst.'
|
||||
description: 'Du startest mit einer kleinen Auswahl der haeufigsten Buchstaben. Die Lektion generiert nur Woerter, die diese Buchstaben verwenden. Sobald du sie meisterst, werden weitere Tasten schrittweise freigeschaltet, bis du die ganze Tastatur beherrschst.'
|
||||
target_wpm_label: 'Ziel-WPM:'
|
||||
target_wpm_desc: 'Dies beeinflusst, wie schnell Tasten freigeschaltet werden — hoehere Ziele erfordern schnelleres Tippen. 35 WPM ist ein guter Ausgangspunkt, falls unsicher. Du kannst dies spaeter jederzeit in den Einstellungen aendern.'
|
||||
hint_adjust: 'WPM anpassen'
|
||||
@@ -390,6 +398,9 @@ keyboard:
|
||||
in_focus_label: 'Im Fokus?: '
|
||||
mastery_label: 'Meisterschaft: '
|
||||
mastery_locked: 'Gesperrt'
|
||||
mastery_mastered: 'Gemeistert'
|
||||
mastery_in_progress: 'In Arbeit'
|
||||
speed_confidence_label: 'Tempovertrauen: '
|
||||
ranked_avg_time: 'Gewertete Schnittzeit: '
|
||||
ranked_best_time: 'Gewertete Bestzeit: '
|
||||
ranked_samples: 'Gewertete Stichproben: '
|
||||
|
||||
Reference in New Issue
Block a user