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:
2026-08-12 01:09:52 -04:00
parent 0f8493eb02
commit 5daa644d3b
47 changed files with 2683 additions and 722 deletions
+17 -6
View File
@@ -319,13 +319,13 @@ milestones:
open_skill_tree: 'Paspauskite [t] įgūdžių medžiui atidaryti'
branch_complete_msg: 'Baigėte %{branch} šaką!'
all_levels_mastered: 'Visi %{count} lygiai įvaldyti.'
all_keys_confident: 'Kiekvienas šios šakos klavišas pasiekė pilną patikimumą.'
all_keys_confident: 'Kiekvienas šios šakos klavišas yra įvaldytas.'
all_unlocked_msg: 'Atrakinote kiekvieną klaviatūros klavišą!'
all_unlocked_desc: 'Kiekvienas simbolis, ženklas ir modifikatorius dabar prieinamas pratybose.'
keep_practicing_mastery: 'Tęskite praktiką meistriškumui ugdyti — kai kiekvienas klavišas pasieks pilną'
confidence_complete: 'patikimumą, būsite pasiekę visišką klaviatūros įvaldymą!'
keep_practicing_mastery: 'Tęskite praktiką — kai kiekvienas klavišas bus įvaldytas,'
confidence_complete: 'būsite pasiekę visišką klaviatūros įvaldymą!'
all_mastered_msg: 'Sveikiname — pasiekėte visišką klaviatūros įvaldymą!'
all_mastered_desc: 'Kiekvienas klaviatūros klavišas yra maksimalaus patikimumo.'
all_mastered_desc: 'Kiekvienas klaviatūros klavišas yra įvaldytas.'
mastery_takes_practice: 'Meistriškumas nėra tikslas — jis reikalauja nuolatinės praktikos.'
keep_drilling: 'Tęskite pratybas, kad išlaikytumėte formą.'
hint_skill_tree_continue: 'Atidaryti įgūdžių medį [Bet kuris klavišas] Tęsti'
@@ -335,16 +335,24 @@ milestones:
unlock_msg_2: 'Dar vienas klavišas jūsų arsenale!'
unlock_msg_3: 'Jūsų klaviatūra auga! Taip ir toliau.'
unlock_msg_4: 'Vienu žingsniu arčiau visiško klaviatūros įvaldymo!'
mastery_msg_1: 'Šis klavišas dabar pilno patikimumo!'
unlock_msg_plural_1: 'Puiku! Toliau tobulinkite spausdinimo įgūdžius.'
unlock_msg_plural_2: 'Dar keli klavišai jūsų arsenale!'
unlock_msg_plural_3: 'Jūsų klaviatūra auga! Taip ir toliau.'
unlock_msg_plural_4: 'Keliais žingsniais arčiau visiško klaviatūros įvaldymo!'
mastery_msg_1: 'Šis klavišas dabar įvaldytas.'
mastery_msg_2: 'Šį klavišą mokate puikiai!'
mastery_msg_3: 'Raumenų atmintis užfiksuota!'
mastery_msg_4: 'Dar vienas klavišas užkariauta!'
mastery_msg_plural_1: 'Šie klavišai dabar įvaldyti.'
mastery_msg_plural_2: 'Šiuos klavišus mokate puikiai!'
mastery_msg_plural_3: 'Raumenų atmintis užfiksuota!'
mastery_msg_plural_4: 'Dar keli klavišai užkariauti!'
# Adaptive drill intro overlay
adaptive_intro:
title: ' Sveiki atvykę į keydr! '
how_it_works: 'Kaip veikia adaptyvios pratybos:'
description: 'Pradžioje atrakinamas nedidelis dažniausių raidžių rinkinys. Pratybos generuoja tik žodžius, kurie naudoja šias raides. Kai jas spausdinsite užtikrintai, nauji klavišai palaipsniui atrakinami, kol įvaldysite visą klaviatūrą.'
description: 'Pradžioje atrakinamas nedidelis dažniausių raidžių rinkinys. Pratybos generuoja tik žodžius, kurie naudoja šias raides. Kai jas įvaldysite, nauji klavišai palaipsniui atrakinami, kol įvaldysite visą klaviatūrą.'
target_wpm_label: 'Tikslinis WPM:'
target_wpm_desc: 'Tai lemia, kaip greitai atrakinami klavišai — aukštesni tikslai reikalauja greitesnio spausdinimo. 35 WPM — gera pradžios vieta, jei nesate tikri. Tai visada galite pakeisti vėliau nustatymuose.'
hint_adjust: 'Reguliuoti WPM'
@@ -390,6 +398,9 @@ keyboard:
in_focus_label: 'Fokuse?: '
mastery_label: 'Įvaldymas: '
mastery_locked: 'Užrakinta'
mastery_mastered: 'Įvaldyta'
mastery_in_progress: 'Vyksta'
speed_confidence_label: 'Greičio patikimumas: '
ranked_avg_time: 'Vert. vid. laikas: '
ranked_best_time: 'Vert. geriausias: '
ranked_samples: 'Vert. imčių: '