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:
334
src/lib/language-learner/courses/ko/hangul.ts
Normal file
334
src/lib/language-learner/courses/ko/hangul.ts
Normal file
@@ -0,0 +1,334 @@
|
||||
import { lesson, level } from '../../course';
|
||||
|
||||
export default level(
|
||||
'hangul',
|
||||
'Hangul',
|
||||
'The alphabet',
|
||||
'Learn to read Korean in five short lessons. Everything after this is written in Hangul.',
|
||||
[
|
||||
lesson({
|
||||
id: 'ko-vowels',
|
||||
title: 'Basic vowels',
|
||||
summary: 'ㅏ ㅓ ㅗ ㅜ ㅡ ㅣ and how syllables are built',
|
||||
notes: `
|
||||
Hangul was invented in 1443 by King Sejong so that anyone could learn to read. It has 24 basic letters, grouped into **syllable blocks**.
|
||||
|
||||
Every block starts with a consonant. If a syllable starts with a vowel sound, it uses the silent **ㅇ** as a placeholder: **아** = ㅇ + ㅏ = "a".
|
||||
|
||||
| letter | sound | block |
|
||||
|---|---|---|
|
||||
| ㅏ | a (father) | 아 |
|
||||
| ㅓ | eo (like "u" in "up") | 어 |
|
||||
| ㅗ | o (more rounded) | 오 |
|
||||
| ㅜ | u (food) | 우 |
|
||||
| ㅡ | eu (unrounded "oo", lips flat) | 으 |
|
||||
| ㅣ | i (see) | 이 |
|
||||
|
||||
**Vertical** vowels (ㅏ ㅓ ㅣ) go to the **right** of the consonant: 아, 어, 이.
|
||||
**Horizontal** vowels (ㅗ ㅜ ㅡ) go **below** it: 오, 우, 으.
|
||||
`,
|
||||
script: `
|
||||
ㅏ | a
|
||||
ㅓ | eo | like the u in "up"
|
||||
ㅗ | o
|
||||
ㅜ | u
|
||||
ㅡ | eu | lips spread, like a flat "oo"
|
||||
ㅣ | i
|
||||
아 | a
|
||||
어 | eo
|
||||
오 | o
|
||||
우 | u
|
||||
으 | eu
|
||||
이 | i
|
||||
`,
|
||||
words: `
|
||||
아이 | child
|
||||
오이 | cucumber
|
||||
이 | two; tooth
|
||||
오 | five
|
||||
`,
|
||||
drills: `
|
||||
Which vowel goes below the consonant? | ㅗ | ㅏ; ㅓ; ㅣ | Horizontal vowels go below.
|
||||
What does ㅇ sound like at the start of a syllable? | nothing (silent) | ng; o; h
|
||||
How is 어 read? | eo | a; o; u
|
||||
How is 으 read? | eu | u; o; i
|
||||
`
|
||||
}),
|
||||
lesson({
|
||||
id: 'ko-consonants',
|
||||
title: 'Basic consonants',
|
||||
summary: 'ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅎ',
|
||||
notes: `
|
||||
The consonant shapes show the mouth: **ㄱ** is the tongue touching the back of the mouth, **ㄴ** the tongue on the ridge behind the teeth, **ㅁ** the closed lips.
|
||||
|
||||
| letter | sound | example |
|
||||
|---|---|---|
|
||||
| ㄱ | g / k | 가 ga |
|
||||
| ㄴ | n | 나 na |
|
||||
| ㄷ | d / t | 다 da |
|
||||
| ㄹ | r / l | 라 ra |
|
||||
| ㅁ | m | 마 ma |
|
||||
| ㅂ | b / p | 바 ba |
|
||||
| ㅅ | s (sh before ㅣ) | 사 sa, 시 si |
|
||||
| ㅇ | silent / ng | 아 a |
|
||||
| ㅈ | j | 자 ja |
|
||||
| ㅎ | h | 하 ha |
|
||||
|
||||
ㄱ ㄷ ㅂ ㅈ sound softer than English k t p ch: somewhere between g/k, d/t, b/p.
|
||||
ㄹ is a quick flap between r and l, like the "tt" in American "butter".
|
||||
`,
|
||||
script: `
|
||||
ㄱ | g; k
|
||||
ㄴ | n
|
||||
ㄷ | d; t
|
||||
ㄹ | r; l
|
||||
ㅁ | m
|
||||
ㅂ | b; p
|
||||
ㅅ | s
|
||||
ㅈ | j
|
||||
ㅎ | h
|
||||
가 | ga
|
||||
나 | na
|
||||
다 | da
|
||||
라 | ra
|
||||
마 | ma
|
||||
바 | ba
|
||||
사 | sa
|
||||
자 | ja
|
||||
하 | ha
|
||||
고 | go
|
||||
두 | du
|
||||
미 | mi
|
||||
`,
|
||||
words: `
|
||||
나라 | country
|
||||
나무 | tree
|
||||
바다 | sea
|
||||
모자 | hat
|
||||
어머니 | mother
|
||||
아버지 | father
|
||||
가수 | singer
|
||||
하나 | one
|
||||
두부 | tofu
|
||||
지도 | map
|
||||
누나 | older sister (said by a male)
|
||||
라디오 | radio
|
||||
`,
|
||||
sentences: `
|
||||
어머니 아버지 | mother and father
|
||||
`,
|
||||
drills: `
|
||||
How is 나무 read? | namu | nabu; lamu; namo
|
||||
How is 바다 read? | bada | pata; bara; mada
|
||||
Which letter is "m"? | ㅁ | ㅂ; ㄴ; ㅇ
|
||||
Which letter is the r/l sound? | ㄹ | ㄷ; ㄴ; ㅎ
|
||||
`
|
||||
}),
|
||||
lesson({
|
||||
id: 'ko-strong-consonants',
|
||||
title: 'Aspirated and tense consonants',
|
||||
summary: 'ㅋ ㅌ ㅍ ㅊ and ㄲ ㄸ ㅃ ㅆ ㅉ',
|
||||
notes: `
|
||||
Adding a stroke makes a consonant **aspirated** (with a puff of air). Doubling it makes it **tense** (no air, tight throat).
|
||||
|
||||
| plain | aspirated | tense |
|
||||
|---|---|---|
|
||||
| ㄱ g | ㅋ k | ㄲ kk |
|
||||
| ㄷ d | ㅌ t | ㄸ tt |
|
||||
| ㅂ b | ㅍ p | ㅃ pp |
|
||||
| ㅈ j | ㅊ ch | ㅉ jj |
|
||||
| ㅅ s | | ㅆ ss |
|
||||
|
||||
Hold a hand in front of your mouth: **카** should give a strong puff, **까** almost none (like the k in "skate").
|
||||
|
||||
These three-way contrasts change meaning: **불** (fire), **풀** (grass), **뿔** (horn).
|
||||
`,
|
||||
script: `
|
||||
ㅋ | k
|
||||
ㅌ | t
|
||||
ㅍ | p
|
||||
ㅊ | ch
|
||||
ㄲ | kk
|
||||
ㄸ | tt
|
||||
ㅃ | pp
|
||||
ㅆ | ss
|
||||
ㅉ | jj
|
||||
카 | ka
|
||||
타 | ta
|
||||
파 | pa
|
||||
차 | cha
|
||||
까 | kka
|
||||
따 | tta
|
||||
빠 | ppa
|
||||
싸 | ssa
|
||||
짜 | jja
|
||||
`,
|
||||
words: `
|
||||
커피 | coffee
|
||||
차 | tea; car
|
||||
토마토 | tomato
|
||||
피자 | pizza
|
||||
아빠 | dad
|
||||
오빠 | older brother (said by a female)
|
||||
코 | nose
|
||||
치마 | skirt
|
||||
토끼 | rabbit
|
||||
기차 | train
|
||||
머리 | head; hair
|
||||
아저씨 | mister; middle-aged man
|
||||
`,
|
||||
sentences: `
|
||||
커피 주세요 | Coffee, please.
|
||||
`,
|
||||
drills: `
|
||||
Which one is aspirated (with a puff of air)? | ㅋ | ㄲ; ㄱ; ㅇ
|
||||
Which one is tense? | ㄸ | ㅌ; ㄷ; ㄹ
|
||||
How is 아빠 read? | appa | aba; apa; abba
|
||||
How is 치마 read? | chima | jima; kima; tima
|
||||
How is 토끼 read? | tokki | dogi; toki; tokgi
|
||||
`
|
||||
}),
|
||||
lesson({
|
||||
id: 'ko-compound-vowels',
|
||||
title: 'More vowels',
|
||||
summary: 'ㅐ ㅔ, the y-vowels and the w-vowels',
|
||||
notes: `
|
||||
**One extra stroke adds a "y"**: ㅏ → ㅑ (ya), ㅓ → ㅕ (yeo), ㅗ → ㅛ (yo), ㅜ → ㅠ (yu).
|
||||
|
||||
**ㅐ (ae)** and **ㅔ (e)** sound almost the same today (both like "e" in "bed"). ㅒ (yae) and ㅖ (ye) likewise.
|
||||
|
||||
**W-vowels** combine ㅗ or ㅜ with another vowel:
|
||||
| | | |
|
||||
|---|---|---|
|
||||
| ㅘ = ㅗ+ㅏ | wa | 와 |
|
||||
| ㅙ = ㅗ+ㅐ | wae | 왜 |
|
||||
| ㅚ = ㅗ+ㅣ | oe (said "we") | 외 |
|
||||
| ㅝ = ㅜ+ㅓ | wo | 워 |
|
||||
| ㅞ = ㅜ+ㅔ | we | 웨 |
|
||||
| ㅟ = ㅜ+ㅣ | wi | 위 |
|
||||
| ㅢ = ㅡ+ㅣ | ui | 의 |
|
||||
|
||||
**ㅢ** is read "ui" at the start of a word, "i" after a consonant (희 = hi), and "e" as the possessive particle 의.
|
||||
`,
|
||||
script: `
|
||||
ㅐ | ae
|
||||
ㅔ | e
|
||||
ㅑ | ya
|
||||
ㅕ | yeo
|
||||
ㅛ | yo
|
||||
ㅠ | yu
|
||||
ㅘ | wa
|
||||
ㅝ | wo
|
||||
ㅟ | wi
|
||||
ㅢ | ui
|
||||
ㅚ | oe
|
||||
ㅙ | wae
|
||||
애 | ae
|
||||
에 | e
|
||||
야 | ya
|
||||
여 | yeo
|
||||
요 | yo
|
||||
유 | yu
|
||||
와 | wa
|
||||
워 | wo
|
||||
위 | wi
|
||||
의 | ui
|
||||
왜 | wae
|
||||
`,
|
||||
words: `
|
||||
우유 | milk
|
||||
여우 | fox
|
||||
요리 | cooking
|
||||
개 | dog
|
||||
게 | crab
|
||||
사과 | apple
|
||||
돼지 | pig
|
||||
의자 | chair
|
||||
회사 | company
|
||||
뭐 | what
|
||||
귀 | ear
|
||||
야구 | baseball
|
||||
왜 | why
|
||||
세계 | world
|
||||
`,
|
||||
sentences: `
|
||||
우유 주세요 | Milk, please.
|
||||
이게 뭐예요? | What is this?
|
||||
`,
|
||||
drills: `
|
||||
Adding a stroke to ㅏ gives: | ㅑ | ㅐ; ㅓ; ㅘ
|
||||
ㅗ + ㅏ = | ㅘ | ㅝ; ㅚ; ㅙ
|
||||
How is 의자 read? | uija | euija; wija; eja
|
||||
How is 돼지 read? | dwaeji | doeji; dweji; dwaji
|
||||
How is 여우 read? | yeou | yau; yeowu; yoou
|
||||
`
|
||||
}),
|
||||
lesson({
|
||||
id: 'ko-batchim',
|
||||
title: 'Final consonants (batchim)',
|
||||
summary: 'Consonants at the bottom of a block and how they link',
|
||||
notes: `
|
||||
A consonant at the bottom of a block is a **batchim** (받침). Whatever the letter, a final consonant is pronounced as one of **seven sounds**:
|
||||
|
||||
| sound | letters | example |
|
||||
|---|---|---|
|
||||
| k | ㄱ ㅋ ㄲ | 책 chaek, 부엌 bueok |
|
||||
| n | ㄴ | 산 san |
|
||||
| t | ㄷ ㅌ ㅅ ㅆ ㅈ ㅊ ㅎ | 옷 ot, 꽃 kkot |
|
||||
| l | ㄹ | 물 mul |
|
||||
| m | ㅁ | 밤 bam |
|
||||
| p | ㅂ ㅍ | 밥 bap, 앞 ap |
|
||||
| ng | ㅇ | 강 gang |
|
||||
|
||||
### Linking (연음)
|
||||
If the next syllable starts with the silent **ㅇ**, the batchim **moves over** and is pronounced in full:
|
||||
- 한국어 → [한구거] **hangugeo**
|
||||
- 음악 → [으막] **eumak**
|
||||
- 옷이 → [오시] **osi**
|
||||
|
||||
### Nasalization
|
||||
A k/t/p sound before ㄴ or ㅁ becomes ng/n/m: **감사합니다** → [감사함니다] **gamsahamnida**.
|
||||
`,
|
||||
script: `
|
||||
각 | gak
|
||||
간 | gan
|
||||
갈 | gal
|
||||
감 | gam
|
||||
갑 | gap
|
||||
강 | gang
|
||||
옷 | ot
|
||||
밖 | bak
|
||||
앞 | ap
|
||||
꽃 | kkot
|
||||
`,
|
||||
words: `
|
||||
한국 | Korea
|
||||
사람 | person
|
||||
물 | water
|
||||
밥 | rice; meal
|
||||
책 | book
|
||||
빵 | bread
|
||||
김치 | kimchi
|
||||
선생님 | teacher
|
||||
학생 | student
|
||||
음식 | food
|
||||
옷 | clothes
|
||||
꽃 | flower
|
||||
서울 | Seoul
|
||||
한국어 | Korean (language)
|
||||
음악 | music
|
||||
`,
|
||||
sentences: `
|
||||
감사합니다 | Thank you.
|
||||
한국 사람 | a Korean person
|
||||
`,
|
||||
drills: `
|
||||
The final ㅅ in 옷 sounds like: | t | s; ch; sh
|
||||
The final ㅂ in 밥 sounds like: | p | b; m; silent
|
||||
How is 음악 read? | eumak | eum-ak; eumag; umak | The ㅁ links to the next syllable.
|
||||
How is 감사합니다 read? | gamsahamnida | gamsahapnida; kamsahabnida; gamsahabnida | ㅂ before ㄴ becomes m.
|
||||
How is 한국어 read? | hangugeo | hanguk-eo; hangukeo; hangukgeo
|
||||
`
|
||||
})
|
||||
]
|
||||
);
|
||||
Reference in New Issue
Block a user