add language learner project
Some checks failed
Test and deploy staging / staging (push) Has been cancelled
Some checks failed
Test and deploy staging / staging (push) Has been cancelled
Dutch and Korean (explained in English) and English (explained in Dutch) from A1 to C1, with a Hangul level for Korean. Lessons with notes, words and sentences generate multiple-choice, typing, sentence building, cloze, listening and matching exercises. Endless challenges: a seeded daily challenge, sprint, survival, mixed practice, level tests, spaced-repetition reviews and generated drills (numbers, clock times, de/het, plurals, Dutch and Korean conjugation, particles, Hangul reading, irregular verbs). Progress is stored in localStorage with export/import. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
26
README.md
Executable file → Normal file
26
README.md
Executable file → Normal file
@@ -6,3 +6,29 @@ This is my personal website, including:
|
||||
- About me
|
||||
- Blog posts + comments
|
||||
- Projects like Animaldex, CatchEmAll
|
||||
|
||||
## Language learner
|
||||
|
||||
`/projects/language-learner` teaches Dutch and Korean (explained in English) and
|
||||
English (explained in Dutch), from A1 to C1. Korean starts with a Hangul level.
|
||||
It runs entirely in the browser: no database tables, migrations or API keys.
|
||||
|
||||
- Course content lives in `src/lib/language-learner/courses/<lang>/<level>.ts` as
|
||||
compact `target | translation | note` lines, plus markdown notes and
|
||||
multiple-choice grammar questions (`prompt | answer | wrong; wrong | explanation`).
|
||||
Exercises (choice, typing, sentence building, fill-in-the-blank, listening,
|
||||
matching) are generated from that data. `content.test.ts` validates every lesson.
|
||||
- Endless drills are generated by code in `src/lib/language-learner/drills/`:
|
||||
number words, Dutch/English clock times, de/het, plurals, Dutch and Korean
|
||||
conjugation (a rule-based Korean conjugator handling the ㅂ/ㄷ/르/ㅅ/ㅎ
|
||||
irregulars), Korean particles and counters, Hangul reading, English irregular
|
||||
verbs, comparatives and a/an.
|
||||
- Challenges: a seeded daily challenge (first score of the day counts), 60-second
|
||||
sprint, survival with three lives, mixed practice, level tests that mark a level
|
||||
as done at 80%, and spaced-repetition reviews (simplified SM-2).
|
||||
- Audio uses the browser's speech synthesis, so listening exercises appear only
|
||||
when the device has a voice for the language. Romanization of Korean is
|
||||
approximate Revised Romanization.
|
||||
- Progress, streaks and settings are stored in `localStorage`
|
||||
(`language-learner-v1`), per browser. Export/import on the overview page moves
|
||||
them between devices.
|
||||
|
||||
Reference in New Issue
Block a user