Intro pop-up fixes/tweaks

This commit is contained in:
2026-04-18 00:27:12 -04:00
parent b5ba61a3a3
commit d6447d47b7
24 changed files with 187 additions and 180 deletions

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Vitejte v Adaptivnim cviceni! ' title: ' Vitejte v keydr! '
how_it_works: 'Jak funguje adaptivni cviceni:' how_it_works: 'Jak funguje adaptivni cviceni:'
desc_start: 'Zacinas s malou sadou nejbeznejsich pismen.' description: 'Zacinas s malou sadou nejbeznejsich odemcenych pismen. Cviceni generuje pouze slova, ktera pouzivaji tato pismena. Jak je pises s jistotou, nove klavesy jsou postupne odemykany, az zvladnes celou klavesnici.'
desc_progress: 'Jak je pises s jistotou, nove klavesy jsou postupne'
desc_expand: 'odemykany, az zvladnes celou klavesnici.'
target_wpm_label: 'Cilovy WPM:' target_wpm_label: 'Cilovy WPM:'
target_wpm_desc: 'Ovlivnuje rychlost odemykani — vyssi cile vyzaduji' target_wpm_desc: 'Ovlivnuje rychlost odemykani klaves — vyssi cile vyzaduji rychlejsi psani. 35 WPM je dobry vychozi bod, pokud si nejsi jisty. Toto muzes kdykoli zmenit v nastaveni.'
target_wpm_default: 'rychlejsi psani. 35 WPM je dobry vychozi bod.' hint_adjust: 'Upravit WPM'
hint: '[←→] Upravit WPM [Enter/Space] Spustit cviceni' hint_start: 'Spustit cviceni'
hint_back: 'Hlavni menu'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Velkommen til Adaptiv oevelse! ' title: ' Velkommen til keydr! '
how_it_works: 'Saadan fungerer adaptive oevelser:' how_it_works: 'Saadan fungerer adaptive oevelser:'
desc_start: 'Du starter med et lille saet af de mest almindelige bogstaver laast op.' description: 'Du starter med et lille saet af de mest almindelige bogstaver laast op. Oevelsen genererer kun ord, der bruger disse bogstaver. Naar du skriver dem med selvtillid, laases nye taster gradvist op, indtil du har mestret hele tastaturet.'
desc_progress: 'Naar du skriver dem med selvtillid, laases nye taster gradvist'
desc_expand: 'op, indtil du har mestret hele tastaturet.'
target_wpm_label: 'Maal-WPM:' target_wpm_label: 'Maal-WPM:'
target_wpm_desc: 'Dette paavirker hvor hurtigt taster laases op — hoejere maal kraever' target_wpm_desc: 'Dette paavirker hvor hurtigt taster laases op — hoejere maal kraever hurtigere skrivning. 35 WPM er et godt udgangspunkt, hvis du er usikker. Du kan altid aendre dette senere i indstillingerne.'
target_wpm_default: 'hurtigere skrivning. 35 WPM er et godt udgangspunkt, hvis du er usikker.' hint_adjust: 'Juster WPM'
hint: '[←→] Juster WPM [Enter/Space] Start oevelse' hint_start: 'Start oevelse'
hint_back: 'Hovedmenu'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Willkommen zur Adaptiven Lektion! ' title: ' Willkommen bei keydr! '
how_it_works: 'Wie adaptive Lektionen funktionieren:' how_it_works: 'Wie adaptive Lektionen funktionieren:'
desc_start: 'Du startest mit einer kleinen Auswahl der haeufigsten Buchstaben.' 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.'
desc_progress: 'Je sicherer du sie tippst, desto mehr neue Tasten werden'
desc_expand: 'schrittweise freigeschaltet, bis du die ganze Tastatur beherrschst.'
target_wpm_label: 'Ziel-WPM:' target_wpm_label: 'Ziel-WPM:'
target_wpm_desc: 'Dies beeinflusst, wie schnell Tasten freigeschaltet werden — hoehere Ziele erfordern' 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.'
target_wpm_default: 'schnelleres Tippen. 35 WPM ist ein guter Ausgangspunkt, falls unsicher.' hint_adjust: 'WPM anpassen'
hint: '[←→] WPM anpassen [Enter/Space] Lektion starten' hint_start: 'Lektion starten'
hint_back: 'Hauptmenue'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Welcome to Adaptive Drill! ' title: ' Welcome to keydr! '
how_it_works: 'How adaptive drills work:' how_it_works: 'How adaptive drills work:'
desc_start: 'You start with a small set of the most common letters unlocked.' description: 'You start with a small set of the most common letters unlocked. The drill only generates words that use these letters. As you type them with confidence, new keys are gradually unlocked until you''ve mastered the full keyboard.'
desc_progress: 'As you type them with confidence, new keys are gradually'
desc_expand: 'unlocked until you''ve mastered the full keyboard.'
target_wpm_label: 'Target WPM:' target_wpm_label: 'Target WPM:'
target_wpm_desc: 'This affects how quickly keys unlock — higher targets require' target_wpm_desc: 'This affects how quickly keys unlock — higher targets require faster typing. 35 WPM is a good starting point if unsure. You can always change this later in settings.'
target_wpm_default: 'faster typing. 35 WPM is a good starting point if unsure.' hint_adjust: 'Adjust WPM'
hint: '[←→] Adjust WPM [Enter/Space] Start drilling' hint_start: 'Start drilling'
hint_back: 'Main menu'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Superposición de introducción al ejercicio adaptativo # Superposición de introducción al ejercicio adaptativo
adaptive_intro: adaptive_intro:
title: ' ¡Bienvenido al Ejercicio Adaptativo! ' title: ' ¡Bienvenido a keydr! '
how_it_works: 'Cómo funcionan los ejercicios adaptativos:' how_it_works: 'Cómo funcionan los ejercicios adaptativos:'
desc_start: 'Comienzas con un pequeño conjunto de las letras más comunes desbloqueadas.' description: 'Comienzas con un pequeño conjunto de las letras más comunes desbloqueadas. El ejercicio solo genera palabras que usan estas letras. A medida que las escribes con confianza, nuevas teclas se desbloquean gradualmente hasta que dominas el teclado completo.'
desc_progress: 'A medida que las escribes con confianza, nuevas teclas se desbloquean gradualmente'
desc_expand: 'hasta que dominas el teclado completo.'
target_wpm_label: 'WPM Objetivo:' target_wpm_label: 'WPM Objetivo:'
target_wpm_desc: 'Esto afecta la velocidad con que se desbloquean las teclas — objetivos más altos requieren' target_wpm_desc: 'Esto afecta la velocidad con que se desbloquean las teclas — objetivos más altos requieren escritura más rápida. 35 WPM es un buen punto de partida si no estás seguro. Siempre puedes cambiar esto más tarde en la configuración.'
target_wpm_default: 'escritura más rápida. 35 WPM es un buen punto de partida si no estás seguro.' hint_adjust: 'Ajustar WPM'
hint: '[←→] Ajustar WPM [Enter/Space] Comenzar ejercicio' hint_start: 'Comenzar ejercicio'
hint_back: 'Menú principal'
# Explorador de teclado # Explorador de teclado
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Kohanduva harjutuse sissejuhatuse ülekate # Kohanduva harjutuse sissejuhatuse ülekate
adaptive_intro: adaptive_intro:
title: ' Tere tulemast Kohanduvasse harjutusse! ' title: ' Tere tulemast keydri! '
how_it_works: 'Kuidas kohanduvad harjutused toimivad:' how_it_works: 'Kuidas kohanduvad harjutused toimivad:'
desc_start: 'Alustad väikese hulga kõige levinumate tähtedega.' description: 'Alustad väikese hulga kõige levinumate tähtedega. Harjutus genereerib ainult sõnu, mis kasutavad neid tähti. Kui trükid neid kindlalt, avatakse uued klahvid järk-järgult, kuni oled omandanud kogu klaviatuuri.'
desc_progress: 'Kui trükid neid kindlalt, avatakse uued klahvid järk-järgult'
desc_expand: 'kuni oled omandanud kogu klaviatuuri.'
target_wpm_label: 'Siht-WPM:' target_wpm_label: 'Siht-WPM:'
target_wpm_desc: 'See mõjutab klahvide avamise kiirust — kõrgemad sihid nõuavad' target_wpm_desc: 'See mõjutab klahvide avamise kiirust — kõrgemad sihid nõuavad kiiremat trükkimist. 35 WPM on hea lähtepunkt, kui pole kindel. Saad seda alati hiljem seadetes muuta.'
target_wpm_default: 'kiiremat trükkimist. 35 WPM on hea lähtepunkt, kui pole kindel.' hint_adjust: 'Kohanda WPM'
hint: '[←→] Kohanda WPM [Enter/Space] Alusta harjutust' hint_start: 'Alusta harjutust'
hint_back: 'Peamenüü'
# Klaviatuuri uurija # Klaviatuuri uurija
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Tervetuloa Mukautuvaan harjoitukseen! ' title: ' Tervetuloa keydriin! '
how_it_works: 'Miten mukautuvat harjoitukset toimivat:' how_it_works: 'Miten mukautuvat harjoitukset toimivat:'
desc_start: 'Aloitat pienellä joukolla yleisimpiä kirjaimia avattuna.' description: 'Aloitat pienellä joukolla yleisimpiä kirjaimia avattuna. Harjoitus tuottaa vain sanoja, jotka käyttävät näitä kirjaimia. Kun kirjoitat niitä varmasti, uusia näppäimiä avataan vähitellen, kunnes olet hallinnut koko näppäimistön.'
desc_progress: 'Kun kirjoitat niitä varmasti, uusia näppäimiä avataan vähitellen'
desc_expand: 'kunnes olet hallinnut koko näppäimistön.'
target_wpm_label: 'Tavoite-WPM:' target_wpm_label: 'Tavoite-WPM:'
target_wpm_desc: 'Tämä vaikuttaa näppäinten avausnopeuteen — korkeammat tavoitteet vaativat' target_wpm_desc: 'Tämä vaikuttaa näppäinten avausnopeuteen — korkeammat tavoitteet vaativat nopeampaa kirjoittamista. 35 WPM on hyvä lähtökohta, jos et ole varma. Voit aina muuttaa tätä myöhemmin asetuksissa.'
target_wpm_default: 'nopeampaa kirjoittamista. 35 WPM on hyvä lähtökohta, jos et ole varma.' hint_adjust: 'Säädä WPM'
hint: '[←→] Säädä WPM [Enter/Space] Aloita harjoitus' hint_start: 'Aloita harjoitus'
hint_back: 'Päävalikko'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Superposition d'introduction à l'exercice adaptatif # Superposition d'introduction à l'exercice adaptatif
adaptive_intro: adaptive_intro:
title: ' Bienvenue dans l''Exercice Adaptatif ! ' title: ' Bienvenue sur keydr ! '
how_it_works: 'Comment fonctionnent les exercices adaptatifs :' how_it_works: 'Comment fonctionnent les exercices adaptatifs :'
desc_start: 'Vous commencez avec un petit ensemble des lettres les plus courantes déverrouillées.' description: 'Vous commencez avec un petit ensemble des lettres les plus courantes déverrouillées. L''exercice ne génère que des mots qui utilisent ces lettres. Au fur et à mesure que vous les tapez avec confiance, de nouvelles touches se déverrouillent progressivement jusqu''à ce que vous ayez maîtrisé le clavier complet.'
desc_progress: 'Au fur et à mesure que vous les tapez avec confiance, de nouvelles touches se déverrouillent progressivement'
desc_expand: 'jusqu''à ce que vous ayez maîtrisé le clavier complet.'
target_wpm_label: 'WPM Objectif :' target_wpm_label: 'WPM Objectif :'
target_wpm_desc: 'Cela influence la vitesse de déverrouillage des touches — des objectifs plus élevés nécessitent' target_wpm_desc: 'Cela influence la vitesse de déverrouillage des touches — des objectifs plus élevés nécessitent une frappe plus rapide. 35 WPM est un bon point de départ si vous n''êtes pas sûr. Vous pouvez toujours modifier cela plus tard dans les paramètres.'
target_wpm_default: 'une frappe plus rapide. 35 WPM est un bon point de départ si vous n''êtes pas sûr.' hint_adjust: 'Régler WPM'
hint: '[←→] Régler WPM [Enter/Space] Commencer l''exercice' hint_start: 'Commencer l''exercice'
hint_back: 'Menu principal'
# Explorateur de clavier # Explorateur de clavier
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Uvodni prekrivač prilagodljive vježbe # Uvodni prekrivač prilagodljive vježbe
adaptive_intro: adaptive_intro:
title: ' Dobrodošli u Prilagodljivu Vježbu! ' title: ' Dobrodošli u keydr! '
how_it_works: 'Kako funkcioniraju prilagodljive vježbe:' how_it_works: 'Kako funkcioniraju prilagodljive vježbe:'
desc_start: 'Počinjete s malim skupom najčešćih slova koja su otključana.' description: 'Počinjete s malim skupom najčešćih slova koja su otključana. Vježba generira samo riječi koje koriste ta slova. Kako ih tipkate s pouzdanošću, nove tipke se postupno otključavaju dok ne savladate cijelu tipkovnicu.'
desc_progress: 'Kako ih tipkate s pouzdanošću, nove tipke se postupno'
desc_expand: 'otključavaju dok ne savladate cijelu tipkovnicu.'
target_wpm_label: 'Ciljni WPM:' target_wpm_label: 'Ciljni WPM:'
target_wpm_desc: 'Ovo utječe na brzinu otključavanja tipki — viši ciljevi zahtijevaju' target_wpm_desc: 'Ovo utječe na brzinu otključavanja tipki — viši ciljevi zahtijevaju brže tipkanje. 35 WPM je dobro polazište ako niste sigurni. To uvijek možete promijeniti kasnije u postavkama.'
target_wpm_default: 'brže tipkanje. 35 WPM je dobro polazište ako niste sigurni.' hint_adjust: 'Podesi WPM'
hint: '[←→] Podesi WPM [Enter/Space] Počni vježbu' hint_start: 'Počni vježbu'
hint_back: 'Glavni izbornik'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptív gyakorlat bevezető felugró # Adaptív gyakorlat bevezető felugró
adaptive_intro: adaptive_intro:
title: ' Üdvözöljük az Adaptív Gyakorlatban! ' title: ' Üdvözöljük a keydr-ben! '
how_it_works: 'Hogyan működnek az adaptív gyakorlatok:' how_it_works: 'Hogyan működnek az adaptív gyakorlatok:'
desc_start: 'A leggyakoribb betűk egy kis készletével kezd, amelyek fel vannak oldva.' description: 'A leggyakoribb betűk egy kis készletével kezd, amelyek fel vannak oldva. A gyakorlat csak olyan szavakat generál, amelyek ezeket a betűket használják. Ahogy magabiztosan gépeli őket, az új billentyűk fokozatosan feloldódnak, amíg el nem sajátítja a teljes billentyűzetet.'
desc_progress: 'Ahogy magabiztosan gépeli őket, az új billentyűk fokozatosan'
desc_expand: 'feloldódnak, amíg el nem sajátítja a teljes billentyűzetet.'
target_wpm_label: 'Cél WPM:' target_wpm_label: 'Cél WPM:'
target_wpm_desc: 'Ez befolyásolja a billentyűk feloldásának sebességét — magasabb célok' target_wpm_desc: 'Ez befolyásolja a billentyűk feloldásának sebességét — magasabb célok gyorsabb gépelést igényelnek. 35 WPM jó kiindulópont, ha bizonytalan. Ezt később bármikor módosíthatja a beállításokban.'
target_wpm_default: 'gyorsabb gépelést igényelnek. 35 WPM jó kiindulópont, ha bizonytalan.' hint_adjust: 'WPM beállítása'
hint: '[←→] WPM beállítása [Enter/Space] Gyakorlat indítása' hint_start: 'Gyakorlat indítása'
hint_back: 'Főmenü'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Sovrapposizione introduzione esercizio adattivo # Sovrapposizione introduzione esercizio adattivo
adaptive_intro: adaptive_intro:
title: ' Benvenuto nell''Esercizio Adattivo! ' title: ' Benvenuto su keydr! '
how_it_works: 'Come funzionano gli esercizi adattivi:' how_it_works: 'Come funzionano gli esercizi adattivi:'
desc_start: 'Inizi con un piccolo insieme delle lettere più comuni sbloccate.' description: 'Inizi con un piccolo insieme delle lettere più comuni sbloccate. L''esercizio genera solo parole che usano queste lettere. Man mano che le digiti con sicurezza, nuovi tasti vengono gradualmente sbloccati finché non hai padroneggiato la tastiera completa.'
desc_progress: 'Man mano che le digiti con sicurezza, nuovi tasti vengono gradualmente'
desc_expand: 'sbloccati finché non hai padroneggiato la tastiera completa.'
target_wpm_label: 'WPM Obiettivo:' target_wpm_label: 'WPM Obiettivo:'
target_wpm_desc: 'Questo influenza la velocità di sblocco dei tasti — obiettivi più alti richiedono' target_wpm_desc: 'Questo influenza la velocità di sblocco dei tasti — obiettivi più alti richiedono una digitazione più veloce. 35 WPM è un buon punto di partenza se non sei sicuro. Puoi sempre modificarlo più tardi nelle impostazioni.'
target_wpm_default: 'una digitazione più veloce. 35 WPM è un buon punto di partenza se non sei sicuro.' hint_adjust: 'Regola WPM'
hint: '[←→] Regola WPM [Enter/Space] Inizia esercizio' hint_start: 'Inizia esercizio'
hint_back: 'Menu principale'
# Esploratore tastiera # Esploratore tastiera
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Sveiki atvykę į adaptyvias pratybas! ' title: ' Sveiki atvykę į keydr! '
how_it_works: 'Kaip veikia adaptyvios pratybos:' how_it_works: 'Kaip veikia adaptyvios pratybos:'
desc_start: 'Pradžioje atrakinamas nedidelis dažniausių raidžių rinkinys.' 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ą.'
desc_progress: 'Kai jas spausdinsite užtikrintai, nauji klavišai palaipsniui'
desc_expand: 'atrakinami, kol įvaldysite visą klaviatūrą.'
target_wpm_label: 'Tikslinis WPM:' target_wpm_label: 'Tikslinis WPM:'
target_wpm_desc: 'Tai lemia, kaip greitai atrakinami klavišai — aukštesni tikslai reikalauja' 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.'
target_wpm_default: 'greitesnio spausdinimo. 35 WPM — gera pradžios vieta, jei nesate tikri.' hint_adjust: 'Reguliuoti WPM'
hint: '[←→] Reguliuoti WPM [Enter/Space] Pradėti pratybas' hint_start: 'Pradėti pratybas'
hint_back: 'Pagrindinis meniu'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Laipni lūdzam adaptīvajā vingrinājumā! ' title: ' Laipni lūdzam keydr! '
how_it_works: 'Kā darbojas adaptīvie vingrinājumi:' how_it_works: 'Kā darbojas adaptīvie vingrinājumi:'
desc_start: 'Sākat ar nelielu visbiežāk lietoto burtu kopu.' description: 'Sākat ar nelielu visbiežāk lietoto burtu kopu. Vingrinājums ģenerē tikai vārdus, kas izmanto šos burtus. Kad rakstāt tos pārliecinoši, jauni taustiņi pakāpeniski tiek atbloķēti, līdz esat apguvis visu tastatūru.'
desc_progress: 'Kad rakstāt tos pārliecinoši, jauni taustiņi pakāpeniski'
desc_expand: 'tiek atbloķēti, līdz esat apguvis visu tastatūru.'
target_wpm_label: 'Mērķa WPM:' target_wpm_label: 'Mērķa WPM:'
target_wpm_desc: 'Tas ietekmē, cik ātri taustiņi tiek atbloķēti — augstāki mērķi prasa' target_wpm_desc: 'Tas ietekmē, cik ātri taustiņi tiek atbloķēti — augstāki mērķi prasa ātrāku rakstīšanu. 35 WPM ir labs sākumpunkts, ja neesat pārliecināts. Jūs vienmēr varat to mainīt vēlāk iestatījumos.'
target_wpm_default: 'ātrāku rakstīšanu. 35 WPM ir labs sākumpunkts, ja neesat pārliecināts.' hint_adjust: 'Pielāgot WPM'
hint: '[←→] Pielāgot WPM [Enter/Space] Sākt vingrinājumu' hint_start: 'Sākt vingrinājumu'
hint_back: 'Galvenā izvēlne'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Velkommen til adaptiv oevelse! ' title: ' Velkommen til keydr! '
how_it_works: 'Slik fungerer adaptive oevelser:' how_it_works: 'Slik fungerer adaptive oevelser:'
desc_start: 'Du starter med et lite sett av de vanligste bokstavene laast opp.' description: 'Du starter med et lite sett av de vanligste bokstavene laast opp. Oevelsen genererer bare ord som bruker disse bokstavene. Etter hvert som du skriver dem med trygghet, laases nye taster gradvis opp til du har mestret hele tastaturet.'
desc_progress: 'Etter hvert som du skriver dem med trygghet, laases nye taster gradvis'
desc_expand: 'opp til du har mestret hele tastaturet.'
target_wpm_label: 'Maal-WPM:' target_wpm_label: 'Maal-WPM:'
target_wpm_desc: 'Dette pavirker hvor raskt taster laases opp — hoyere maal krever' target_wpm_desc: 'Dette paavirker hvor raskt taster laases opp — hoeyere maal krever raskere skriving. 35 WPM er et godt utgangspunkt hvis du er usikker. Du kan alltid endre dette senere i innstillingene.'
target_wpm_default: 'raskere skriving. 35 WPM er et godt utgangspunkt hvis du er usikker.' hint_adjust: 'Juster WPM'
hint: '[←→] Juster WPM [Enter/Space] Start oevelse' hint_start: 'Start oevelse'
hint_back: 'Hovedmeny'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Welkom bij de adaptieve oefening! ' title: ' Welkom bij keydr! '
how_it_works: 'Hoe adaptieve oefeningen werken:' how_it_works: 'Hoe adaptieve oefeningen werken:'
desc_start: 'Je begint met een kleine set van de meest voorkomende letters ontgrendeld.' description: 'Je begint met een kleine set van de meest voorkomende letters ontgrendeld. De oefening genereert alleen woorden die deze letters gebruiken. Naarmate je ze met vertrouwen typt, worden nieuwe toetsen geleidelijk ontgrendeld totdat je het volledige toetsenbord beheerst.'
desc_progress: 'Naarmate je ze met vertrouwen typt, worden nieuwe toetsen geleidelijk'
desc_expand: 'ontgrendeld totdat je het volledige toetsenbord beheerst.'
target_wpm_label: 'Doel-WPM:' target_wpm_label: 'Doel-WPM:'
target_wpm_desc: 'Dit bepaalt hoe snel toetsen ontgrendelen — hogere doelen vereisen' target_wpm_desc: 'Dit bepaalt hoe snel toetsen ontgrendelen — hogere doelen vereisen sneller typen. 35 WPM is een goed startpunt als je het niet zeker weet. Je kunt dit later altijd wijzigen in de instellingen.'
target_wpm_default: 'sneller typen. 35 WPM is een goed startpunt als je het niet zeker weet.' hint_adjust: 'WPM aanpassen'
hint: '[←→] WPM aanpassen [Enter/Space] Oefening starten' hint_start: 'Oefening starten'
hint_back: 'Hoofdmenu'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Adaptive drill intro overlay # Adaptive drill intro overlay
adaptive_intro: adaptive_intro:
title: ' Witaj w treningu adaptacyjnym! ' title: ' Witaj w keydr! '
how_it_works: 'Jak dzialaja treningi adaptacyjne:' how_it_works: 'Jak dzialaja treningi adaptacyjne:'
desc_start: 'Zaczynasz z malym zestawem najczestszych liter odblokowanych.' description: 'Zaczynasz z malym zestawem najczestszych liter odblokowanych. Trening generuje tylko slowa, ktore uzywaja tych liter. W miare jak piszesz je pewnie, nowe klawisze sa stopniowo odblokowywane, az opanujesz cala klawiature.'
desc_progress: 'W miare jak piszesz je pewnie, nowe klawisze sa stopniowo'
desc_expand: 'odblokowywane, az opanujesz cala klawiature.'
target_wpm_label: 'Docelowy WPM:' target_wpm_label: 'Docelowy WPM:'
target_wpm_desc: 'Wplywa to na szybkosc odblokowywania klawiszy — wyzsze cele wymagaja' target_wpm_desc: 'Wplywa to na szybkosc odblokowywania klawiszy — wyzsze cele wymagaja szybszego pisania. 35 WPM to dobry punkt startowy, jesli nie jestes pewien. Zawsze mozesz to zmienic pozniej w ustawieniach.'
target_wpm_default: 'szybszego pisania. 35 WPM to dobry punkt startowy, jesli nie jestes pewien.' hint_adjust: 'Dostosuj WPM'
hint: '[←→] Dostosuj WPM [Enter/Space] Rozpocznij trening' hint_start: 'Rozpocznij trening'
hint_back: 'Menu glowne'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Sobreposição de introdução ao exercício adaptativo # Sobreposição de introdução ao exercício adaptativo
adaptive_intro: adaptive_intro:
title: ' Bem-vindo ao Exercício Adaptativo! ' title: ' Bem-vindo ao keydr! '
how_it_works: 'Como funcionam os exercícios adaptativos:' how_it_works: 'Como funcionam os exercícios adaptativos:'
desc_start: 'Você começa com um pequeno conjunto das letras mais comuns desbloqueadas.' description: 'Você começa com um pequeno conjunto das letras mais comuns desbloqueadas. O exercício só gera palavras que usam essas letras. À medida que as digita com confiança, novas teclas são gradualmente desbloqueadas até você dominar o teclado completo.'
desc_progress: 'À medida que as digita com confiança, novas teclas são gradualmente'
desc_expand: 'desbloqueadas até você dominar o teclado completo.'
target_wpm_label: 'WPM Alvo:' target_wpm_label: 'WPM Alvo:'
target_wpm_desc: 'Isso afeta a velocidade com que as teclas são desbloqueadas — metas mais altas exigem' target_wpm_desc: 'Isso afeta a velocidade com que as teclas são desbloqueadas — metas mais altas exigem digitação mais rápida. 35 WPM é um bom ponto de partida se não tiver certeza. Você pode sempre alterar isso mais tarde nas configurações.'
target_wpm_default: 'digitação mais rápida. 35 WPM é um bom ponto de partida se não tiver certeza.' hint_adjust: 'Ajustar WPM'
hint: '[←→] Ajustar WPM [Enter/Space] Começar a praticar' hint_start: 'Começar a praticar'
hint_back: 'Menu principal'
# Explorador de teclado # Explorador de teclado
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Suprapunere introducere exercitiu adaptiv # Suprapunere introducere exercitiu adaptiv
adaptive_intro: adaptive_intro:
title: ' Bine ai venit la exercitiul adaptiv! ' title: ' Bine ai venit la keydr! '
how_it_works: 'Cum functioneaza exercitiile adaptive:' how_it_works: 'Cum functioneaza exercitiile adaptive:'
desc_start: 'Incepi cu un set mic de litere comune deblocate.' description: 'Incepi cu un set mic de litere comune deblocate. Exercitiul genereaza doar cuvinte care folosesc aceste litere. Pe masura ce le tastezi cu incredere, taste noi sunt deblocate treptat pana cand stapanesti tastatura completa.'
desc_progress: 'Pe masura ce le tastezi cu incredere, taste noi sunt deblocate treptat'
desc_expand: 'pana cand stapanesti tastatura completa.'
target_wpm_label: 'WPM tinta:' target_wpm_label: 'WPM tinta:'
target_wpm_desc: 'Aceasta afecteaza viteza de deblocare a tastelor — tinte mai mari necesita' target_wpm_desc: 'Aceasta afecteaza viteza de deblocare a tastelor — tinte mai mari necesita tastare mai rapida. 35 WPM este un punct bun de start daca nu esti sigur. Poti modifica oricand aceasta valoare mai tarziu in setari.'
target_wpm_default: 'tastare mai rapida. 35 WPM este un punct bun de start daca nu esti sigur.' hint_adjust: 'Ajusteaza WPM'
hint: '[←→] Ajusteaza WPM [Enter/Space] Incepe exercitiul' hint_start: 'Incepe exercitiul'
hint_back: 'Meniu principal'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Uvodni prekrivnik prilagodljive vaje # Uvodni prekrivnik prilagodljive vaje
adaptive_intro: adaptive_intro:
title: ' Dobrodošli v prilagodljivi vaji! ' title: ' Dobrodošli v keydr! '
how_it_works: 'Kako delujejo prilagodljive vaje:' how_it_works: 'Kako delujejo prilagodljive vaje:'
desc_start: 'Začnete z majhnim naborom najpogostejših odkljenjenih črk.' description: 'Začnete z majhnim naborom najpogostejših odkljenjenih črk. Vaja ustvarja samo besede, ki uporabljajo te črke. Ko jih tipkate samozavestno, se nove tipke postopoma odklenejo, dokler ne obvladate celotne tipkovnice.'
desc_progress: 'Ko jih tipkate samozavestno, se nove tipke postopoma'
desc_expand: 'odklenejo, dokler ne obvladate celotne tipkovnice.'
target_wpm_label: 'Ciljni WPM:' target_wpm_label: 'Ciljni WPM:'
target_wpm_desc: 'To vpliva na hitrost odklepanja tipk — višji cilji zahtevajo' target_wpm_desc: 'To vpliva na hitrost odklepanja tipk — višji cilji zahtevajo hitrejše tipkanje. 35 WPM je dobro izhodišče, če niste prepričani. To lahko vedno spremenite kasneje v nastavitvah.'
target_wpm_default: 'hitrejše tipkanje. 35 WPM je dobro izhodišče, če niste prepričani.' hint_adjust: 'Prilagodi WPM'
hint: '[←→] Prilagodi WPM [Enter/Space] Začni vajo' hint_start: 'Začni vajo'
hint_back: 'Glavni meni'
# Raziskovalec tipkovnice # Raziskovalec tipkovnice
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Intro-oeverlagg foer adaptiv oevning # Intro-oeverlagg foer adaptiv oevning
adaptive_intro: adaptive_intro:
title: ' Vaelkommen till adaptiv oevning! ' title: ' Vaelkommen till keydr! '
how_it_works: 'Hur adaptiva oevningar fungerar:' how_it_works: 'Hur adaptiva oevningar fungerar:'
desc_start: 'Du boerjar med en liten uppsaettning av de vanligaste uplaasta bokstaeverna.' description: 'Du boerjar med en liten uppsaettning av de vanligaste uplaasta bokstaeverna. Oevningen genererar bara ord som anvaender dessa bokstaever. Naer du skriver dem med saekerhet laases nya tangenter gradvis upp tills du behaerskar hela tangentbordet.'
desc_progress: 'Naer du skriver dem med saekerhtet laases nya tangenter gradvis upp'
desc_expand: 'tills du behaerskar hela tangentbordet.'
target_wpm_label: 'Maal-WPM:' target_wpm_label: 'Maal-WPM:'
target_wpm_desc: 'Detta paaverkar hur snabbt tangenter laases upp — hoegre maal kraever' target_wpm_desc: 'Detta paaverkar hur snabbt tangenter laases upp — hoegre maal kraever snabbare skrivande. 35 WPM aer en bra startpunkt om du aer osaeker. Du kan alltid aendra detta senare i installningarna.'
target_wpm_default: 'snabbare skrivande. 35 WPM aer en bra startpunkt om du aer osaeker.' hint_adjust: 'Justera WPM'
hint: '[←→] Justera WPM [Enter/Space] Boerja oeva' hint_start: 'Starta oevning'
hint_back: 'Huvudmeny'
# Keyboard explorer # Keyboard explorer
keyboard: keyboard:

View File

@@ -342,15 +342,14 @@ milestones:
# Uyarlanır alıştırma giriş katmanı # Uyarlanır alıştırma giriş katmanı
adaptive_intro: adaptive_intro:
title: ' Uyarlanır Alıştırmaya HGeldiniz! ' title: ' keydr''e hgeldiniz! '
how_it_works: 'Uyarlanır alıştırmalar nasıl çalışır:' how_it_works: 'Uyarlanır alıştırmalar nasıl çalışır:'
desc_start: 'En yaygın harflerin küçük bir kümesiyle başlarsınız.' description: 'En yaygın harflerin küçük bir kümesiyle başlarsınız. Alıştırma yalnızca bu harfleri kullanan kelimeler üretir. Onları güvenle yazdıkça, tam klavyeye hakim olana kadar yeni tuşlar kademeli olarak açılır.'
desc_progress: 'Onları güvenle yazdıkça, yeni tuşlar kademeli olarak'
desc_expand: 'tam klavyeye hakim olana kadar açılır.'
target_wpm_label: 'Hedef WPM:' target_wpm_label: 'Hedef WPM:'
target_wpm_desc: 'Bu, tuşların ne kadar hızlıılacağını etkiler — daha yüksek hedefler gerektirir' target_wpm_desc: 'Bu, tuşların ne kadar hızlıılacağını etkiler — daha yüksek hedefler daha hızlı yazma gerektirir. Emin değilseniz 35 WPM iyi bir başlangıç noktasıdır. Bunu daha sonra ayarlardan her zaman değiştirebilirsiniz.'
target_wpm_default: 'daha hızlı yazma. Emin değilseniz 35 WPM iyi bir başlangıç noktasıdır.' hint_adjust: 'WPM Ayarla'
hint: '[←→] WPM Ayarla [Enter/Space] Alıştırmaya başla' hint_start: 'Alıştırmaya başla'
hint_back: 'Ana menü'
# Klavye gezgini # Klavye gezgini
keyboard: keyboard:

View File

@@ -614,7 +614,11 @@ impl App {
// Rebuild n-gram stats from drill history // Rebuild n-gram stats from drill history
app.rebuild_ngram_stats(); app.rebuild_ngram_stats();
if !app.config.adaptive_intro_done {
app.show_adaptive_intro = true;
} else {
app.start_drill(); app.start_drill();
}
app app
} }

View File

@@ -31,7 +31,7 @@ use ratatui::backend::CrosstermBackend;
use ratatui::layout::{Constraint, Direction, Layout, Rect}; use ratatui::layout::{Constraint, Direction, Layout, Rect};
use ratatui::style::{Modifier, Style}; use ratatui::style::{Modifier, Style};
use ratatui::text::{Line, Span}; use ratatui::text::{Line, Span};
use ratatui::widgets::{Block, Paragraph, Widget, Wrap}; use ratatui::widgets::{Block, Padding, Paragraph, Widget, Wrap};
use app::{App, AppScreen, DrillMode, MilestoneKind, SettingItem, StatusKind}; use app::{App, AppScreen, DrillMode, MilestoneKind, SettingItem, StatusKind};
use i18n::t; use i18n::t;
@@ -336,6 +336,12 @@ fn handle_key(app: &mut App, key: KeyEvent) {
app.key_stats.target_cpm = app.config.target_cpm(); app.key_stats.target_cpm = app.config.target_cpm();
app.ranked_key_stats.target_cpm = app.config.target_cpm(); app.ranked_key_stats.target_cpm = app.config.target_cpm();
} }
KeyCode::Esc | KeyCode::Char('q') => {
app.show_adaptive_intro = false;
app.config.adaptive_intro_done = true;
let _ = app.config.save();
app.go_to_menu();
}
_ => { _ => {
app.show_adaptive_intro = false; app.show_adaptive_intro = false;
app.config.adaptive_intro_done = true; app.config.adaptive_intro_done = true;
@@ -3819,30 +3825,46 @@ fn render_adaptive_intro_overlay(frame: &mut ratatui::Frame, app: &App) {
let block = Block::bordered() let block = Block::bordered()
.title(title_t.as_ref()) .title(title_t.as_ref())
.border_style(Style::default().fg(colors.accent())) .border_style(Style::default().fg(colors.accent()))
.style(Style::default().bg(colors.bg())); .style(Style::default().bg(colors.bg()))
.padding(Padding::horizontal(2));
let inner = block.inner(overlay_area); let inner = block.inner(overlay_area);
block.render(overlay_area, frame.buffer_mut()); block.render(overlay_area, frame.buffer_mut());
let hint_h_back = ui::hint::hint(ui::hint::K_Q_ESC, t!("adaptive_intro.hint_back").as_ref());
let hint_h_adjust = ui::hint::hint(ui::hint::K_ARROW_LR, t!("adaptive_intro.hint_adjust").as_ref());
let hint_h_start = ui::hint::hint(ui::hint::K_ENTER_SPACE, t!("adaptive_intro.hint_start").as_ref());
let hints: Vec<&str> = vec![
hint_h_adjust.as_str(),
hint_h_start.as_str(),
hint_h_back.as_str(),
];
let hint_lines_text = pack_hint_lines(&hints, inner.width as usize);
let footer_height = hint_lines_text.len().max(1) as u16;
let (content_area, footer_area) = if inner.height > footer_height {
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([Constraint::Min(1), Constraint::Length(footer_height)])
.split(inner);
(chunks[0], Some(chunks[1]))
} else {
(inner, None)
};
let mut lines: Vec<Line> = Vec::new(); let mut lines: Vec<Line> = Vec::new();
lines.push(Line::from("")); lines.push(Line::from(""));
lines.push(Line::from(Span::styled( lines.push(Line::from(Span::styled(
format!(" {}", t!("adaptive_intro.how_it_works")), t!("adaptive_intro.how_it_works").to_string(),
Style::default() Style::default()
.fg(colors.accent()) .fg(colors.accent())
.add_modifier(Modifier::BOLD), .add_modifier(Modifier::BOLD),
))); )));
lines.push(Line::from("")); lines.push(Line::from(""));
for text in [
t!("adaptive_intro.desc_start").to_string(),
t!("adaptive_intro.desc_progress").to_string(),
t!("adaptive_intro.desc_expand").to_string(),
] {
lines.push(Line::from(Span::styled( lines.push(Line::from(Span::styled(
format!(" {text}"), t!("adaptive_intro.description").to_string(),
Style::default().fg(colors.fg()), Style::default().fg(colors.fg()),
))); )));
}
lines.push(Line::from("")); lines.push(Line::from(""));
// Target WPM adjuster // Target WPM adjuster
@@ -3850,7 +3872,7 @@ fn render_adaptive_intro_overlay(frame: &mut ratatui::Frame, app: &App) {
let wpm_value = format!("\u{2190} {} \u{2192}", app.config.target_wpm); let wpm_value = format!("\u{2190} {} \u{2192}", app.config.target_wpm);
lines.push(Line::from(vec![ lines.push(Line::from(vec![
Span::styled( Span::styled(
format!(" {wpm_label} "), format!("{wpm_label} "),
Style::default().fg(colors.fg()).add_modifier(Modifier::BOLD), Style::default().fg(colors.fg()).add_modifier(Modifier::BOLD),
), ),
Span::styled( Span::styled(
@@ -3861,27 +3883,31 @@ fn render_adaptive_intro_overlay(frame: &mut ratatui::Frame, app: &App) {
), ),
])); ]));
lines.push(Line::from("")); lines.push(Line::from(""));
for text in [ lines.push(Line::from(Span::styled(
t!("adaptive_intro.target_wpm_desc").to_string(), t!("adaptive_intro.target_wpm_desc").to_string(),
t!("adaptive_intro.target_wpm_default").to_string(),
] {
lines.push(Line::from(Span::styled(
format!(" {text}"),
Style::default().fg(colors.fg()), Style::default().fg(colors.fg()),
))); )));
}
lines.push(Line::from(""));
// Footer hint
lines.push(Line::from(Span::styled(
format!(" {}", t!("adaptive_intro.hint")),
Style::default().fg(colors.text_pending()),
)));
frame.render_widget( frame.render_widget(
Paragraph::new(lines).wrap(Wrap { trim: false }), Paragraph::new(lines).wrap(Wrap { trim: false }),
inner, content_area,
); );
if let Some(footer) = footer_area {
let footer_lines: Vec<Line> = hint_lines_text
.into_iter()
.map(|line| {
Line::from(Span::styled(
line,
Style::default().fg(colors.text_pending()),
))
})
.collect();
frame.render_widget(
Paragraph::new(footer_lines).wrap(Wrap { trim: false }),
footer,
);
}
} }
fn render_milestone_overlay( fn render_milestone_overlay(

View File

@@ -25,6 +25,7 @@ pub const K_Q: &str = "q";
// ── Universal keys ──────────────────────────────────────────────────────────── // ── Universal keys ────────────────────────────────────────────────────────────
pub const K_ENTER: &str = "Enter"; pub const K_ENTER: &str = "Enter";
pub const K_ENTER_SPACE: &str = "Enter/Space";
pub const K_TAB: &str = "Tab"; pub const K_TAB: &str = "Tab";
pub const K_BACKSPACE: &str = "Backspace"; pub const K_BACKSPACE: &str = "Backspace";
@@ -62,9 +63,6 @@ pub const K_TYPE_BACKSPACE: &str = "Type/Backspace";
pub const K_UD_JK: &str = "↑↓/jk"; pub const K_UD_JK: &str = "↑↓/jk";
pub const K_SCROLL_KEYS: &str = "PgUp/PgDn or Ctrl+U/Ctrl+D"; pub const K_SCROLL_KEYS: &str = "PgUp/PgDn or Ctrl+U/Ctrl+D";
// ── Keyboard explorer ─────────────────────────────────────────────────────────
pub const K_KBD_NAV: &str = "←→↑↓/hjkl/Tab";
/// Assembles a single hint entry: `"[key] label"`. /// Assembles a single hint entry: `"[key] label"`.
/// ///
/// The returned `String` owns its content and can be held alongside other hint /// The returned `String` owns its content and can be held alongside other hint