@polyglot-bundles/pt-br-minimal-pairs 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.
package/dist/data.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { MinimalPairsLanguageData } from '@polyglot-bundles/content-shared';
2
+ export declare const minimalPairsData: MinimalPairsLanguageData;
package/dist/data.js ADDED
@@ -0,0 +1,306 @@
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)"
293
+ }
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"
302
+ }
303
+ };
304
+ export {
305
+ o as minimalPairsData
306
+ };
@@ -0,0 +1,3 @@
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';
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import { minimalPairsData as m, minimalPairsData as r } from "./data.js";
2
+ export {
3
+ m as default,
4
+ r as minimalPairsData
5
+ };
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@polyglot-bundles/pt-br-minimal-pairs",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ },
12
+ "./data": {
13
+ "types": "./dist/data.d.ts",
14
+ "import": "./dist/data.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "dependencies": {
21
+ "@polyglot-bundles/content-shared": "0.3.0",
22
+ "@polyglot-bundles/pt-minimal-pairs": "0.2.0"
23
+ },
24
+ "devDependencies": {
25
+ "vite": "^5.4.0",
26
+ "vite-plugin-dts": "^4.0.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/fustilio/polyglot-bundles",
34
+ "directory": "packages/pt-br/minimal-pairs"
35
+ },
36
+ "scripts": {
37
+ "build": "vite build",
38
+ "clean": "rm -rf dist"
39
+ }
40
+ }