@polyglot-bundles/th 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/dist/index-4uNMctdq.js +82 -0
  2. package/dist/index-4uNMctdq.js.map +1 -0
  3. package/dist/index-BM-LWlCm.js +52 -0
  4. package/dist/index-BM-LWlCm.js.map +1 -0
  5. package/dist/index-Bjym0crS.js +48 -0
  6. package/dist/index-Bjym0crS.js.map +1 -0
  7. package/dist/index-BuKXw7-Z.js +46 -0
  8. package/dist/index-BuKXw7-Z.js.map +1 -0
  9. package/dist/index-ByS0o5dz.js +52 -0
  10. package/dist/index-ByS0o5dz.js.map +1 -0
  11. package/dist/index-C9VnG7dT.js +52 -0
  12. package/dist/index-C9VnG7dT.js.map +1 -0
  13. package/dist/index-CPQkjFjV.js +50 -0
  14. package/dist/index-CPQkjFjV.js.map +1 -0
  15. package/dist/index-CkHd3Fal.js +56 -0
  16. package/dist/index-CkHd3Fal.js.map +1 -0
  17. package/dist/index-DBkPBXe2.js +52 -0
  18. package/dist/index-DBkPBXe2.js.map +1 -0
  19. package/dist/index.d.ts +15 -0
  20. package/dist/index.js +64 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/lesson-01-B0wtSaSl.js +118 -0
  23. package/dist/lesson-01-B0wtSaSl.js.map +1 -0
  24. package/dist/lesson-01-C9vbUlA4.js +138 -0
  25. package/dist/lesson-01-C9vbUlA4.js.map +1 -0
  26. package/dist/lesson-01-CPmBFTe0.js +132 -0
  27. package/dist/lesson-01-CPmBFTe0.js.map +1 -0
  28. package/dist/lesson-01-Cc4Ws8eR.js +158 -0
  29. package/dist/lesson-01-Cc4Ws8eR.js.map +1 -0
  30. package/dist/lesson-01-Cm5k-m-9.js +136 -0
  31. package/dist/lesson-01-Cm5k-m-9.js.map +1 -0
  32. package/dist/lesson-01-DELblCNj.js +97 -0
  33. package/dist/lesson-01-DELblCNj.js.map +1 -0
  34. package/dist/lesson-01-Djl_72e7.js +153 -0
  35. package/dist/lesson-01-Djl_72e7.js.map +1 -0
  36. package/dist/lesson-01-LEHTeGQQ.js +155 -0
  37. package/dist/lesson-01-LEHTeGQQ.js.map +1 -0
  38. package/dist/lesson-01-ih_-OO_O.js +111 -0
  39. package/dist/lesson-01-ih_-OO_O.js.map +1 -0
  40. package/dist/lesson-02-B2aZrKUQ.js +120 -0
  41. package/dist/lesson-02-B2aZrKUQ.js.map +1 -0
  42. package/dist/lesson-02-BI1Vnwiz.js +169 -0
  43. package/dist/lesson-02-BI1Vnwiz.js.map +1 -0
  44. package/dist/lesson-02-BXbwEMaL.js +180 -0
  45. package/dist/lesson-02-BXbwEMaL.js.map +1 -0
  46. package/dist/lesson-02-CbJJ5Amt.js +201 -0
  47. package/dist/lesson-02-CbJJ5Amt.js.map +1 -0
  48. package/dist/lesson-02-DGrALAgG.js +203 -0
  49. package/dist/lesson-02-DGrALAgG.js.map +1 -0
  50. package/dist/lesson-02-DcMDDBDL.js +116 -0
  51. package/dist/lesson-02-DcMDDBDL.js.map +1 -0
  52. package/dist/lesson-02-Dk59HZWp.js +222 -0
  53. package/dist/lesson-02-Dk59HZWp.js.map +1 -0
  54. package/dist/lesson-02-L8oNhBej.js +145 -0
  55. package/dist/lesson-02-L8oNhBej.js.map +1 -0
  56. package/dist/lesson-02-VDOme3ES.js +204 -0
  57. package/dist/lesson-02-VDOme3ES.js.map +1 -0
  58. package/dist/lesson-03-9WioSe19.js +196 -0
  59. package/dist/lesson-03-9WioSe19.js.map +1 -0
  60. package/dist/lesson-03-BZutWzMD.js +124 -0
  61. package/dist/lesson-03-BZutWzMD.js.map +1 -0
  62. package/dist/lesson-03-CSIF5xRS.js +181 -0
  63. package/dist/lesson-03-CSIF5xRS.js.map +1 -0
  64. package/dist/lesson-03-CSKig363.js +225 -0
  65. package/dist/lesson-03-CSKig363.js.map +1 -0
  66. package/dist/lesson-03-CoDPKwa1.js +152 -0
  67. package/dist/lesson-03-CoDPKwa1.js.map +1 -0
  68. package/dist/lesson-03-DPJOG2M_.js +138 -0
  69. package/dist/lesson-03-DPJOG2M_.js.map +1 -0
  70. package/dist/lesson-03-DkjCuJ26.js +237 -0
  71. package/dist/lesson-03-DkjCuJ26.js.map +1 -0
  72. package/dist/lesson-03-DucbRMOQ.js +171 -0
  73. package/dist/lesson-03-DucbRMOQ.js.map +1 -0
  74. package/dist/lesson-03-MIne1PbH.js +185 -0
  75. package/dist/lesson-03-MIne1PbH.js.map +1 -0
  76. package/dist/lesson-04-0Pj_x1DU.js +233 -0
  77. package/dist/lesson-04-0Pj_x1DU.js.map +1 -0
  78. package/dist/lesson-04-B9h0p9kE.js +190 -0
  79. package/dist/lesson-04-B9h0p9kE.js.map +1 -0
  80. package/dist/lesson-04-BLuPI1-X.js +216 -0
  81. package/dist/lesson-04-BLuPI1-X.js.map +1 -0
  82. package/dist/lesson-04-CmDvofL4.js +230 -0
  83. package/dist/lesson-04-CmDvofL4.js.map +1 -0
  84. package/dist/lesson-04-DGKHK4LW.js +178 -0
  85. package/dist/lesson-04-DGKHK4LW.js.map +1 -0
  86. package/dist/lesson-04-DUcHZzsk.js +218 -0
  87. package/dist/lesson-04-DUcHZzsk.js.map +1 -0
  88. package/dist/lesson-04-DnVIXXk-.js +141 -0
  89. package/dist/lesson-04-DnVIXXk-.js.map +1 -0
  90. package/dist/lesson-04-FZnIE7tu.js +187 -0
  91. package/dist/lesson-04-FZnIE7tu.js.map +1 -0
  92. package/dist/lesson-04-ToX3nRz1.js +172 -0
  93. package/dist/lesson-04-ToX3nRz1.js.map +1 -0
  94. package/dist/lesson-05-2aTCGXMh.js +181 -0
  95. package/dist/lesson-05-2aTCGXMh.js.map +1 -0
  96. package/dist/lesson-05-BvitRdE8.js +206 -0
  97. package/dist/lesson-05-BvitRdE8.js.map +1 -0
  98. package/dist/lesson-05-CgXGkcjS.js +143 -0
  99. package/dist/lesson-05-CgXGkcjS.js.map +1 -0
  100. package/dist/lesson-05-ClfrUrvX.js +244 -0
  101. package/dist/lesson-05-ClfrUrvX.js.map +1 -0
  102. package/dist/lesson-05-D2zf9n7k.js +201 -0
  103. package/dist/lesson-05-D2zf9n7k.js.map +1 -0
  104. package/dist/lesson-05-DWquBfdl.js +220 -0
  105. package/dist/lesson-05-DWquBfdl.js.map +1 -0
  106. package/dist/lesson-05-DpIkwhJ8.js +244 -0
  107. package/dist/lesson-05-DpIkwhJ8.js.map +1 -0
  108. package/dist/lesson-05-UYz39ORV.js +189 -0
  109. package/dist/lesson-05-UYz39ORV.js.map +1 -0
  110. package/dist/lesson-05-t6XuANiZ.js +180 -0
  111. package/dist/lesson-05-t6XuANiZ.js.map +1 -0
  112. package/dist/lesson-06-B2y08mKv.js +238 -0
  113. package/dist/lesson-06-B2y08mKv.js.map +1 -0
  114. package/dist/lesson-06-CHqaVQix.js +202 -0
  115. package/dist/lesson-06-CHqaVQix.js.map +1 -0
  116. package/dist/lesson-06-CaCZBX1V.js +273 -0
  117. package/dist/lesson-06-CaCZBX1V.js.map +1 -0
  118. package/dist/lesson-06-ClplsJBT.js +204 -0
  119. package/dist/lesson-06-ClplsJBT.js.map +1 -0
  120. package/dist/lesson-06-CzGnNKo5.js +141 -0
  121. package/dist/lesson-06-CzGnNKo5.js.map +1 -0
  122. package/dist/lesson-06-Dg_bQLNC.js +172 -0
  123. package/dist/lesson-06-Dg_bQLNC.js.map +1 -0
  124. package/dist/lesson-06-OWFMgO0a.js +231 -0
  125. package/dist/lesson-06-OWFMgO0a.js.map +1 -0
  126. package/dist/lesson-06-Q2aRAzws.js +190 -0
  127. package/dist/lesson-06-Q2aRAzws.js.map +1 -0
  128. package/dist/lesson-07-BLDUA_Ff.js +194 -0
  129. package/dist/lesson-07-BLDUA_Ff.js.map +1 -0
  130. package/dist/lesson-07-BpyF1Ssq.js +236 -0
  131. package/dist/lesson-07-BpyF1Ssq.js.map +1 -0
  132. package/dist/lesson-07-C4GrfDTW.js +234 -0
  133. package/dist/lesson-07-C4GrfDTW.js.map +1 -0
  134. package/dist/lesson-07-CVCUt1Jn.js +206 -0
  135. package/dist/lesson-07-CVCUt1Jn.js.map +1 -0
  136. package/dist/lesson-07-DQFXCZsZ.js +197 -0
  137. package/dist/lesson-07-DQFXCZsZ.js.map +1 -0
  138. package/dist/lesson-07-Dcry2Yjo.js +248 -0
  139. package/dist/lesson-07-Dcry2Yjo.js.map +1 -0
  140. package/dist/lesson-07-JS_cqdNr.js +142 -0
  141. package/dist/lesson-07-JS_cqdNr.js.map +1 -0
  142. package/dist/lesson-08-18gscaS0.js +227 -0
  143. package/dist/lesson-08-18gscaS0.js.map +1 -0
  144. package/dist/lesson-08-2kBUq_B2.js +220 -0
  145. package/dist/lesson-08-2kBUq_B2.js.map +1 -0
  146. package/dist/lesson-08-BP5lpiGe.js +287 -0
  147. package/dist/lesson-08-BP5lpiGe.js.map +1 -0
  148. package/dist/lesson-08-BXm9GgdN.js +146 -0
  149. package/dist/lesson-08-BXm9GgdN.js.map +1 -0
  150. package/dist/lesson-08-Bru0PdEK.js +277 -0
  151. package/dist/lesson-08-Bru0PdEK.js.map +1 -0
  152. package/dist/lesson-08-Dd-8cbGW.js +205 -0
  153. package/dist/lesson-08-Dd-8cbGW.js.map +1 -0
  154. package/dist/lesson-09-B1qWE3Yl.js +221 -0
  155. package/dist/lesson-09-B1qWE3Yl.js.map +1 -0
  156. package/dist/lesson-09-B5Vb70xj.js +143 -0
  157. package/dist/lesson-09-B5Vb70xj.js.map +1 -0
  158. package/dist/lesson-10-00qNLc7A.js +233 -0
  159. package/dist/lesson-10-00qNLc7A.js.map +1 -0
  160. package/dist/lesson-10-Dw-Jtm3D.js +156 -0
  161. package/dist/lesson-10-Dw-Jtm3D.js.map +1 -0
  162. package/dist/lesson-11-BM3R_S7I.js +260 -0
  163. package/dist/lesson-11-BM3R_S7I.js.map +1 -0
  164. package/dist/lesson-12-D1Wx7CyK.js +277 -0
  165. package/dist/lesson-12-D1Wx7CyK.js.map +1 -0
  166. package/dist/skills-hcn-pGD0.js +244 -0
  167. package/dist/skills-hcn-pGD0.js.map +1 -0
  168. package/dist/syllabi/alphabet/index.d.ts +7 -0
  169. package/dist/syllabi/alphabet/index.js +9 -0
  170. package/dist/syllabi/alphabet/index.js.map +1 -0
  171. package/dist/syllabi/dialogue/index.d.ts +7 -0
  172. package/dist/syllabi/dialogue/index.js +10 -0
  173. package/dist/syllabi/dialogue/index.js.map +1 -0
  174. package/dist/syllabi/essentials/index.d.ts +7 -0
  175. package/dist/syllabi/essentials/index.js +10 -0
  176. package/dist/syllabi/essentials/index.js.map +1 -0
  177. package/dist/syllabi/food/index.d.ts +7 -0
  178. package/dist/syllabi/food/index.js +10 -0
  179. package/dist/syllabi/food/index.js.map +1 -0
  180. package/dist/syllabi/grammar/index.d.ts +7 -0
  181. package/dist/syllabi/grammar/index.js +10 -0
  182. package/dist/syllabi/grammar/index.js.map +1 -0
  183. package/dist/syllabi/numbers/index.d.ts +7 -0
  184. package/dist/syllabi/numbers/index.js +10 -0
  185. package/dist/syllabi/numbers/index.js.map +1 -0
  186. package/dist/syllabi/reading/index.d.ts +7 -0
  187. package/dist/syllabi/reading/index.js +10 -0
  188. package/dist/syllabi/reading/index.js.map +1 -0
  189. package/dist/syllabi/travel/index.d.ts +7 -0
  190. package/dist/syllabi/travel/index.js +10 -0
  191. package/dist/syllabi/travel/index.js.map +1 -0
  192. package/dist/syllabi/vowels-tones/index.d.ts +7 -0
  193. package/dist/syllabi/vowels-tones/index.js +10 -0
  194. package/dist/syllabi/vowels-tones/index.js.map +1 -0
  195. package/package.json +92 -0
  196. package/src/syllabi/alphabet/lessons/lesson-01.mdx +153 -0
  197. package/src/syllabi/alphabet/lessons/lesson-02.mdx +196 -0
  198. package/src/syllabi/alphabet/lessons/lesson-03.mdx +147 -0
  199. package/src/syllabi/alphabet/lessons/lesson-04.mdx +211 -0
  200. package/src/syllabi/alphabet/lessons/lesson-05.mdx +196 -0
  201. package/src/syllabi/alphabet/lessons/lesson-06.mdx +226 -0
  202. package/src/syllabi/alphabet/lessons/lesson-07.mdx +231 -0
  203. package/src/syllabi/alphabet/lessons/lesson-08.mdx +222 -0
  204. package/src/syllabi/alphabet/lessons/lesson-09.mdx +216 -0
  205. package/src/syllabi/alphabet/lessons/lesson-10.mdx +228 -0
  206. package/src/syllabi/alphabet/lessons/lesson-11.mdx +255 -0
  207. package/src/syllabi/alphabet/lessons/lesson-12.mdx +272 -0
  208. package/src/syllabi/alphabet/meta.mdx +106 -0
  209. package/src/syllabi/dialogue/lessons/lesson-01.mdx +106 -0
  210. package/src/syllabi/dialogue/lessons/lesson-02.mdx +115 -0
  211. package/src/syllabi/dialogue/lessons/lesson-03.mdx +119 -0
  212. package/src/syllabi/dialogue/lessons/lesson-04.mdx +167 -0
  213. package/src/syllabi/dialogue/lessons/lesson-05.mdx +184 -0
  214. package/src/syllabi/dialogue/lessons/lesson-06.mdx +167 -0
  215. package/src/syllabi/dialogue/lessons/lesson-07.mdx +192 -0
  216. package/src/syllabi/dialogue/lessons/lesson-08.mdx +200 -0
  217. package/src/syllabi/dialogue/meta.mdx +58 -0
  218. package/src/syllabi/essentials/lessons/lesson-01.mdx +133 -0
  219. package/src/syllabi/essentials/lessons/lesson-02.mdx +199 -0
  220. package/src/syllabi/essentials/lessons/lesson-03.mdx +220 -0
  221. package/src/syllabi/essentials/lessons/lesson-04.mdx +228 -0
  222. package/src/syllabi/essentials/lessons/lesson-05.mdx +239 -0
  223. package/src/syllabi/essentials/lessons/lesson-06.mdx +268 -0
  224. package/src/syllabi/essentials/meta.mdx +99 -0
  225. package/src/syllabi/food/lessons/lesson-01.mdx +148 -0
  226. package/src/syllabi/food/lessons/lesson-02.mdx +217 -0
  227. package/src/syllabi/food/lessons/lesson-03.mdx +232 -0
  228. package/src/syllabi/food/lessons/lesson-04.mdx +225 -0
  229. package/src/syllabi/food/lessons/lesson-05.mdx +239 -0
  230. package/src/syllabi/food/lessons/lesson-06.mdx +233 -0
  231. package/src/syllabi/food/lessons/lesson-07.mdx +243 -0
  232. package/src/syllabi/food/lessons/lesson-08.mdx +282 -0
  233. package/src/syllabi/food/meta.mdx +102 -0
  234. package/src/syllabi/grammar/lessons/lesson-01.mdx +92 -0
  235. package/src/syllabi/grammar/lessons/lesson-02.mdx +111 -0
  236. package/src/syllabi/grammar/lessons/lesson-03.mdx +176 -0
  237. package/src/syllabi/grammar/lessons/lesson-04.mdx +185 -0
  238. package/src/syllabi/grammar/lessons/lesson-05.mdx +176 -0
  239. package/src/syllabi/grammar/lessons/lesson-06.mdx +197 -0
  240. package/src/syllabi/grammar/lessons/lesson-07.mdx +201 -0
  241. package/src/syllabi/grammar/lessons/lesson-08.mdx +215 -0
  242. package/src/syllabi/grammar/meta.mdx +57 -0
  243. package/src/syllabi/numbers/lessons/lesson-01.mdx +127 -0
  244. package/src/syllabi/numbers/lessons/lesson-02.mdx +198 -0
  245. package/src/syllabi/numbers/lessons/lesson-03.mdx +191 -0
  246. package/src/syllabi/numbers/lessons/lesson-04.mdx +213 -0
  247. package/src/syllabi/numbers/lessons/lesson-05.mdx +215 -0
  248. package/src/syllabi/numbers/meta.mdx +93 -0
  249. package/src/syllabi/reading/lessons/lesson-01.mdx +131 -0
  250. package/src/syllabi/reading/lessons/lesson-02.mdx +140 -0
  251. package/src/syllabi/reading/lessons/lesson-03.mdx +133 -0
  252. package/src/syllabi/reading/lessons/lesson-04.mdx +136 -0
  253. package/src/syllabi/reading/lessons/lesson-05.mdx +138 -0
  254. package/src/syllabi/reading/lessons/lesson-06.mdx +136 -0
  255. package/src/syllabi/reading/lessons/lesson-07.mdx +137 -0
  256. package/src/syllabi/reading/lessons/lesson-08.mdx +141 -0
  257. package/src/syllabi/reading/lessons/lesson-09.mdx +138 -0
  258. package/src/syllabi/reading/lessons/lesson-10.mdx +151 -0
  259. package/src/syllabi/reading/meta.mdx +46 -0
  260. package/src/syllabi/travel/lessons/lesson-01.mdx +150 -0
  261. package/src/syllabi/travel/lessons/lesson-02.mdx +164 -0
  262. package/src/syllabi/travel/lessons/lesson-03.mdx +166 -0
  263. package/src/syllabi/travel/lessons/lesson-04.mdx +173 -0
  264. package/src/syllabi/travel/lessons/lesson-05.mdx +175 -0
  265. package/src/syllabi/travel/lessons/lesson-06.mdx +185 -0
  266. package/src/syllabi/travel/lessons/lesson-07.mdx +189 -0
  267. package/src/syllabi/travel/meta.mdx +58 -0
  268. package/src/syllabi/vowels-tones/lessons/lesson-01.mdx +113 -0
  269. package/src/syllabi/vowels-tones/lessons/lesson-02.mdx +175 -0
  270. package/src/syllabi/vowels-tones/lessons/lesson-03.mdx +180 -0
  271. package/src/syllabi/vowels-tones/lessons/lesson-04.mdx +182 -0
  272. package/src/syllabi/vowels-tones/lessons/lesson-05.mdx +201 -0
  273. package/src/syllabi/vowels-tones/lessons/lesson-06.mdx +199 -0
  274. package/src/syllabi/vowels-tones/lessons/lesson-07.mdx +229 -0
  275. package/src/syllabi/vowels-tones/lessons/lesson-08.mdx +272 -0
  276. package/src/syllabi/vowels-tones/meta.mdx +89 -0
@@ -0,0 +1,147 @@
1
+ ---
2
+ type: lesson
3
+ id: thai-script-lesson-03
4
+ title: "บทที่ 3 — พยัญชนะสูง I"
5
+ description: "High-Class Consonants Part 1: ข ส ห — The aspirated consonants"
6
+ order: 3
7
+ parentId: thai-script-alphabet
8
+ difficulty: beginner
9
+ cefrLevel: A1
10
+ categories:
11
+ - consonants
12
+ - high-class
13
+ - aspirated
14
+ - basic-characters
15
+ metadata:
16
+ estimatedTime: 20
17
+ prerequisites:
18
+ - thai-script-lesson-02
19
+ learningObjectives:
20
+ - id: obj-high-consonants-1
21
+ description: "Learn 3 common high-class consonants"
22
+ skill: character-recognition
23
+ references: [egg, tiger, box]
24
+ - id: obj-aspiration
25
+ description: "Understand aspiration (puff of air)"
26
+ skill: character-sound-mapping
27
+ - id: obj-rising-tone
28
+ description: "Recognize the rising tone pattern"
29
+ skill: character-class-identification
30
+ ---
31
+
32
+ # บทที่ 3 (Lesson 3) — High-Class Consonants I
33
+
34
+ ## Feel the Difference
35
+
36
+ Put your hand in front of your mouth and say these English words:
37
+
38
+ - "**k**ite" — feel the puff of air on "k"
39
+ - "s**k**y" — notice LESS air after "s"
40
+
41
+ That puff of air is called **aspiration**.
42
+
43
+ :::exercise{id="aspiration-check" exerciseType="multiple-choice" title="Quick Check" skill="character-sound-mapping" objectiveId="obj-aspiration"}
44
+ Which word has MORE air on the 'k' sound?
45
+ ?options: kite, sky
46
+ ?answer: 1
47
+ :::
48
+
49
+ ## Why This Matters
50
+
51
+ Thai treats aspirated and unaspirated sounds as **completely different letters**:
52
+
53
+ | Sound | Air | Thai Letter | Like English... |
54
+ |-------|-----|-------------|-----------------|
55
+ | Unaspirated k | none | ก | s**k**y |
56
+ | Aspirated k | puff | ข | **k**ite |
57
+
58
+ You already know **ก** (from Lesson 1). Now meet its aspirated partner:
59
+
60
+ ## The Characters
61
+
62
+ :::character-set{id="thai-high-consonants-1" title="High-Class Consonants I"}
63
+
64
+ ::character{id="egg" canonicalRef="egg" data:class="high" char="ข" name="ข ไข่ (khɔ̌ɔ khài)" nativeName="ข ไข่" transliteration="kh/k" charType="consonant"}
65
+
66
+ ::character{id="tiger" canonicalRef="tiger" data:class="high" char="ส" name="ส เสือ (sɔ̌ɔ sʉ̌a)" nativeName="ส เสือ" transliteration="s/t" charType="consonant"}
67
+
68
+ ::character{id="box" canonicalRef="box" data:class="high" char="ห" name="ห หีบ (hɔ̌ɔ hìip)" nativeName="ห หีบ" transliteration="h/-" charType="consonant"}
69
+
70
+ :::
71
+
72
+ ## Shape Recognition
73
+
74
+ Each character has a memorable shape:
75
+
76
+ **ข** (egg) — Looks like ก with an extra loop. The extra loop = extra air!
77
+
78
+ **ส** (tiger) — Curvy S-shape, like tiger stripes.
79
+
80
+ **ห** (box) — Looks like a box. หีบ means "chest/box" — the shape matches!
81
+
82
+ :::exercise{id="shape-match" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="egg" objectiveId="obj-high-consonants-1"}
83
+ Which letter looks like ก with an extra loop on top?
84
+ ?options: ส, ข, ห
85
+ ?answer: 2
86
+ :::
87
+
88
+ :::exercise{id="shape-match-2" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="tiger" objectiveId="obj-high-consonants-1"}
89
+ Which letter has an S-curve shape (like tiger stripes)?
90
+ ?options: ข, ห, ส
91
+ ?answer: 3
92
+ :::
93
+
94
+ ## Sound at Start vs End
95
+
96
+ Thai consonants sound different depending on position:
97
+
98
+ | Letter | Start of syllable | End of syllable |
99
+ |--------|------------------|-----------------|
100
+ | ข egg | **kh** (with air) | **k** (no release) |
101
+ | ส tiger | **s** | **t** (no release) |
102
+ | ห box | **h** | (not used) |
103
+
104
+ :::exercise{id="position-sound" exerciseType="multiple-choice" title="Position Check" skill="character-sound-mapping" tests="egg" objectiveId="obj-aspiration"}
105
+ At the START of a syllable, how is ข pronounced?
106
+ ?options: k (no air), kh (with air puff), s
107
+ ?answer: 2
108
+ :::
109
+
110
+ ## The Rising Tone
111
+
112
+ Here's something powerful: **consonant class determines tone**.
113
+
114
+ High-class consonants + simple vowel = **rising tone** ↗
115
+
116
+ - ข + า = **ขา** (khǎa) ↗ "leg"
117
+ - ส + ี = **สี** (sǐi) ↗ "color"
118
+ - ห + า = **หา** (hǎa) ↗ "to find"
119
+
120
+ Compare to middle-class ก (flat mid tone):
121
+ - ก + า = **กา** (gaa) → "crow"
122
+
123
+ Same vowel, different consonant class = **different tone!**
124
+
125
+ :::exercise{id="tone-pattern" exerciseType="multiple-choice" title="Tone Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
126
+ What tone do high-class consonants produce in simple syllables?
127
+ ?options: falling tone ↘, mid tone →, rising tone ↗
128
+ ?answer: 3
129
+ :::
130
+
131
+ ## Summary
132
+
133
+ You learned 3 high-class consonants:
134
+
135
+ | Char | Name | Sound | Remember |
136
+ |------|------|-------|----------|
137
+ | ข | egg (ไข่) | kh- | ก + loop = + air |
138
+ | ส | tiger (เสือ) | s- | S-curve shape |
139
+ | ห | box (หีบ) | h- | Looks like a box |
140
+
141
+ **Key insight:** High-class = aspirated (puff of air) + rising tone ↗
142
+
143
+ :::exercise{id="final-recognition" exerciseType="multiple-choice" title="Final Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
144
+ Which consonant class produces a rising tone?
145
+ ?options: low-class, middle-class, high-class
146
+ ?answer: 3
147
+ :::
@@ -0,0 +1,211 @@
1
+ ---
2
+ type: lesson
3
+ id: thai-script-lesson-04
4
+ title: "บทที่ 4 — พยัญชนะสูง II"
5
+ description: "High-Class Consonants Part 2: ถ ฉ ผ ฝ — Completing the aspirated set"
6
+ order: 4
7
+ parentId: thai-script-alphabet
8
+ difficulty: beginner
9
+ cefrLevel: A1
10
+ categories:
11
+ - consonants
12
+ - high-class
13
+ - aspirated
14
+ - basic-characters
15
+ metadata:
16
+ estimatedTime: 25
17
+ prerequisites:
18
+ - thai-script-lesson-03
19
+ learningObjectives:
20
+ - id: obj-high-consonants-2
21
+ description: "Learn 4 more high-class consonants"
22
+ skill: character-recognition
23
+ references: [bag, cymbals, bee, lid]
24
+ - id: obj-th-ph-sounds
25
+ description: "Understand TH and PH/F sound pairs"
26
+ skill: character-sound-mapping
27
+ - id: obj-complete-high
28
+ description: "Complete your high-class consonant inventory"
29
+ skill: character-recognition
30
+ - id: obj-aspirated-distinction
31
+ description: "Practice distinguishing aspirated sounds"
32
+ skill: character-sound-mapping
33
+ ---
34
+
35
+ # บทที่ 4 (Lesson 4) — High-Class Consonants II
36
+
37
+ ## Introduction
38
+
39
+ In this lesson, you'll learn 4 more high-class consonants, focusing on the **TH** sounds (ถ) and **PH/F** sounds (ฉ ผ ฝ). These complete the most common high-class consonants.
40
+
41
+ ## The TH Sound Family
42
+
43
+ Thai has many consonants romanized as "TH" — but they're NOT like English "th" (as in "think"). Thai TH is simply an **aspirated T** — a T with a puff of air. The tongue position is the same as T, not the English TH.
44
+
45
+ | Consonant | Class | Sound | Notes |
46
+ |-----------|-------|-------|-------|
47
+ | ต | Middle | t (unaspirated) | No air puff |
48
+ | ถ | High | th (aspirated) | Strong air puff |
49
+ | ท | Low | th (aspirated) | Same as ถ, different class |
50
+ | ธ | Low | th (aspirated) | Same sound |
51
+
52
+ The TH consonants all sound identical! The class determines tone, not sound quality.
53
+
54
+ ## Characters
55
+
56
+ :::character-set{id="thai-high-consonants-2" title="High-Class Consonants II"}
57
+
58
+ ::character{id="bag" canonicalRef="bag" data:class="high" char="ถ" name="ถ ถุง (thɔ̌ɔ thǔng)" nativeName="ถ ถุง" transliteration="th/t" charType="consonant"}
59
+
60
+ ::character{id="cymbals" canonicalRef="cymbals" data:class="high" char="ฉ" name="ฉ ฉิ่ง (chɔ̌ɔ chìng)" nativeName="ฉ ฉิ่ง" transliteration="ch/-" charType="consonant"}
61
+
62
+ ::character{id="bee" canonicalRef="bee" data:class="high" char="ผ" name="ผ ผึ้ง (phɔ̌ɔ phʉ̂ng)" nativeName="ผ ผึ้ง" transliteration="ph/-" charType="consonant"}
63
+
64
+ ::character{id="lid" canonicalRef="lid" data:class="high" char="ฝ" name="ฝ ฝา (fɔ̌ɔ fǎa)" nativeName="ฝ ฝา" transliteration="f/-" charType="consonant"}
65
+
66
+ :::
67
+
68
+ ## The CH Sound Pair
69
+
70
+ Thai has two CH consonants:
71
+
72
+ | Consonant | Class | Example |
73
+ |-----------|-------|---------|
74
+ | ฉ (cymbals) | High | ฉัน (chǎn) "I" — rising tone |
75
+ | ช (elephant) | Low | ช้าง (cháang) "elephant" |
76
+
77
+ Both sound like English "ch" in "chair". The difference is purely tonal:
78
+ - ฉา = chǎa (rising)
79
+ - ชา = chaa (mid) or cháa (with tone mark)
80
+
81
+ ## The PH/F Family
82
+
83
+ Thai distinguishes between aspirated P (PH) and F:
84
+
85
+ **PH sounds** (aspirated P, lips together then release):
86
+ | Consonant | Class |
87
+ |-----------|-------|
88
+ | ผ (bee) | High |
89
+ | พ (tray) | Low |
90
+ | ภ (ship) | Low |
91
+
92
+ **F sounds** (continuous air through lips):
93
+ | Consonant | Class |
94
+ |-----------|-------|
95
+ | ฝ (lid) | High |
96
+ | ฟ (tooth) | Low |
97
+
98
+ To English speakers, PH and F sound similar. In Thai:
99
+ - **PH** = explosive release (like English "p" + breath)
100
+ - **F** = continuous friction (like English "f")
101
+
102
+ ## Why So Many Duplicates?
103
+
104
+ You might wonder: why have ถ ท ธ all making the same TH sound?
105
+
106
+ Historical reasons! These consonants came from different Sanskrit/Pali sounds:
107
+ - ถ, ท = different Sanskrit dental sounds
108
+ - ธ = Sanskrit voiced aspirate
109
+
110
+ Over centuries, they merged in pronunciation but remained distinct in spelling — like English "knight" keeping its silent K.
111
+
112
+ ## Consonants Without Final Forms
113
+
114
+ Notice that ฉ, ผ, and ฝ have no final sound listed. These consonants:
115
+ 1. Rarely or never appear in final position in native Thai words
116
+ 2. When they do (in loanwords), they're pronounced as the closest final sound
117
+
118
+ This is common for high-class consonants — many are initial-only.
119
+
120
+ ## High-Class Summary
121
+
122
+ You've now learned 7 of the 11 high-class consonants:
123
+
124
+ | Learned | Sound | Mnemonic |
125
+ |---------|-------|----------|
126
+ | ข | kh | Egg |
127
+ | ส | s | Tiger |
128
+ | ห | h | Box |
129
+ | ถ | th | Bag |
130
+ | ฉ | ch | Cymbals |
131
+ | ผ | ph | Bee |
132
+ | ฝ | f | Lid |
133
+
134
+ The remaining 4 (ฐ ศ ษ ฑ) are rare and will be covered in advanced lessons.
135
+
136
+ ## Key Points
137
+
138
+ 1. **Thai TH ≠ English TH**: It's aspirated T, not the "think" sound
139
+ 2. **PH ≠ F**: PH is explosive, F is continuous friction
140
+ 3. **Same sound, different class**: Many TH and PH consonants sound identical
141
+ 4. **Initial-only consonants**: ฉ, ผ, ฝ almost never end syllables
142
+ 5. **Historical spelling**: Duplicate sounds exist due to Sanskrit origins
143
+
144
+ ## Shape Recognition
145
+
146
+ - **ถ** looks like ก/ข family (K-sounds) with modifications
147
+ - **ฉ** has a hook shape
148
+ - **ผ** and **ฝ** look similar — ฝ has the extra curve on top
149
+ - Note how related sounds often have related shapes
150
+
151
+ ## Practice Exercises
152
+
153
+ :::exercise{id="high-2-matching" type="matching" title="Match Consonants to Mnemonics" skill="character-name-recall" tests="bag,cymbals,bee,lid" objectiveId="obj-high-consonants-2"}
154
+
155
+ **Question:** Match each high-class consonant to its mnemonic word
156
+
157
+ - ถ
158
+ - ฉ
159
+ - ผ
160
+ - ฝ
161
+
162
+ **Answer:**
163
+
164
+ - bag (ถุง)
165
+ - cymbals (ฉิ่ง)
166
+ - bee (ผึ้ง)
167
+ - lid (ฝา)
168
+
169
+ **Explanation:** Each Thai consonant has a traditional mnemonic word that helps remember both the character and its sound.
170
+
171
+ :::
172
+
173
+ :::exercise{id="high-2-sound-recognition" type="fill-in-blank" title="Sound Recognition" skill="character-sound-mapping" tests="bag,cymbals,bee,lid" objectiveId="obj-th-ph-sounds"}
174
+
175
+ **Question:** Which consonant makes each sound?
176
+
177
+ - Aspirated TH sound (like "top" with more breath)
178
+ - CH sound (like "chair")
179
+ - Aspirated PH sound (explosive P with breath)
180
+ - F sound (continuous friction)
181
+
182
+ **Answer:**
183
+
184
+ - ถ (thɔ̌ɔ thǔng)
185
+ - ฉ (chɔ̌ɔ chìng)
186
+ - ผ (phɔ̌ɔ phʉ̂ng)
187
+ - ฝ (fɔ̌ɔ fǎa)
188
+
189
+ **Explanation:** High-class consonants are aspirated versions of sounds. PH is explosive (lips together then release), while F is continuous (air through lips).
190
+
191
+ :::
192
+
193
+ :::exercise{id="high-2-class-comparison" type="multiple-choice" title="Class Comparison" skill="character-class-identification" objectiveId="obj-aspirated-distinction"}
194
+
195
+ **Question:** Which pair of consonants makes the same sound but belongs to different classes?
196
+
197
+ **Options:**
198
+ - ก and ข
199
+ - ถ and ท
200
+ - ผ and ฝ
201
+ - ฉ and ช
202
+
203
+ **Answer:** 4
204
+
205
+ **Explanation:** ฉ (high-class) and ช (low-class) both make the CH sound but belong to different classes, affecting tone. Similarly, ถ (high) and ท (low) both make TH sound.
206
+
207
+ :::
208
+
209
+ ## What's Next
210
+
211
+ In Lesson 5, you'll begin learning **low-class consonants** — the largest group, with 24 members! You'll start with the most common ones: น ง ว.
@@ -0,0 +1,196 @@
1
+ ---
2
+ type: lesson
3
+ id: thai-script-lesson-05
4
+ title: "บทที่ 5 — พยัญชนะต่ำ I"
5
+ description: "Low-Class Consonants Part 1: น ง ว ค — The most common low-class consonants"
6
+ order: 5
7
+ parentId: thai-script-alphabet
8
+ difficulty: intermediate
9
+ cefrLevel: A2
10
+ categories:
11
+ - consonants
12
+ - low-class
13
+ - nasal
14
+ - basic-characters
15
+ metadata:
16
+ estimatedTime: 25
17
+ prerequisites:
18
+ - thai-script-lesson-04
19
+ learningObjectives:
20
+ - id: obj-low-consonants-1
21
+ description: "Learn 4 common low-class consonants"
22
+ skill: character-recognition
23
+ references: [mouse, snake, ring, buffalo]
24
+ - id: obj-low-tone
25
+ description: "Understand low-class tone behavior"
26
+ skill: character-class-identification
27
+ - id: obj-paired-consonants
28
+ description: "Compare paired consonants across classes"
29
+ skill: character-class-identification
30
+ - id: obj-ng-sound
31
+ description: "Practice the NG sound"
32
+ skill: character-sound-mapping
33
+ references: [snake]
34
+ ---
35
+
36
+ # บทที่ 5 (Lesson 5) — Low-Class Consonants I
37
+
38
+ ## Introduction
39
+
40
+ Welcome to **low-class consonants** (พยัญชนะต่ำ) — the largest group with 24 members! These consonants were historically "voiced" sounds (made with vocal cord vibration), which is why they're grouped together despite having different sounds today.
41
+
42
+ ## Why "Low" Class?
43
+
44
+ The name comes from tone behavior:
45
+ - In live syllables, low-class consonants produce **mid tone** (like middle-class)
46
+ - In dead syllables, they produce **high tone** or **falling tone** (unlike middle-class)
47
+
48
+ This makes low-class tone rules slightly more complex — but still predictable once you learn the patterns.
49
+
50
+ ## Characters
51
+
52
+ :::character-set{id="thai-low-consonants-1" title="Low-Class Consonants I"}
53
+
54
+ ::character{id="mouse" canonicalRef="mouse" data:class="low" char="น" name="น หนู (nɔɔ nǔu)" nativeName="น หนู" transliteration="n" charType="consonant"}
55
+
56
+ ::character{id="snake" canonicalRef="snake" data:class="low" char="ง" name="ง งู (ngɔɔ nguu)" nativeName="ง งู" transliteration="ng" charType="consonant"}
57
+
58
+ ::character{id="ring" canonicalRef="ring" data:class="low" char="ว" name="ว แหวน (wɔɔ wǎaen)" nativeName="ว แหวน" transliteration="w" charType="consonant"}
59
+
60
+ ::character{id="buffalo" canonicalRef="buffalo" data:class="low" char="ค" name="ค ควาย (khɔɔ khwaai)" nativeName="ค ควาย" transliteration="kh/k" charType="consonant"}
61
+
62
+ :::
63
+
64
+ ## The NG Sound: Thailand's Gift to Learners
65
+
66
+ **ง** represents the NG sound — the same sound at the END of English "sing". But in Thai, NG can START a syllable!
67
+
68
+ This is challenging for English speakers because we never begin words with NG:
69
+ - ง่าย (ngâai) = easy
70
+ - งู (nguu) = snake
71
+ - เงิน (ngəən) = money
72
+
73
+ **Practice tip**: Say "sing" and hold the final NG. Now try adding a vowel: "ng...aa". That's how Thai NG-initial words work!
74
+
75
+ ## The Paired System
76
+
77
+ Low-class consonants often pair with high-class consonants:
78
+
79
+ | Low-Class | High-Class | Sound | Example |
80
+ |-----------|------------|-------|---------|
81
+ | ค (buffalo) | ข (egg) | kh | Both = aspirated K |
82
+ | ง (snake) | — | ng | No high-class pair |
83
+ | น (mouse) | — | n | No high-class pair (but ห can lift it) |
84
+ | ว (ring) | — | w | No high-class pair |
85
+
86
+ When a low-class consonant has no high-class pair, **ห** steps in as the "tone lifter":
87
+ - หน (hn) = low-class น treated as high for tone
88
+ - หง (hng) = same for ง
89
+ - หว (hw) = same for ว
90
+
91
+ ## Sound Changes
92
+
93
+ | Consonant | Initial Sound | Final Sound | Example |
94
+ |-----------|---------------|-------------|---------|
95
+ | น | **n** | **n** | นา (naa) / วัน (wan) |
96
+ | ง | **ng** | **ng** | งู (nguu) / วัง (wang) |
97
+ | ว | **w** | **o** (vowel-like) | วัน (wan) / แมว (maaeo) |
98
+ | ค | **kh** | **k** | คา (khaa) / รัก (rák) |
99
+
100
+ **Note**: Final ว often sounds like a vowel (/o/ or /u/), creating diphthongs.
101
+
102
+ ## Low vs Middle-Class Tones
103
+
104
+ Compare the same syllable pattern with different consonant classes:
105
+
106
+ | Syllable | Class | Tone | Sound |
107
+ |----------|-------|------|-------|
108
+ | กา | Middle | Mid | gaa (—) |
109
+ | ขา | High | Rising | khǎa (//) |
110
+ | คา | Low | Mid | khaa (—) |
111
+
112
+ All three use the same vowel (า), but the tone differs based on consonant class!
113
+
114
+ ## The Nasal Family
115
+
116
+ Thai has 5 nasal consonants:
117
+ | Consonant | Sound | Class |
118
+ |-----------|-------|-------|
119
+ | ม | m | Low |
120
+ | น | n | Low |
121
+ | ง | ng | Low |
122
+ | ณ | n | Low (rare) |
123
+ | ญ | y/n | Low |
124
+
125
+ All nasals are low-class. To get high-class tones with nasals, use ห:
126
+ - หม, หน, หง (silent ห lifts the tone)
127
+
128
+ ## Key Points
129
+
130
+ 1. **Low-class = 24 consonants**: The biggest group
131
+ 2. **NG can start syllables**: Practice "ng...aa" to master this
132
+ 3. **Paired with high-class**: ค pairs with ข (same sound, different tone)
133
+ 4. **ห as lifter**: หน หง หว give high-class tones with low-class sounds
134
+ 5. **Final ว = vowel-like**: Creates diphthongs like แมว (maaeo)
135
+
136
+ ## Shape Recognition
137
+
138
+ - **น** has a long tail curving down
139
+ - **ง** is compact, like a squiggle
140
+ - **ว** looks like a cursive oval
141
+ - **ค** resembles ก/ข family but with low-class marker
142
+
143
+ ## Practice Exercises
144
+
145
+ :::exercise{id="low-1-ng-practice" type="fill-in-blank" title="NG Sound Practice" skill="character-sound-mapping" tests="snake" objectiveId="obj-ng-sound"}
146
+
147
+ **Question:** Practice the NG initial sound. Which word starts with NG?
148
+
149
+ - ง่าย (ngâai) - easy
150
+ - งู (nguu) - snake
151
+ - เงิน (ngəən) - money
152
+
153
+ **Answer:** All three words start with ง (ng). Practice saying "sing" and holding the final NG sound, then add a vowel.
154
+
155
+ **Explanation:** The NG sound can start syllables in Thai, which is challenging for English speakers. Practice by holding the NG from "sing" and adding vowels.
156
+
157
+ :::
158
+
159
+ :::exercise{id="low-1-pairing" type="matching" title="Consonant Pairing" skill="character-class-identification" tests="buffalo,mouse,snake,ring" objectiveId="obj-paired-consonants"}
160
+
161
+ **Question:** Match each low-class consonant with its high-class pair (if it has one)
162
+
163
+ - ค (buffalo)
164
+ - น (mouse)
165
+ - ง (snake)
166
+ - ว (ring)
167
+
168
+ **Answer:**
169
+
170
+ - ค pairs with ข (both = kh sound)
171
+ - น pairs with ห (ห lifts น to high-class tone)
172
+ - ง pairs with ห (ห lifts ง to high-class tone)
173
+ - ว pairs with ห (ห lifts ว to high-class tone)
174
+
175
+ **Explanation:** Low-class consonants without high-class pairs use ห as a "tone lifter" to achieve high-class tone behavior.
176
+
177
+ :::
178
+
179
+ :::exercise{id="low-1-tone-comparison" type="multiple-choice" title="Tone Comparison" skill="character-class-identification" objectiveId="obj-low-tone"}
180
+
181
+ **Question:** Which syllable has a mid tone in a live syllable (open ending)?
182
+
183
+ **Options:**
184
+ - กา (middle-class ก)
185
+ - ขา (high-class ข)
186
+ - คา (low-class ค)
187
+
188
+ **Answer:** Both 1 and 3
189
+
190
+ **Explanation:** Both middle-class กา and low-class คา produce mid tone in live syllables. High-class ขา produces rising tone. The consonant class determines the base tone.
191
+
192
+ :::
193
+
194
+ ## What's Next
195
+
196
+ In Lesson 6, you'll learn more low-class consonants including ช (elephant), ซ (chain), and ฮ (owl).