@polyglot-bundles/vi-minimal-pairs 0.1.0 → 0.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,eAAO,MAAM,gBAAgB,EAAE,wBAW9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,eAAO,MAAM,gBAAgB,EAAE,wBAsP9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
package/dist/data.js CHANGED
@@ -1,16 +1,242 @@
1
- const e = {
1
+ const i = {
2
2
  levels: [
3
3
  { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
4
- { level: 1, title: "Basic Contrasts", description: "Common minimal pairs" },
5
- { level: 2, title: "Vowels", description: "Vowel distinctions" },
6
- { level: 3, title: "Consonants", description: "Consonant contrasts" },
7
- { level: 4, title: "Advanced", description: "More challenging distinctions" },
8
- { level: 5, title: "Expert Level", description: "Subtle differences" }
4
+ { level: 1, title: "Six Tones", description: "The Vietnamese tonal system" },
5
+ { level: 2, title: "Initial Consonants", description: "Consonant contrasts at syllable start" },
6
+ { level: 3, title: "Vowels", description: "Vietnamese vowel quality" },
7
+ { level: 4, title: "Final Consonants", description: "Syllable-ending contrasts" },
8
+ { level: 5, title: "Expert Level", description: "Subtle regional and phonetic distinctions" }
9
9
  ],
10
- minimalPairs: [],
11
- pronunciationTips: {}
10
+ minimalPairs: [
11
+ // Level 0: Clear contrasts
12
+ {
13
+ pairId: "vi_l0_001",
14
+ level: 0,
15
+ tags: ["level_0"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "/k/ vs /t/",
18
+ word1: { script: "ca", romanization: "ca", definition: "fish; song", audioFile: null },
19
+ word2: { script: "ta", romanization: "ta", definition: "we", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "vi_l0_002",
23
+ level: 0,
24
+ tags: ["level_0"],
25
+ contrastFeature: "consonant",
26
+ contrastDescription: "/m/ vs /n/",
27
+ word1: { script: "mẹ", romanization: "mẹ", definition: "mother", audioFile: null },
28
+ word2: { script: "nẹ", romanization: "nẹ", definition: "(dialectal)", audioFile: null }
29
+ },
30
+ // Level 1: The six tones of Vietnamese
31
+ {
32
+ pairId: "vi_l1_001",
33
+ level: 1,
34
+ tags: ["level_1", "tone"],
35
+ contrastFeature: "tone",
36
+ contrastDescription: "ngang (mid level) vs sắc (high rising)",
37
+ pronunciationTipId: "tone_ngang_sac",
38
+ word1: { script: "ma", romanization: "ma", definition: "ghost", audioFile: null },
39
+ word2: { script: "má", romanization: "má", definition: "mother; cheek", audioFile: null }
40
+ },
41
+ {
42
+ pairId: "vi_l1_002",
43
+ level: 1,
44
+ tags: ["level_1", "tone"],
45
+ contrastFeature: "tone",
46
+ contrastDescription: "ngang (mid level) vs huyền (low falling)",
47
+ word1: { script: "ma", romanization: "ma", definition: "ghost", audioFile: null },
48
+ word2: { script: "mà", romanization: "mà", definition: "but; that", audioFile: null }
49
+ },
50
+ {
51
+ pairId: "vi_l1_003",
52
+ level: 1,
53
+ tags: ["level_1", "tone"],
54
+ contrastFeature: "tone",
55
+ contrastDescription: "ngang (mid level) vs hỏi (dipping)",
56
+ word1: { script: "ma", romanization: "ma", definition: "ghost", audioFile: null },
57
+ word2: { script: "mả", romanization: "mả", definition: "grave; tomb", audioFile: null }
58
+ },
59
+ {
60
+ pairId: "vi_l1_004",
61
+ level: 1,
62
+ tags: ["level_1", "tone"],
63
+ contrastFeature: "tone",
64
+ contrastDescription: "ngang (mid level) vs ngã (creaky rising)",
65
+ word1: { script: "ma", romanization: "ma", definition: "ghost", audioFile: null },
66
+ word2: { script: "mã", romanization: "mã", definition: "horse; code", audioFile: null }
67
+ },
68
+ {
69
+ pairId: "vi_l1_005",
70
+ level: 1,
71
+ tags: ["level_1", "tone"],
72
+ contrastFeature: "tone",
73
+ contrastDescription: "ngang (mid level) vs nặng (glottalized low)",
74
+ word1: { script: "ma", romanization: "ma", definition: "ghost", audioFile: null },
75
+ word2: { script: "mạ", romanization: "mạ", definition: "rice seedling", audioFile: null }
76
+ },
77
+ {
78
+ pairId: "vi_l1_006",
79
+ level: 1,
80
+ tags: ["level_1", "tone"],
81
+ contrastFeature: "tone",
82
+ contrastDescription: "sắc (high rising) vs ngã (creaky rising)",
83
+ word1: { script: "mái", romanization: "mái", definition: "roof", audioFile: null },
84
+ word2: { script: "mãi", romanization: "mãi", definition: "forever", audioFile: null }
85
+ },
86
+ {
87
+ pairId: "vi_l1_007",
88
+ level: 1,
89
+ tags: ["level_1", "tone"],
90
+ contrastFeature: "tone",
91
+ contrastDescription: "Full six-tone contrast on /a/",
92
+ word1: { script: "a", romanization: "a", definition: "ah!", audioFile: null },
93
+ word2: { script: "á", romanization: "á", definition: "oh! (surprise)", audioFile: null },
94
+ notes: "Complete series: a (ah!), á (oh!), à (ah...), ả (hả?), ã (ãh), ạ (ạ!)"
95
+ },
96
+ // Level 2: Initial consonants
97
+ {
98
+ pairId: "vi_l2_001",
99
+ level: 2,
100
+ tags: ["level_2", "consonant"],
101
+ contrastFeature: "consonant",
102
+ contrastDescription: "/t/ vs /ɗ/ (voiceless vs implosive)",
103
+ pronunciationTipId: "consonant_t_d",
104
+ word1: { script: "tôi", romanization: "tôi", definition: "I", audioFile: null },
105
+ word2: { script: "đôi", romanization: "đôi", definition: "pair", audioFile: null }
106
+ },
107
+ {
108
+ pairId: "vi_l2_002",
109
+ level: 2,
110
+ tags: ["level_2", "consonant"],
111
+ contrastFeature: "consonant",
112
+ contrastDescription: "/s/ vs /x/",
113
+ word1: { script: "sa", romanization: "sa", definition: "to fall; to borrow", audioFile: null },
114
+ word2: { script: "xa", romanization: "xa", definition: "far", audioFile: null }
115
+ },
116
+ {
117
+ pairId: "vi_l2_003",
118
+ level: 2,
119
+ tags: ["level_2", "consonant"],
120
+ contrastFeature: "consonant",
121
+ contrastDescription: "/tr/ vs /ch/",
122
+ word1: { script: "trẻ", romanization: "trẻ", definition: "young", audioFile: null },
123
+ word2: { script: "chẻ", romanization: "chẻ", definition: "to split", audioFile: null }
124
+ },
125
+ {
126
+ pairId: "vi_l2_004",
127
+ level: 2,
128
+ tags: ["level_2", "consonant"],
129
+ contrastFeature: "consonant",
130
+ contrastDescription: "/g/ vs /k/",
131
+ word1: { script: "gây", romanization: "gây", definition: "to cause", audioFile: null },
132
+ word2: { script: "cây", romanization: "cây", definition: "tree", audioFile: null }
133
+ },
134
+ {
135
+ pairId: "vi_l2_005",
136
+ level: 2,
137
+ tags: ["level_2", "consonant"],
138
+ contrastFeature: "consonant",
139
+ contrastDescription: "/ŋ/ vs /ɲ/",
140
+ word1: { script: "ngà", romanization: "ngà", definition: "ivory", audioFile: null },
141
+ word2: { script: "nhà", romanization: "nhà", definition: "house", audioFile: null }
142
+ },
143
+ // Level 3: Vowels
144
+ {
145
+ pairId: "vi_l3_001",
146
+ level: 3,
147
+ tags: ["level_3", "vowel"],
148
+ contrastFeature: "vowel",
149
+ contrastDescription: "/a/ vs /ɛ/",
150
+ pronunciationTipId: "vowel_a_e",
151
+ word1: { script: "cỏ", romanization: "cỏ", definition: "grass", audioFile: null },
152
+ word2: { script: "cá", romanization: "cá", definition: "fish", audioFile: null }
153
+ },
154
+ {
155
+ pairId: "vi_l3_002",
156
+ level: 3,
157
+ tags: ["level_3", "vowel"],
158
+ contrastFeature: "vowel",
159
+ contrastDescription: "/e/ vs /i/",
160
+ word1: { script: "tê", romanization: "tê", definition: "numb", audioFile: null },
161
+ word2: { script: "ti", romanization: "ti", definition: "small", audioFile: null }
162
+ },
163
+ {
164
+ pairId: "vi_l3_003",
165
+ level: 3,
166
+ tags: ["level_3", "vowel"],
167
+ contrastFeature: "vowel",
168
+ contrastDescription: "Monophthong vs diphthong",
169
+ word1: { script: "cây", romanization: "cây", definition: "tree", audioFile: null },
170
+ word2: { script: "cơi", romanization: "cơi", definition: "to open; enlarge", audioFile: null }
171
+ },
172
+ {
173
+ pairId: "vi_l3_004",
174
+ level: 3,
175
+ tags: ["level_3", "vowel"],
176
+ contrastFeature: "vowel",
177
+ contrastDescription: "/u/ vs /o/",
178
+ word1: { script: "tua", romanization: "tua", definition: "tentacle", audioFile: null },
179
+ word2: { script: "toa", romanization: "toa", definition: "train car", audioFile: null }
180
+ },
181
+ // Level 4: Final consonants
182
+ {
183
+ pairId: "vi_l4_001",
184
+ level: 4,
185
+ tags: ["level_4", "final"],
186
+ contrastFeature: "final_consonant",
187
+ contrastDescription: "Final /-n/ vs final /-ŋ/",
188
+ pronunciationTipId: "final_n_ng",
189
+ word1: { script: "tân", romanization: "tân", definition: "new", audioFile: null },
190
+ word2: { script: "tâng", romanization: "tâng", definition: "to pitch; flatter", audioFile: null }
191
+ },
192
+ {
193
+ pairId: "vi_l4_002",
194
+ level: 4,
195
+ tags: ["level_4", "final"],
196
+ contrastFeature: "final_consonant",
197
+ contrastDescription: "Final /-n/ vs final /-k/",
198
+ word1: { script: "bạn", romanization: "bạn", definition: "friend", audioFile: null },
199
+ word2: { script: "bạc", romanization: "bạc", definition: "silver", audioFile: null }
200
+ },
201
+ {
202
+ pairId: "vi_l4_003",
203
+ level: 4,
204
+ tags: ["level_4", "final"],
205
+ contrastFeature: "final_consonant",
206
+ contrastDescription: "Final /-m/ vs final /-n/",
207
+ word1: { script: "tim", romanization: "tim", definition: "heart", audioFile: null },
208
+ word2: { script: "tin", romanization: "tin", definition: "news; tin", audioFile: null }
209
+ },
210
+ // Level 5: Expert - subtle distinctions
211
+ {
212
+ pairId: "vi_l5_001",
213
+ level: 5,
214
+ tags: ["level_5", "tone"],
215
+ contrastFeature: "tone",
216
+ contrastDescription: "hỏi vs ngã (Northern distinction)",
217
+ word1: { script: "sửa", romanization: "sửa", definition: "to repair", audioFile: null },
218
+ word2: { script: "sữa", romanization: "sữa", definition: "milk", audioFile: null },
219
+ notes: "This distinction is maintained in Northern Vietnamese but merged in Southern"
220
+ },
221
+ {
222
+ pairId: "vi_l5_002",
223
+ level: 5,
224
+ tags: ["level_5", "consonant"],
225
+ contrastFeature: "consonant",
226
+ contrastDescription: "/l/ vs /n/ (regional variation)",
227
+ word1: { script: "lửa", romanization: "lửa", definition: "fire", audioFile: null },
228
+ word2: { script: "nửa", romanization: "nửa", definition: "half", audioFile: null },
229
+ notes: "Some Southern dialects merge /l/ and /n/. Northern speakers maintain the distinction."
230
+ }
231
+ ],
232
+ pronunciationTips: {
233
+ tone_ngang_sac: "ngang (mid): level, neutral. sắc (high rising): starts mid, rises sharply like a question in English.",
234
+ consonant_t_d: "/t/ is voiceless with no aspiration. /ɗ/ (đ) is implosive - pull the glottis down while making the sound.",
235
+ vowel_a_e: "/a/ is open central. /ɛ/ (e) is open-mid front. Vietnamese has many vowel qualities.",
236
+ final_n_ng: "/-n/ is alveolar (tongue on ridge). /-ŋ/ (ng) is velar (back of tongue against soft palate)."
237
+ }
12
238
  };
13
239
  export {
14
- e as default,
15
- e as minimalPairsData
240
+ i as default,
241
+ i as minimalPairsData
16
242
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { minimalPairsData as default } from './data';
1
2
  export { minimalPairsData } from './data';
2
- export default minimalPairsData;
3
+ export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '../../content-shared';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG1C,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import { default as m } from "./data.js";
2
- const a = minimalPairsData;
1
+ import { default as e, default as f } from "./data.js";
3
2
  export {
4
- a as default,
5
- m as minimalPairsData
3
+ e as default,
4
+ f as minimalPairsData
6
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyglot-bundles/vi-minimal-pairs",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",