add language learner project
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:
2026-09-24 17:34:56 +00:00
parent afb1f191df
commit 438623d857
69 changed files with 12669 additions and 4 deletions

View File

@@ -0,0 +1,503 @@
import { lesson, level } from '../../course';
export default level(
'a2',
'A2',
'Elementary',
'Daily routines, the past, shopping, health and comparing things.',
[
lesson({
id: 'nl-dagelijks',
title: 'Mijn dag',
summary: 'Daily routine, separable and reflexive verbs',
notes: `
### Separable verbs
Many verbs have a prefix that **splits off and goes to the end** of the clause in the present and past:
- *opstaan* → *Ik sta om zeven uur **op**.*
- *opbellen* → *Ik bel je morgen **op**.*
- *meenemen* → *Neem je een jas **mee**?*
The stress is on the prefix: **op**staan, **mee**nemen. Common prefixes: *op, af, aan, uit, mee, in, terug, weg, voor*.
### Reflexive verbs
Some verbs need a reflexive pronoun:
| zich wassen | |
|---|---|
| ik was **me** | wij wassen **ons** |
| jij wast **je** | jullie wassen **je** |
| hij/zij wast **zich** | zij wassen **zich** |
| u wast **zich** | |
Common ones: *zich haasten* (hurry), *zich voelen* (feel), *zich vervelen* (be bored), *zich aankleden* (get dressed).
`,
words: `
opstaan | to get up
wakker worden | to wake up
zich wassen | to wash (yourself)
zich aankleden | to get dressed
ontbijten | to have breakfast
vertrekken | to leave
aankomen | to arrive
opbellen | to call (on the phone)
meenemen | to take along
boodschappen doen | to do the groceries
koken | to cook
afwassen | to do the dishes
naar bed gaan | to go to bed
meestal | usually
altijd | always
nooit | never
soms | sometimes
eerst | first
daarna | after that
`,
sentences: `
Ik sta om zeven uur op. | I get up at seven.
Daarna kleed ik me aan. | After that I get dressed.
Hij belt zijn moeder elke dag op. | He calls his mother every day.
De trein komt om negen uur aan. | The train arrives at nine.
Neem je een paraplu mee? | Are you taking an umbrella?
Ik voel me niet lekker. | I don't feel well.
We doen op zaterdag boodschappen. | We do the groceries on Saturday.
Meestal ga ik om elf uur naar bed. | I usually go to bed at eleven.
`,
drills: `
Ik ___ om zeven uur ___. (opstaan) | sta … op | opsta … –; sta … aan; op … sta | The prefix goes to the end.
Jij wast ___. | je | me; zich; ons
Hij voelt ___ niet goed. | zich | hem; je; me
Wij haasten ___. | ons | zich; we; onze
De bus ___ om acht uur ___. (vertrekken) | vertrekt … – | trekt … ver; vertrek … –; vertrekken … – | Ver- is not separable.
Morgen bel ik je ___. | op | aan; uit; mee
`
}),
lesson({
id: 'nl-voltooid',
title: 'Wat heb je gedaan?',
summary: 'The perfect tense: heb gewerkt, ben gegaan',
notes: `
The **perfect** (voltooid tegenwoordige tijd) is the usual way to talk about the past in speech:
**hebben / zijn + past participle** (at the end).
### Regular participles: ge- + stem + t/d
Use **-t** if the stem ends in one of the consonants of **'t kofschip** (t, k, f, s, ch, p); otherwise **-d**.
| infinitive | stem | participle |
|---|---|---|
| werken | werk | gewerk**t** |
| wonen | woon | gewoon**d** |
| fietsen | fiets | gefiets**t** |
| leven | leef (from **v**!) | geleef**d** |
| reizen | reis (from **z**!) | gereis**d** |
Verbs starting with **be-, ge-, her-, ver-, ont-, er-** get no extra ge-: *betaald*, *vertelt → verteld*.
### Strong (irregular) verbs
Often end in **-en**: *gegeten, gedronken, gezien, geschreven, gelezen*. Learn them in the verb drill.
### Hebben or zijn?
Most verbs use **hebben**. **Zijn** is used for a change of place or state: *ik ben gegaan, gekomen, gebleven, geworden, gestorven*.
With movement verbs (lopen, fietsen, rijden) use **zijn** when a destination is given: *Ik ben naar huis gefietst* but *Ik heb veel gefietst*.
Separable verbs put ge- in the middle: *opgestaan*, *opgebeld*, *meegenomen*.
`,
words: `
gisteren | yesterday
vorige week | last week
vorig jaar | last year
al | already
nog niet | not yet
net | just
ooit | ever
gewerkt | worked
gegeten | eaten
gedronken | drunk
gezien | seen
gegaan | gone
gekomen | come (participle)
geweest | been
gehad | had
gedaan | done
gekocht | bought
gelezen | read (participle)
geschreven | written
`,
sentences: `
Wat heb je gisteren gedaan? | What did you do yesterday?
Ik heb de hele dag gewerkt. | I worked all day.
We zijn naar Rotterdam gegaan. | We went to Rotterdam.
Heb je die film al gezien? | Have you seen that film yet?
Ik ben nog nooit in België geweest. | I have never been to Belgium.
Ze heeft een nieuwe fiets gekocht. | She bought a new bike.
Hij is om zeven uur opgestaan. | He got up at seven.
Hebben jullie al gegeten? | Have you already eaten?
`,
drills: `
Ik heb hard ___. (werken) | gewerkt | gewerkd; gewerken; werkt | k is in 't kofschip: -t.
Wij hebben in Utrecht ___. (wonen) | gewoond | gewoont; gewonen; gewoon
Hij heeft veel ___. (reizen) | gereisd | gereist; gereizd; gereisen | The stem comes from reiz-: z is not in 't kofschip.
Ik ___ naar huis gegaan. | ben | heb; heeft; is
Zij ___ een boek gelezen. (she) | heeft | is; hebt; heb
Ik heb de rekening ___. (betalen) | betaald | gebetaald; betaalt; gebetaalt | Be- verbs get no ge-.
Ze zijn gisteren ___. (aankomen) | aangekomen | geaankomen; aankomen; aangekomt
We hebben pizza ___. (eten) | gegeten | geëet; geëten; geeten
`
}),
lesson({
id: 'nl-verleden',
title: 'Vroeger',
summary: 'The simple past: werkte, woonde, ging',
notes: `
The **simple past** (onvoltooid verleden tijd) is used in stories and for how things were.
### Regular verbs: stem + te(n) / de(n)
The same **'t kofschip** rule: stem ends in t, k, f, s, ch, p → **-te**, otherwise **-de**.
| | werken | wonen |
|---|---|---|
| ik / jij / hij | werk**te** | woon**de** |
| wij / jullie / zij | werk**ten** | woon**den** |
### Strong verbs change their vowel
| infinitive | singular | plural |
|---|---|---|
| zijn | was | waren |
| hebben | had | hadden |
| gaan | ging | gingen |
| komen | kwam | kwamen |
| zien | zag | zagen |
| eten | at | aten |
| drinken | dronk | dronken |
| lezen | las | lazen |
| schrijven | schreef | schreven |
| doen | deed | deden |
**Vroeger** (in the past, used to): *Vroeger woonde ik in Gent.* — I used to live in Ghent.
`,
words: `
vroeger | in the past; used to
toen | then; at that time
was | was
waren | were
had | had
ging | went
kwam | came
zag | saw
at | ate
dronk | drank
woonde | lived
werkte | worked
speelde | played
deed | did
het verhaal | the story
de jeugd | the youth; childhood
`,
sentences: `
Vroeger woonde ik in Gent. | I used to live in Ghent.
Toen ik klein was, speelde ik veel buiten. | When I was little, I played outside a lot.
Het was gisteren erg koud. | It was very cold yesterday.
We gingen elk jaar naar Frankrijk. | We went to France every year.
Hij kwam te laat op zijn werk. | He was late for work.
Ze dronken koffie en praatten lang. | They drank coffee and talked for a long time.
Ik had geen tijd. | I had no time.
`,
drills: `
Ik ___ vroeger in een fabriek. (werken) | werkte | werkde; werkten; werkt
Wij ___ in Leiden. (wonen) | woonden | woonde; woonten; wonden
Hij ___ elke dag naar school. (gaan) | ging | gaat; gingen; gaande
Jullie ___ te laat. (komen) | kwamen | kwam; komden; komten
Ik ___ een brief. (schrijven) | schreef | schrijfde; schreven; schrijfte
Zij ___ de hele dag. (dansen, she) | danste | dansde; dansten; dans
Het ___ een mooie dag. (zijn) | was | waren; is geweest; wees
`
}),
lesson({
id: 'nl-winkelen',
title: 'Winkelen',
summary: 'Shopping, clothes, plurals and diminutives',
notes: `
### Plurals
- Most nouns: **-en**: *boek → boeken*, *fiets → fietsen*.
- Nouns ending in unstressed **-el, -em, -en, -er, -je** and many loanwords: **-s**: *tafel → tafels*, *meisje → meisjes*.
- Nouns ending in a vowel: **'s**: *auto → auto's*, *foto → foto's*.
Spelling changes keep the vowel sound: *boom → bomen* (long), *bus → bussen* (short), *huis → huizen*, *brief → brieven*.
Some are irregular: *kind → kinderen*, *ei → eieren*, *stad → steden*.
### Diminutives (-je)
Dutch uses them constantly, also for things that aren't small (*een biertje*, *een momentje*). They are **always het**.
- Most words: **-je**: *huisje*, *boekje*.
- After a vowel or -l, -n, -r after long vowel: **-tje**: *autootje*, *stoeltje*, *treintje*.
- After -m: **-pje**: *boompje*.
- After a short vowel + l, m, n, r, ng: **-etje**: *balletje*, *ringetje*.
`,
words: `
kopen | to buy
betalen | to pay
kosten | to cost
de prijs | the price
de korting | the discount
de maat | the size
passen | to try on; to fit
de kassa | the checkout
pinnen | to pay by card
contant | cash
de broek | the trousers
het shirt | the T-shirt
de jas | the coat
de schoenen | the shoes
de jurk | the dress
de tas | the bag
te groot | too big
te klein | too small
`,
sentences: `
Hoeveel kost deze jas? | How much does this coat cost?
Mag ik dit passen? | May I try this on?
Heeft u dit in een grotere maat? | Do you have this in a bigger size?
De broek is te klein. | The trousers are too small.
Kan ik hier pinnen? | Can I pay by card here?
Ik betaal contant. | I'll pay cash.
Ik kijk alleen even rond. | I'm just looking around.
Wil je een tasje? | Would you like a bag?
`,
drills: `
één boek, twee ___ | boeken | boeks; boekken; boekes
één tafel, twee ___ | tafels | tafelen; tafellen; tafeles
één auto, twee ___ | auto's | autos; autoën; auten
één bus, twee ___ | bussen | busen; busses; buss
één huis, twee ___ | huizen | huisen; huises; huizes
een klein huis → een ___ | huisje | huistje; huizetje; huisetje
een kleine bal → een ___ | balletje | baltje; balje; balltje
___ boompje | het | de | Diminutives are always het.
`
}),
lesson({
id: 'nl-weer',
title: 'Het weer',
summary: 'Weather, seasons and talking about it',
notes: `
The Dutch talk about the weather a lot. Weather verbs use **het**: *het regent* (it's raining), *het sneeuwt*, *het waait* (it's windy), *het vriest*.
### Seasons
*de lente* (spring), *de zomer*, *de herfst* (autumn), *de winter*. **In** de zomer = in summer.
### Adverbs of degree
*heel* / *erg* (very), *best* (quite), *een beetje* (a bit), *te* (too), *veel te* (far too).
A famous expression: **Het regent pijpenstelen** — it's raining cats and dogs (literally "pipe stems").
`,
words: `
het weer | the weather
de zon | the sun
de regen | the rain
de wind | the wind
de sneeuw | the snow
de wolk | the cloud
regenen | to rain
waaien | to blow (wind)
warm | warm
koud | cold
nat | wet
droog | dry
bewolkt | cloudy
de lente | spring
de zomer | summer
de herfst | autumn
de winter | winter
de paraplu | the umbrella
`,
sentences: `
Wat voor weer is het? | What's the weather like?
Het regent weer. | It's raining again.
Het waait hard vandaag. | It's very windy today.
Morgen wordt het zonnig. | Tomorrow it will be sunny.
In de winter is het koud. | It's cold in winter.
Het is een beetje bewolkt. | It's a bit cloudy.
Neem een paraplu mee! | Take an umbrella!
`,
drills: `
___ regent. | Het | Er; De; Hij
It's windy: het ___ | waait | windt; blaast; wind
In de ___ vallen de bladeren. (autumn) | herfst | lente; zomer; winter
Het is ___ koud. (far too) | veel te | te veel; heel te; zeer te
`
}),
lesson({
id: 'nl-gezondheid',
title: 'Bij de dokter',
summary: 'Body, health and modal verbs',
notes: `
### Modal verbs
| | kunnen | willen | mogen | moeten |
|---|---|---|---|---|
| ik | kan | wil | mag | moet |
| jij | kunt / kan | wilt / wil | mag | moet |
| hij | kan | wil | mag | moet |
| wij | kunnen | willen | mogen | moeten |
The second verb goes **to the end as an infinitive**: *Ik moet naar de dokter **gaan**.* Often the *gaan* is dropped: *Ik moet naar de dokter.*
- **kunnen** — can, be able to
- **willen** — want
- **mogen** — may, be allowed to (also: to like a person — *ik mag hem wel*)
- **moeten** — must, have to. *Niet hoeven* = don't have to: *Je hoeft niet te komen.*
**Pijn** (pain): *Ik heb hoofdpijn, buikpijn, keelpijn.* — or *Mijn hoofd doet pijn.*
`,
words: `
het hoofd | the head
de buik | the belly
de keel | the throat
de rug | the back
de arm | the arm
het been | the leg
de voet | the foot
de hand | the hand
het oog | the eye
de pijn | the pain
ziek | ill
gezond | healthy
de huisarts | the GP
de apotheek | the pharmacy
het medicijn | the medicine
de afspraak | the appointment
beter worden | to get better
`,
sentences: `
Ik heb hoofdpijn. | I have a headache.
Mijn rug doet pijn. | My back hurts.
Ik moet naar de huisarts. | I have to go to the doctor.
Kan ik een afspraak maken? | Can I make an appointment?
U mag niet roken. | You're not allowed to smoke.
Je hoeft niet te werken. | You don't have to work.
Wil je iets drinken? | Do you want something to drink?
Beterschap! | Get well soon!
`,
drills: `
Ik ___ niet komen, ik ben ziek. (kunnen) | kan | kun; kunt; kunnen
Hij ___ een glas water. (willen) | wil | wilt; willen; wilde
Wij ___ morgen vroeg opstaan. (moeten) | moeten | moet; moesten; moeten te
Je ___ niet te komen. (don't have to) | hoeft | moet; mag; kan | Niet hoeven + te = not have to.
Ik moet naar de dokter ___. | gaan | ga; gaat; te gaan | The infinitive goes to the end.
Mijn buik doet ___. | pijn | ziek; slecht; pijnlijk
`
}),
lesson({
id: 'nl-thuis',
title: 'Thuis',
summary: 'The house, furniture and prepositions of place',
notes: `
### Prepositions of place
| | |
|---|---|
| in | in |
| op | on (touching the surface) |
| aan | on (a wall), at (the table) |
| onder | under |
| boven | above |
| naast | next to |
| tussen | between |
| voor | in front of |
| achter | behind |
| bij | at, near |
Dutch often uses a position verb instead of "is": **staan** (upright), **liggen** (flat), **zitten** (inside something), **hangen**:
*Het boek ligt op tafel. De fles staat in de koelkast. Het geld zit in mijn tas. De lamp hangt boven de tafel.*
`,
words: `
het huis | the house
het appartement | the apartment
de kamer | the room
de woonkamer | the living room
de slaapkamer | the bedroom
de keuken | the kitchen
de badkamer | the bathroom
de wc | the toilet
de tuin | the garden
de trap | the stairs
de muur | the wall
de vloer | the floor
de bank | the couch
de kast | the cupboard
de koelkast | the fridge
het bed | the bed
het raam | the window
de deur | the door
`,
sentences: `
Het boek ligt op tafel. | The book is on the table.
De melk staat in de koelkast. | The milk is in the fridge.
De kat zit onder het bed. | The cat is under the bed.
Er hangt een foto aan de muur. | There's a photo on the wall.
De badkamer is boven. | The bathroom is upstairs.
De sleutels zitten in mijn jas. | The keys are in my coat.
De bank staat tussen de kast en het raam. | The couch is between the cupboard and the window.
`,
drills: `
De fles ___ op tafel. (upright) | staat | ligt; zit; hangt
De krant ___ op de bank. (flat) | ligt | staat; hangt; zit
Het schilderij hangt ___ de muur. | aan | op; in; bij
Het geld ___ in mijn portemonnee. | zit | ligt; staat; hangt | Zitten = inside something.
De kat slaapt ___ het bed. (under) | onder | boven; tussen; achter
`
}),
lesson({
id: 'nl-vergelijken',
title: 'Vergelijken',
summary: 'Comparatives and superlatives',
notes: `
| | comparative (-er) | superlative (-st) |
|---|---|---|
| groot | groter | grootst |
| klein | kleiner | kleinst |
| mooi | mooier | mooist |
| duur | **duurder** | duurst |
| goed | **beter** | **best** |
| veel | **meer** | **meest** |
| weinig | **minder** | **minst** |
| graag | **liever** | **liefst** |
Adjectives ending in **-r** add **-der**: *duurder, lekkerder, zwaarder*.
**Dan** = than: *Ik ben ouder dan jij.* **Net zo … als** = as … as: *Hij is net zo lang als ik.*
The superlative after the verb: *het grootst*: *Deze kamer is het grootst.* Before a noun: *de grootste kamer*.
**Graag** means "gladly": *Ik drink graag thee* (I like drinking tea), *liever* (prefer), *het liefst* (like most of all).
`,
words: `
groter | bigger
kleiner | smaller
beter | better
best | best
meer | more
minder | less
duurder | more expensive
liever | rather; prefer
dan | than
net zo … als | as … as
ouder | older
jonger | younger
sneller | faster
langzamer | slower
`,
sentences: `
Ik ben ouder dan mijn zus. | I am older than my sister.
Amsterdam is groter dan Utrecht. | Amsterdam is bigger than Utrecht.
Dit is de beste pizza van de stad. | This is the best pizza in town.
De trein is sneller dan de bus. | The train is faster than the bus.
Ik drink liever thee dan koffie. | I prefer tea to coffee.
Hij is net zo lang als ik. | He is as tall as me.
Wat vind je het leukst? | What do you like most?
`,
drills: `
Deze jas is ___ dan die. (duur) | duurder | duurer; meer duur; duurst | Adjectives in -r add -der.
Jouw idee is ___ dan mijn idee. (goed) | beter | goeder; best; meer goed
Ik drink ___ water dan jij. (veel) | meer | veeler; meest; veel
Dit is de ___ film van het jaar. (goed) | beste | betere; goedste; best
Hij is net zo oud ___ ik. | als | dan; zo; wie
Ik ben groter ___ jij. | dan | als; of; zo
`
})
]
);