@polyglot-bundles/pt-br-minimal-pairs 0.2.0 → 0.2.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.
package/dist/data.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- import { MinimalPairsLanguageData } from '@polyglot-bundles/content-shared';
1
+ import { MinimalPairsLanguageData } from '../../../../content-shared/src';
2
2
  export declare const minimalPairsData: MinimalPairsLanguageData;
3
+ export default minimalPairsData;
4
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,eAAO,MAAM,gBAAgB,EAAE,wBAG9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
package/dist/data.js CHANGED
@@ -1,306 +1,308 @@
1
- const i = {
2
- levels: [
3
- { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
4
- { level: 1, title: "Basic Contrasts", description: "Consonant and vowel differences" },
5
- { level: 2, title: "Common Patterns", description: "Frequent phoneme contrasts" },
6
- { level: 3, title: "Advanced Features", description: "Refined phonological nuances" },
7
- { level: 4, title: "Complex Contrasts", description: "Subtle distinctions" },
8
- { level: 5, title: "Expert Level", description: "Native-level pronunciation" }
9
- ],
10
- minimalPairs: [
11
- // Level 0: Clear contrasts
12
- {
13
- pairId: "pt_l0_001",
14
- level: 0,
15
- tags: ["level_0"],
16
- contrastFeature: "consonant",
17
- contrastDescription: "/b/ vs /p/",
18
- word1: { script: "bom", romanization: "bom", definition: "good", audioFile: null },
19
- word2: { script: "pom", romanization: "pom", definition: "I can", audioFile: null }
20
- },
21
- {
22
- pairId: "pt_l0_002",
23
- level: 0,
24
- tags: ["level_0"],
25
- contrastFeature: "consonant",
26
- contrastDescription: "/t/ vs /d/",
27
- word1: { script: "talo", romanization: "talo", definition: "trap", audioFile: null },
28
- word2: { script: "dalo", romanization: "dalo", definition: "I give", audioFile: null }
29
- },
30
- {
31
- pairId: "pt_l0_003",
32
- level: 0,
33
- tags: ["level_0"],
34
- contrastFeature: "vowel",
35
- contrastDescription: "/a/ vs /ɐ/",
36
- word1: { script: "pata", romanization: "pata", definition: "pat", audioFile: null },
37
- word2: { script: "patt", romanization: "patt", definition: "pat (less common)", audioFile: null }
38
- },
39
- {
40
- pairId: "pt_l0_004",
41
- level: 0,
42
- tags: ["level_0"],
43
- contrastFeature: "consonant",
44
- contrastDescription: "/s/ vs /z/",
45
- word1: { script: "sapo", romanization: "sapo", definition: "toad", audioFile: null },
46
- word2: { script: "zaplo", romanization: "zaplo", definition: "I zample", audioFile: null }
47
- },
48
- {
49
- pairId: "pt_l0_005",
50
- level: 0,
51
- tags: ["level_0"],
52
- contrastFeature: "consonant",
53
- contrastDescription: "/f/ vs /v/",
54
- word1: { script: "fado", romanization: "fado", definition: "fate", audioFile: null },
55
- word2: { script: "vado", romanization: "vado", definition: "I go", audioFile: null }
56
- },
57
- // Level 1: Basic contrasts
58
- {
59
- pairId: "pt_l1_001",
60
- level: 1,
61
- tags: ["level_1", "vowel"],
62
- contrastFeature: "vowel",
63
- contrastDescription: "/e/ vs /ɛ/",
64
- word1: { script: "pensar", romanization: "pensar", definition: "to think", audioFile: null },
65
- word2: { script: "pés", romanization: "pés", definition: "feet", audioFile: null }
66
- },
67
- {
68
- pairId: "pt_l1_002",
69
- level: 1,
70
- tags: ["level_1", "consonant"],
71
- contrastFeature: "consonant",
72
- contrastDescription: "/ʃ/ vs /ʒ/",
73
- word1: { script: "chuveiro", romanization: "chuveiro", definition: "shower", audioFile: null },
74
- word2: { script: "jumento", romanization: "jumento", definition: "donkey", audioFile: null }
75
- },
76
- {
77
- pairId: "pt_l1_003",
78
- level: 1,
79
- tags: ["level_1", "consonant"],
80
- contrastFeature: "consonant",
81
- contrastDescription: "/k/ vs /ɡ/",
82
- word1: { script: "canto", romanization: "canto", definition: "I sing", audioFile: null },
83
- word2: { script: "gato", romanization: "gato", definition: "cat", audioFile: null }
84
- },
85
- {
86
- pairId: "pt_l1_004",
87
- level: 1,
88
- tags: ["level_1", "consonant"],
89
- contrastFeature: "consonant",
90
- contrastDescription: "/l/ vs /ɫ/",
91
- word1: { script: "lado", romanization: "lado", definition: "side", audioFile: null },
92
- word2: { script: "alvo", romanization: "alvo", definition: "target", audioFile: null }
93
- },
94
- {
95
- pairId: "pt_l1_005",
96
- level: 1,
97
- tags: ["level_1", "vowel"],
98
- contrastFeature: "vowel",
99
- contrastDescription: "/i/ vs /ɪ/",
100
- word1: { script: "pino", romanization: "pino", definition: "pine", audioFile: null },
101
- word2: { script: "pênso", romanization: "pênso", definition: "I think", audioFile: null }
102
- },
103
- // Level 2: Common patterns
104
- {
105
- pairId: "pt_l2_001",
106
- level: 2,
107
- tags: ["level_2", "consonant"],
108
- contrastFeature: "consonant",
109
- contrastDescription: "/r/ (initial) vs /ɾ/",
110
- word1: { script: "rosto", romanization: "rosto", definition: "face", audioFile: null },
111
- word2: { script: "amor", romanization: "amor", definition: "love", audioFile: null }
112
- },
113
- {
114
- pairId: "pt_l2_002",
115
- level: 2,
116
- tags: ["level_2", "consonant"],
117
- contrastFeature: "consonant",
118
- contrastDescription: "/ʁ/ vs /ɦ/",
119
- word1: { script: "roxo", romanization: "roxo", definition: "purple", audioFile: null },
120
- word2: { script: "hóspede", romanization: "hóspede", definition: "guest", audioFile: null }
121
- },
122
- {
123
- pairId: "pt_l2_003",
124
- level: 2,
125
- tags: ["level_2", "vowel"],
126
- contrastFeature: "vowel",
127
- contrastDescription: "/u/ vs /ʊ/",
128
- word1: { script: "lua", romanization: "lua", definition: "moon", audioFile: null },
129
- word2: { script: "lufa", romanization: "lufa", definition: "breath", audioFile: null }
130
- },
131
- {
132
- pairId: "pt_l2_004",
133
- level: 2,
134
- tags: ["level_2", "consonant"],
135
- contrastFeature: "consonant",
136
- contrastDescription: "/m/ vs /ɱ/",
137
- word1: { script: "mão", romanization: "mão", definition: "hand", audioFile: null },
138
- word2: { script: "banana", romanization: "banana", definition: "banana", audioFile: null }
139
- },
140
- {
141
- pairId: "pt_l2_005",
142
- level: 2,
143
- tags: ["level_2", "consonant"],
144
- contrastFeature: "consonant",
145
- contrastDescription: "/n/ vs /ɲ/",
146
- word1: { script: "noite", romanization: "noite", definition: "night", audioFile: null },
147
- word2: { script: "nhoc", romanization: "nhoc", definition: "gnocchi", audioFile: null }
148
- },
149
- // Level 3: Advanced features
150
- {
151
- pairId: "pt_l3_001",
152
- level: 3,
153
- tags: ["level_3", "vowel"],
154
- contrastFeature: "vowel",
155
- contrastDescription: "/ɔ/ vs /o/",
156
- word1: { script: "porto", romanization: "porto", definition: "port", audioFile: null },
157
- word2: { script: "póro", romanization: "póro", definition: "perforation", audioFile: null }
158
- },
159
- {
160
- pairId: "pt_l3_002",
161
- level: 3,
162
- tags: ["level_3", "consonant"],
163
- contrastFeature: "consonant",
164
- contrastDescription: "/b/ vs /β/",
165
- word1: { script: "bola", romanization: "bola", definition: "ball", audioFile: null },
166
- word2: { script: "hablo", romanization: "hablo", definition: "I speak", audioFile: null }
167
- },
168
- {
169
- pairId: "pt_l3_003",
170
- level: 3,
171
- tags: ["level_3", "consonant"],
172
- contrastFeature: "consonant",
173
- contrastDescription: "/d/ vs /ð/",
174
- word1: { script: "dedo", romanization: "dedo", definition: "finger", audioFile: null },
175
- word2: { script: "hodo", romanization: "hodo", definition: "way", audioFile: null }
176
- },
177
- {
178
- pairId: "pt_l3_004",
179
- level: 3,
180
- tags: ["level_3", "consonant"],
181
- contrastFeature: "consonant",
182
- contrastDescription: "/ɡ/ vs /ɣ/",
183
- word1: { script: "gelo", romanization: "gelo", definition: "ice", audioFile: null },
184
- word2: { script: "helo", romanization: "helo", definition: "I speak", audioFile: null }
185
- },
186
- {
187
- pairId: "pt_l3_005",
188
- level: 3,
189
- tags: ["level_3", "vowel"],
190
- contrastFeature: "vowel",
191
- contrastDescription: "/ɛ/ vs /e/",
192
- word1: { script: "pélo", romanization: "pélo", definition: "fuzzy", audioFile: null },
193
- word2: { script: "péllo", romanization: "péllo", definition: "I hit", audioFile: null }
194
- },
195
- // Level 4: Complex contrasts
196
- {
197
- pairId: "pt_l4_001",
198
- level: 4,
199
- tags: ["level_4", "consonant"],
200
- contrastFeature: "consonant",
201
- contrastDescription: "/t/ vs /tʃ/",
202
- word1: { script: "tela", romanization: "tela", definition: "screen", audioFile: null },
203
- word2: { script: "chela", romanization: "chela", definition: "waitress", audioFile: null }
204
- },
205
- {
206
- pairId: "pt_l4_002",
207
- level: 4,
208
- tags: ["level_4", "consonant"],
209
- contrastFeature: "consonant",
210
- contrastDescription: "/d/ vs /ʒ/",
211
- word1: { script: "doce", romanization: "doce", definition: "sweet", audioFile: null },
212
- word2: { script: "joca", romanization: "joca", definition: "joke", audioFile: null }
213
- },
214
- {
215
- pairId: "pt_l4_003",
216
- level: 4,
217
- tags: ["level_4", "vowel"],
218
- contrastFeature: "vowel",
219
- contrastDescription: "/a/ vs /ɐ/ (regional)",
220
- word1: { script: "casa", romanization: "casa", definition: "house", audioFile: null },
221
- word2: { script: "catt", romanization: "catt", definition: "cat (archaic)", audioFile: null }
222
- },
223
- {
224
- pairId: "pt_l4_004",
225
- level: 4,
226
- tags: ["level_4", "consonant"],
227
- contrastFeature: "consonant",
228
- contrastDescription: "/s/ (final) vs /z/ (intervocalic)",
229
- word1: { script: "caso", romanization: "caso", definition: "case", audioFile: null },
230
- word2: { script: "cazo", romanization: "cazo", definition: "I hunt", audioFile: null }
231
- },
232
- {
233
- pairId: "pt_l4_005",
234
- level: 4,
235
- tags: ["level_4", "consonant"],
236
- contrastFeature: "consonant",
237
- contrastDescription: "/l/ (final) vs /w/",
238
- word1: { script: "mal", romanization: "mal", definition: "bad", audioFile: null },
239
- word2: { script: "maw", romanization: "maw", definition: "mother", audioFile: null }
240
- },
241
- // Level 5: Expert level
242
- {
243
- pairId: "pt_l5_001",
244
- level: 5,
245
- tags: ["level_5", "vowel"],
246
- contrastFeature: "vowel",
247
- contrastDescription: "/ɐ/ vs /ə/ (reduction)",
248
- word1: { script: "ama", romanization: "ama", definition: "she loves", audioFile: null },
249
- word2: { script: "ama", romanization: "ama", definition: "love (reduced)", audioFile: null }
250
- },
251
- {
252
- pairId: "pt_l5_002",
253
- level: 5,
254
- tags: ["level_5", "consonant"],
255
- contrastFeature: "consonant",
256
- contrastDescription: "/r/ (geminate) vs /ɾ/ (single)",
257
- word1: { script: "carro", romanization: "carro", definition: "car", audioFile: null },
258
- word2: { script: "cato", romanization: "cato", definition: "I catch", audioFile: null }
259
- },
260
- {
261
- pairId: "pt_l5_003",
262
- level: 5,
263
- tags: ["level_5", "consonant"],
264
- contrastFeature: "consonant",
265
- contrastDescription: "/ʃ/ vs /s/ (regional)",
266
- word1: { script: "chave", romanization: "chave", definition: "key", audioFile: null },
267
- word2: { script: "save", romanization: "save", definition: "save", audioFile: null }
268
- },
269
- {
270
- pairId: "pt_l5_004",
271
- level: 5,
272
- tags: ["level_5", "consonant"],
273
- contrastFeature: "consonant",
274
- contrastDescription: "/ʒ/ vs /z/ (regional)",
275
- word1: { script: "jantar", romanization: "jantar", definition: "to dinner", audioFile: null },
276
- word2: { script: "zanhar", romanization: "zanhar", definition: "to strike", audioFile: null }
277
- },
278
- {
279
- pairId: "pt_l5_005",
280
- level: 5,
281
- tags: ["level_5", "vowel"],
282
- contrastFeature: "vowel",
283
- contrastDescription: "/u/ (closed) vs /w/ (semi-vowel)",
284
- word1: { script: "luar", romanization: "luar", definition: "moonlight", audioFile: null },
285
- word2: { script: "luar", romanization: "luar", definition: "moonlight (variant)", audioFile: null }
286
- }
287
- ],
288
- pronunciationTips: {
289
- consonant_intro: "Portuguese has 21-27 consonant phonemes depending on the variety",
290
- vowel_intro: "Portuguese has 7-9 vowel qualities with nasal vowels and diphthongs",
291
- emphatic_intro: "Portuguese lacks emphatic consonants but has significant regional variation",
292
- guttural_intro: "European Portuguese has the voiceless velar fricative /x/ (h) and voiced uvular fricative /ʁ/ (r)"
1
+ import i from "./pronunciationTips.js";
2
+ const o = [
3
+ {
4
+ pairId: "pt_l0_001",
5
+ level: 0,
6
+ tags: ["level_0"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "/b/ vs /p/",
9
+ word1: { script: "bom", romanization: "bom", definition: "good", audioFile: null },
10
+ word2: { script: "pom", romanization: "pom", definition: "I can", audioFile: null }
11
+ },
12
+ {
13
+ pairId: "pt_l0_002",
14
+ level: 0,
15
+ tags: ["level_0"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "/t/ vs /d/",
18
+ word1: { script: "talo", romanization: "talo", definition: "trap", audioFile: null },
19
+ word2: { script: "dalo", romanization: "dalo", definition: "I give", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "pt_l0_003",
23
+ level: 0,
24
+ tags: ["level_0"],
25
+ contrastFeature: "vowel",
26
+ contrastDescription: "/a/ vs /ɐ/",
27
+ word1: { script: "pata", romanization: "pata", definition: "pat", audioFile: null },
28
+ word2: { script: "patt", romanization: "patt", definition: "pat (less common)", audioFile: null }
29
+ },
30
+ {
31
+ pairId: "pt_l0_004",
32
+ level: 0,
33
+ tags: ["level_0"],
34
+ contrastFeature: "consonant",
35
+ contrastDescription: "/s/ vs /z/",
36
+ word1: { script: "sapo", romanization: "sapo", definition: "toad", audioFile: null },
37
+ word2: { script: "zaplo", romanization: "zaplo", definition: "I zample", audioFile: null }
38
+ },
39
+ {
40
+ pairId: "pt_l0_005",
41
+ level: 0,
42
+ tags: ["level_0"],
43
+ contrastFeature: "consonant",
44
+ contrastDescription: "/f/ vs /v/",
45
+ word1: { script: "fado", romanization: "fado", definition: "fate", audioFile: null },
46
+ word2: { script: "vado", romanization: "vado", definition: "I go", audioFile: null }
293
47
  }
294
- }, o = {
295
- ...i,
296
- pronunciationTips: {
297
- ...i.pronunciationTips,
298
- consonant_intro: "Brazilian Portuguese has 19 consonant phonemes with palatalization patterns",
299
- vowel_intro: "Brazilian Portuguese has 9 vowel qualities with distinctive nasal vowels",
300
- emphatic_intro: "Brazilian Portuguese lacks emphatic consonants but has velarization patterns",
301
- guttural_intro: "Brazilian Portuguese features the voiceless glottal fricative /h/ (r) and approximant /ʁ/ variations"
48
+ ], n = [
49
+ {
50
+ pairId: "pt_l1_001",
51
+ level: 1,
52
+ tags: ["level_1", "vowel"],
53
+ contrastFeature: "vowel",
54
+ contrastDescription: "/e/ vs /ɛ/",
55
+ word1: { script: "pensar", romanization: "pensar", definition: "to think", audioFile: null },
56
+ word2: { script: "pés", romanization: "pés", definition: "feet", audioFile: null }
57
+ },
58
+ {
59
+ pairId: "pt_l1_002",
60
+ level: 1,
61
+ tags: ["level_1", "consonant"],
62
+ contrastFeature: "consonant",
63
+ contrastDescription: "/ʃ/ vs /ʒ/",
64
+ word1: { script: "chuveiro", romanization: "chuveiro", definition: "shower", audioFile: null },
65
+ word2: { script: "jumento", romanization: "jumento", definition: "donkey", audioFile: null }
66
+ },
67
+ {
68
+ pairId: "pt_l1_003",
69
+ level: 1,
70
+ tags: ["level_1", "consonant"],
71
+ contrastFeature: "consonant",
72
+ contrastDescription: "/k/ vs /ɡ/",
73
+ word1: { script: "canto", romanization: "canto", definition: "I sing", audioFile: null },
74
+ word2: { script: "gato", romanization: "gato", definition: "cat", audioFile: null }
75
+ },
76
+ {
77
+ pairId: "pt_l1_004",
78
+ level: 1,
79
+ tags: ["level_1", "consonant"],
80
+ contrastFeature: "consonant",
81
+ contrastDescription: "/l/ vs /ɫ/",
82
+ word1: { script: "lado", romanization: "lado", definition: "side", audioFile: null },
83
+ word2: { script: "alvo", romanization: "alvo", definition: "target", audioFile: null }
84
+ },
85
+ {
86
+ pairId: "pt_l1_005",
87
+ level: 1,
88
+ tags: ["level_1", "vowel"],
89
+ contrastFeature: "vowel",
90
+ contrastDescription: "/i/ vs /ɪ/",
91
+ word1: { script: "pino", romanization: "pino", definition: "pine", audioFile: null },
92
+ word2: { script: "pênso", romanization: "pênso", definition: "I think", audioFile: null }
302
93
  }
94
+ ], t = [
95
+ {
96
+ pairId: "pt_l2_001",
97
+ level: 2,
98
+ tags: ["level_2", "consonant"],
99
+ contrastFeature: "consonant",
100
+ contrastDescription: "/r/ (initial) vs /ɾ/",
101
+ word1: { script: "rosto", romanization: "rosto", definition: "face", audioFile: null },
102
+ word2: { script: "amor", romanization: "amor", definition: "love", audioFile: null }
103
+ },
104
+ {
105
+ pairId: "pt_l2_002",
106
+ level: 2,
107
+ tags: ["level_2", "consonant"],
108
+ contrastFeature: "consonant",
109
+ contrastDescription: "/ʁ/ vs /ɦ/",
110
+ word1: { script: "roxo", romanization: "roxo", definition: "purple", audioFile: null },
111
+ word2: { script: "hóspede", romanization: "hóspede", definition: "guest", audioFile: null }
112
+ },
113
+ {
114
+ pairId: "pt_l2_003",
115
+ level: 2,
116
+ tags: ["level_2", "vowel"],
117
+ contrastFeature: "vowel",
118
+ contrastDescription: "/u/ vs /ʊ/",
119
+ word1: { script: "lua", romanization: "lua", definition: "moon", audioFile: null },
120
+ word2: { script: "lufa", romanization: "lufa", definition: "breath", audioFile: null }
121
+ },
122
+ {
123
+ pairId: "pt_l2_004",
124
+ level: 2,
125
+ tags: ["level_2", "consonant"],
126
+ contrastFeature: "consonant",
127
+ contrastDescription: "/m/ vs /ɱ/",
128
+ word1: { script: "mão", romanization: "mão", definition: "hand", audioFile: null },
129
+ word2: { script: "banana", romanization: "banana", definition: "banana", audioFile: null }
130
+ },
131
+ {
132
+ pairId: "pt_l2_005",
133
+ level: 2,
134
+ tags: ["level_2", "consonant"],
135
+ contrastFeature: "consonant",
136
+ contrastDescription: "/n/ vs /ɲ/",
137
+ word1: { script: "noite", romanization: "noite", definition: "night", audioFile: null },
138
+ word2: { script: "nhoc", romanization: "nhoc", definition: "gnocchi", audioFile: null }
139
+ }
140
+ ], a = [
141
+ {
142
+ pairId: "pt_l3_001",
143
+ level: 3,
144
+ tags: ["level_3", "vowel"],
145
+ contrastFeature: "vowel",
146
+ contrastDescription: "/ɔ/ vs /o/",
147
+ word1: { script: "porto", romanization: "porto", definition: "port", audioFile: null },
148
+ word2: { script: "póro", romanization: "póro", definition: "perforation", audioFile: null }
149
+ },
150
+ {
151
+ pairId: "pt_l3_002",
152
+ level: 3,
153
+ tags: ["level_3", "consonant"],
154
+ contrastFeature: "consonant",
155
+ contrastDescription: "/b/ vs /β/",
156
+ word1: { script: "bola", romanization: "bola", definition: "ball", audioFile: null },
157
+ word2: { script: "hablo", romanization: "hablo", definition: "I speak", audioFile: null }
158
+ },
159
+ {
160
+ pairId: "pt_l3_003",
161
+ level: 3,
162
+ tags: ["level_3", "consonant"],
163
+ contrastFeature: "consonant",
164
+ contrastDescription: "/d/ vs /ð/",
165
+ word1: { script: "dedo", romanization: "dedo", definition: "finger", audioFile: null },
166
+ word2: { script: "hodo", romanization: "hodo", definition: "way", audioFile: null }
167
+ },
168
+ {
169
+ pairId: "pt_l3_004",
170
+ level: 3,
171
+ tags: ["level_3", "consonant"],
172
+ contrastFeature: "consonant",
173
+ contrastDescription: "/ɡ/ vs /ɣ/",
174
+ word1: { script: "gelo", romanization: "gelo", definition: "ice", audioFile: null },
175
+ word2: { script: "helo", romanization: "helo", definition: "I speak", audioFile: null }
176
+ },
177
+ {
178
+ pairId: "pt_l3_005",
179
+ level: 3,
180
+ tags: ["level_3", "vowel"],
181
+ contrastFeature: "vowel",
182
+ contrastDescription: "/ɛ/ vs /e/",
183
+ word1: { script: "pélo", romanization: "pélo", definition: "fuzzy", audioFile: null },
184
+ word2: { script: "péllo", romanization: "péllo", definition: "I hit", audioFile: null }
185
+ }
186
+ ], e = [
187
+ {
188
+ pairId: "pt_l4_001",
189
+ level: 4,
190
+ tags: ["level_4", "consonant"],
191
+ contrastFeature: "consonant",
192
+ contrastDescription: "/t/ vs /tʃ/",
193
+ word1: { script: "tela", romanization: "tela", definition: "screen", audioFile: null },
194
+ word2: { script: "chela", romanization: "chela", definition: "waitress", audioFile: null }
195
+ },
196
+ {
197
+ pairId: "pt_l4_002",
198
+ level: 4,
199
+ tags: ["level_4", "consonant"],
200
+ contrastFeature: "consonant",
201
+ contrastDescription: "/d/ vs /ʒ/",
202
+ word1: { script: "doce", romanization: "doce", definition: "sweet", audioFile: null },
203
+ word2: { script: "joca", romanization: "joca", definition: "joke", audioFile: null }
204
+ },
205
+ {
206
+ pairId: "pt_l4_003",
207
+ level: 4,
208
+ tags: ["level_4", "vowel"],
209
+ contrastFeature: "vowel",
210
+ contrastDescription: "/a/ vs /ɐ/ (regional)",
211
+ word1: { script: "casa", romanization: "casa", definition: "house", audioFile: null },
212
+ word2: { script: "catt", romanization: "catt", definition: "cat (archaic)", audioFile: null }
213
+ },
214
+ {
215
+ pairId: "pt_l4_004",
216
+ level: 4,
217
+ tags: ["level_4", "consonant"],
218
+ contrastFeature: "consonant",
219
+ contrastDescription: "/s/ (final) vs /z/ (intervocalic)",
220
+ word1: { script: "caso", romanization: "caso", definition: "case", audioFile: null },
221
+ word2: { script: "cazo", romanization: "cazo", definition: "I hunt", audioFile: null }
222
+ },
223
+ {
224
+ pairId: "pt_l4_005",
225
+ level: 4,
226
+ tags: ["level_4", "consonant"],
227
+ contrastFeature: "consonant",
228
+ contrastDescription: "/l/ (final) vs /w/",
229
+ word1: { script: "mal", romanization: "mal", definition: "bad", audioFile: null },
230
+ word2: { script: "maw", romanization: "maw", definition: "mother", audioFile: null }
231
+ }
232
+ ], l = [
233
+ {
234
+ pairId: "pt_l5_001",
235
+ level: 5,
236
+ tags: ["level_5", "vowel"],
237
+ contrastFeature: "vowel",
238
+ contrastDescription: "/ɐ/ vs /ə/ (reduction)",
239
+ word1: { script: "ama", romanization: "ama", definition: "she loves", audioFile: null },
240
+ word2: { script: "ama", romanization: "ama", definition: "love (reduced)", audioFile: null }
241
+ },
242
+ {
243
+ pairId: "pt_l5_002",
244
+ level: 5,
245
+ tags: ["level_5", "consonant"],
246
+ contrastFeature: "consonant",
247
+ contrastDescription: "/r/ (geminate) vs /ɾ/ (single)",
248
+ word1: { script: "carro", romanization: "carro", definition: "car", audioFile: null },
249
+ word2: { script: "cato", romanization: "cato", definition: "I catch", audioFile: null }
250
+ },
251
+ {
252
+ pairId: "pt_l5_003",
253
+ level: 5,
254
+ tags: ["level_5", "consonant"],
255
+ contrastFeature: "consonant",
256
+ contrastDescription: "/ʃ/ vs /s/ (regional)",
257
+ word1: { script: "chave", romanization: "chave", definition: "key", audioFile: null },
258
+ word2: { script: "save", romanization: "save", definition: "save", audioFile: null }
259
+ },
260
+ {
261
+ pairId: "pt_l5_004",
262
+ level: 5,
263
+ tags: ["level_5", "consonant"],
264
+ contrastFeature: "consonant",
265
+ contrastDescription: "/ʒ/ vs /z/ (regional)",
266
+ word1: { script: "jantar", romanization: "jantar", definition: "to dinner", audioFile: null },
267
+ word2: { script: "zanhar", romanization: "zanhar", definition: "to strike", audioFile: null }
268
+ },
269
+ {
270
+ pairId: "pt_l5_005",
271
+ level: 5,
272
+ tags: ["level_5", "vowel"],
273
+ contrastFeature: "vowel",
274
+ contrastDescription: "/u/ (closed) vs /w/ (semi-vowel)",
275
+ word1: { script: "luar", romanization: "luar", definition: "moonlight", audioFile: null },
276
+ word2: { script: "luar", romanization: "luar", definition: "moonlight (variant)", audioFile: null }
277
+ }
278
+ ], r = [
279
+ { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
280
+ { level: 1, title: "Basic Contrasts", description: "Consonant and vowel differences" },
281
+ { level: 2, title: "Common Patterns", description: "Frequent phoneme contrasts" },
282
+ { level: 3, title: "Advanced Features", description: "Refined phonological nuances" },
283
+ { level: 4, title: "Complex Contrasts", description: "Subtle distinctions" },
284
+ { level: 5, title: "Expert Level", description: "Native-level pronunciation" }
285
+ ], s = {
286
+ consonant_intro: "Portuguese has 21-27 consonant phonemes depending on the variety",
287
+ vowel_intro: "Portuguese has 7-9 vowel qualities with nasal vowels and diphthongs",
288
+ emphatic_intro: "Portuguese lacks emphatic consonants but has significant regional variation",
289
+ guttural_intro: "European Portuguese has the voiceless velar fricative /x/ (h) and voiced uvular fricative /ʁ/ (r)"
290
+ }, c = [
291
+ ...o,
292
+ ...n,
293
+ ...t,
294
+ ...a,
295
+ ...e,
296
+ ...l
297
+ ], d = {
298
+ levels: r,
299
+ minimalPairs: c,
300
+ pronunciationTips: s
301
+ }, u = {
302
+ ...d,
303
+ pronunciationTips: i
303
304
  };
304
305
  export {
305
- o as minimalPairsData
306
+ u as default,
307
+ u as minimalPairsData
306
308
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { minimalPairsData as default } from './data';
2
- export { minimalPairsData } from './data';
3
- export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '@polyglot-bundles/content-shared';
2
+ export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '../../../../content-shared/src';
3
+ export { level0, level1, level2, level3, level4, level5, levels, } from '@polyglot-bundles/pt-minimal-pairs';
4
+ export { pronunciationTips } from './pronunciationTips';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAErD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,14 @@
1
- import { minimalPairsData as m, minimalPairsData as r } from "./data.js";
1
+ import { default as o } from "./data.js";
2
+ import { level0 as v, level1 as t, level2 as f, level3 as p, level4 as a, level5 as i, levels as m } from "@polyglot-bundles/pt-minimal-pairs";
3
+ import { default as s } from "./pronunciationTips.js";
2
4
  export {
3
- m as default,
4
- r as minimalPairsData
5
+ o as default,
6
+ v as level0,
7
+ t as level1,
8
+ f as level2,
9
+ p as level3,
10
+ a as level4,
11
+ i as level5,
12
+ m as levels,
13
+ s as pronunciationTips
5
14
  };
@@ -0,0 +1,4 @@
1
+ import { MinimalPairsPronunciationTipsMap } from '../../../../content-shared/src';
2
+ export declare const pronunciationTips: MinimalPairsPronunciationTipsMap;
3
+ export default pronunciationTips;
4
+ //# sourceMappingURL=pronunciationTips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pronunciationTips.d.ts","sourceRoot":"","sources":["../src/pronunciationTips.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AAEzF,eAAO,MAAM,iBAAiB,EAAE,gCAK/B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ const a = {
2
+ consonant_intro: "Brazilian Portuguese has 19 consonant phonemes with palatalization patterns",
3
+ vowel_intro: "Brazilian Portuguese has 9 vowel qualities with distinctive nasal vowels",
4
+ emphatic_intro: "Brazilian Portuguese lacks emphatic consonants but has velarization patterns",
5
+ guttural_intro: "Brazilian Portuguese features the voiceless glottal fricative /h/ (r) and approximant /ʁ/ variations"
6
+ };
7
+ export {
8
+ a as default,
9
+ a as pronunciationTips
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyglot-bundles/pt-br-minimal-pairs",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,14 +12,18 @@
12
12
  "./data": {
13
13
  "types": "./dist/data.d.ts",
14
14
  "import": "./dist/data.js"
15
+ },
16
+ "./pronunciationTips": {
17
+ "types": "./dist/pronunciationTips.d.ts",
18
+ "import": "./dist/pronunciationTips.js"
15
19
  }
16
20
  },
17
21
  "files": [
18
22
  "dist"
19
23
  ],
20
24
  "dependencies": {
21
- "@polyglot-bundles/content-shared": "0.3.0",
22
- "@polyglot-bundles/pt-minimal-pairs": "0.2.0"
25
+ "@polyglot-bundles/content-shared": "0.3.1",
26
+ "@polyglot-bundles/pt-minimal-pairs": "0.2.1"
23
27
  },
24
28
  "devDependencies": {
25
29
  "vite": "^5.4.0",