@polyglot-bundles/ru-minimal-pairs 0.2.0 → 0.3.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/level-0.d.ts +3 -0
- package/dist/data/level-0.d.ts.map +1 -0
- package/dist/data/level-1.d.ts +3 -0
- package/dist/data/level-1.d.ts.map +1 -0
- package/dist/data/level-2.d.ts +3 -0
- package/dist/data/level-2.d.ts.map +1 -0
- package/dist/data/level-3.d.ts +3 -0
- package/dist/data/level-3.d.ts.map +1 -0
- package/dist/data/level-4.d.ts +3 -0
- package/dist/data/level-4.d.ts.map +1 -0
- package/dist/data/level-5.d.ts +3 -0
- package/dist/data/level-5.d.ts.map +1 -0
- package/dist/data.d.ts +4 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +24 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/level0.js +23 -0
- package/dist/level1.js +52 -0
- package/dist/level2.js +51 -0
- package/dist/level3.js +51 -0
- package/dist/level4.js +54 -0
- package/dist/level5.js +54 -0
- package/dist/levels.d.ts +3 -0
- package/dist/levels.d.ts.map +1 -0
- package/dist/levels.js +11 -0
- package/dist/pronunciationTips.d.ts +3 -0
- package/dist/pronunciationTips.d.ts.map +1 -0
- package/dist/pronunciationTips.js +13 -0
- package/package.json +34 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-0.d.ts","sourceRoot":"","sources":["../../src/data/level-0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EAmBhD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-1.d.ts","sourceRoot":"","sources":["../../src/data/level-1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EAgDhD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-2.d.ts","sourceRoot":"","sources":["../../src/data/level-2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EA+ChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-3.d.ts","sourceRoot":"","sources":["../../src/data/level-3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EA+ChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-4.d.ts","sourceRoot":"","sources":["../../src/data/level-4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EAkDhD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level-5.d.ts","sourceRoot":"","sources":["../../src/data/level-5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,WAAW,EAAE,uBAAuB,EAkDhD,CAAC"}
|
package/dist/data.d.ts
ADDED
|
@@ -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;AAmBjF,eAAO,MAAM,gBAAgB,EAAE,wBAI9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/dist/data.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { levels as r } from "./levels.js";
|
|
2
|
+
import { pronunciationTips as i } from "./pronunciationTips.js";
|
|
3
|
+
import { level0Pairs as o } from "./level0.js";
|
|
4
|
+
import { level1Pairs as m } from "./level1.js";
|
|
5
|
+
import { level2Pairs as l } from "./level2.js";
|
|
6
|
+
import { level3Pairs as a } from "./level3.js";
|
|
7
|
+
import { level4Pairs as e } from "./level4.js";
|
|
8
|
+
import { level5Pairs as s } from "./level5.js";
|
|
9
|
+
const t = [
|
|
10
|
+
...o,
|
|
11
|
+
...m,
|
|
12
|
+
...l,
|
|
13
|
+
...a,
|
|
14
|
+
...e,
|
|
15
|
+
...s
|
|
16
|
+
], x = {
|
|
17
|
+
levels: r,
|
|
18
|
+
minimalPairs: t,
|
|
19
|
+
pronunciationTips: i
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
x as default,
|
|
23
|
+
x as minimalPairsData
|
|
24
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as minimalPairsData } from './data';
|
|
2
|
+
export { level0Pairs } from './data/level-0';
|
|
3
|
+
export { level1Pairs } from './data/level-1';
|
|
4
|
+
export { level2Pairs } from './data/level-2';
|
|
5
|
+
export { level3Pairs } from './data/level-3';
|
|
6
|
+
export { level4Pairs } from './data/level-4';
|
|
7
|
+
export { level5Pairs } from './data/level-5';
|
|
8
|
+
export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '../../../../content-shared/src';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as l } from "./data.js";
|
|
2
|
+
import { level0Pairs as a } from "./level0.js";
|
|
3
|
+
import { level1Pairs as m } from "./level1.js";
|
|
4
|
+
import { level2Pairs as f } from "./level2.js";
|
|
5
|
+
import { level3Pairs as p } from "./level3.js";
|
|
6
|
+
import { level4Pairs as P } from "./level4.js";
|
|
7
|
+
import { level5Pairs as d } from "./level5.js";
|
|
8
|
+
export {
|
|
9
|
+
a as level0Pairs,
|
|
10
|
+
m as level1Pairs,
|
|
11
|
+
f as level2Pairs,
|
|
12
|
+
p as level3Pairs,
|
|
13
|
+
P as level4Pairs,
|
|
14
|
+
d as level5Pairs,
|
|
15
|
+
l as minimalPairsData
|
|
16
|
+
};
|
package/dist/level0.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const i = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l0_001",
|
|
4
|
+
level: 0,
|
|
5
|
+
tags: ["level_0"],
|
|
6
|
+
contrastFeature: "consonant",
|
|
7
|
+
contrastDescription: "/b/ vs /p/",
|
|
8
|
+
word1: { script: "ба́та", romanization: "báta", definition: "bat (animal)", audioFile: null },
|
|
9
|
+
word2: { script: "па́та", romanization: "páta", definition: "pata (type of dance)", audioFile: null }
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
pairId: "ru_l0_002",
|
|
13
|
+
level: 0,
|
|
14
|
+
tags: ["level_0"],
|
|
15
|
+
contrastFeature: "consonant",
|
|
16
|
+
contrastDescription: "/m/ vs /f/",
|
|
17
|
+
word1: { script: "ма́та", romanization: "máta", definition: "mother (vocative)", audioFile: null },
|
|
18
|
+
word2: { script: "фа́та", romanization: "fátа", definition: "fat (archaic)", audioFile: null }
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
export {
|
|
22
|
+
i as level0Pairs
|
|
23
|
+
};
|
package/dist/level1.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const i = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l1_001",
|
|
4
|
+
level: 1,
|
|
5
|
+
tags: ["level_1", "vowel"],
|
|
6
|
+
contrastFeature: "vowel",
|
|
7
|
+
contrastDescription: "/a/ vs /o/",
|
|
8
|
+
pronunciationTipId: "vowel_a_o",
|
|
9
|
+
word1: { script: "мама́", romanization: "mamá", definition: "mom", audioFile: null },
|
|
10
|
+
word2: { script: "мома́", romanization: "momá", definition: "mom (dialectal)", audioFile: null }
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
pairId: "ru_l1_002",
|
|
14
|
+
level: 1,
|
|
15
|
+
tags: ["level_1", "vowel"],
|
|
16
|
+
contrastFeature: "vowel",
|
|
17
|
+
contrastDescription: "/e/ vs /i/",
|
|
18
|
+
pronunciationTipId: "vowel_e_i",
|
|
19
|
+
word1: { script: "дерево́", romanization: "derévó", definition: "tree", audioFile: null },
|
|
20
|
+
word2: { script: "дирево́", romanization: "direzvó", definition: "(dialectal variant)", audioFile: null }
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
pairId: "ru_l1_003",
|
|
24
|
+
level: 1,
|
|
25
|
+
tags: ["level_1", "vowel"],
|
|
26
|
+
contrastFeature: "vowel",
|
|
27
|
+
contrastDescription: "/o/ vs /u/",
|
|
28
|
+
word1: { script: "до́ма", romanization: "dóma", definition: "home (accusative)", audioFile: null },
|
|
29
|
+
word2: { script: "ду́ма", romanization: "dúma", definition: "think! (imperative)", audioFile: null }
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
pairId: "ru_l1_004",
|
|
33
|
+
level: 1,
|
|
34
|
+
tags: ["level_1", "vowel"],
|
|
35
|
+
contrastFeature: "vowel",
|
|
36
|
+
contrastDescription: "/a/ vs /i/",
|
|
37
|
+
word1: { script: "пара́", romanization: "pará", definition: "pair", audioFile: null },
|
|
38
|
+
word2: { script: "пира́", romanization: "pirá", definition: "feast (genitive)", audioFile: null }
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
pairId: "ru_l1_005",
|
|
42
|
+
level: 1,
|
|
43
|
+
tags: ["level_1", "vowel"],
|
|
44
|
+
contrastFeature: "vowel",
|
|
45
|
+
contrastDescription: "/e/ vs /o/",
|
|
46
|
+
word1: { script: "ме́сто", romanization: "méssto", definition: "place", audioFile: null },
|
|
47
|
+
word2: { script: "мо́сто", romanization: "mósto", definition: "bridge (accusative)", audioFile: null }
|
|
48
|
+
}
|
|
49
|
+
];
|
|
50
|
+
export {
|
|
51
|
+
i as level1Pairs
|
|
52
|
+
};
|
package/dist/level2.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const i = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l2_001",
|
|
4
|
+
level: 2,
|
|
5
|
+
tags: ["level_2", "consonant"],
|
|
6
|
+
contrastFeature: "consonant",
|
|
7
|
+
contrastDescription: "/b/ vs /p/ (voiced vs voiceless)",
|
|
8
|
+
pronunciationTipId: "consonant_voicing",
|
|
9
|
+
word1: { script: "ба́ба", romanization: "bába", definition: "old woman; grandmother", audioFile: null },
|
|
10
|
+
word2: { script: "па́ба", romanization: "pába", definition: "(dialectal variant)", audioFile: null }
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
pairId: "ru_l2_002",
|
|
14
|
+
level: 2,
|
|
15
|
+
tags: ["level_2", "consonant"],
|
|
16
|
+
contrastFeature: "consonant",
|
|
17
|
+
contrastDescription: "/d/ vs /t/",
|
|
18
|
+
word1: { script: "да́ма", romanization: "dámа", definition: "lady", audioFile: null },
|
|
19
|
+
word2: { script: "та́ма", romanization: "támа", definition: "(dialectal variant)", audioFile: null }
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
pairId: "ru_l2_003",
|
|
23
|
+
level: 2,
|
|
24
|
+
tags: ["level_2", "consonant"],
|
|
25
|
+
contrastFeature: "consonant",
|
|
26
|
+
contrastDescription: "/v/ vs /f/",
|
|
27
|
+
word1: { script: "ва́за", romanization: "váza", definition: "vase", audioFile: null },
|
|
28
|
+
word2: { script: "фа́за", romanization: "fáza", definition: "phase; stage", audioFile: null }
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
pairId: "ru_l2_004",
|
|
32
|
+
level: 2,
|
|
33
|
+
tags: ["level_2", "consonant"],
|
|
34
|
+
contrastFeature: "consonant",
|
|
35
|
+
contrastDescription: "/z/ vs /s/",
|
|
36
|
+
word1: { script: "за́мок", romanization: "zámok", definition: "lock (lock on a door)", audioFile: null },
|
|
37
|
+
word2: { script: "са́мок", romanization: "sámok", definition: "(dialectal variant)", audioFile: null }
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
pairId: "ru_l2_005",
|
|
41
|
+
level: 2,
|
|
42
|
+
tags: ["level_2", "consonant"],
|
|
43
|
+
contrastFeature: "consonant",
|
|
44
|
+
contrastDescription: "/ɡ/ vs /k/",
|
|
45
|
+
word1: { script: "га́за", romanization: "gáza", definition: "gas (genitive)", audioFile: null },
|
|
46
|
+
word2: { script: "ка́за", romanization: "káza", definition: "kaza (type of hat)", audioFile: null }
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
export {
|
|
50
|
+
i as level2Pairs
|
|
51
|
+
};
|
package/dist/level3.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const i = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l3_001",
|
|
4
|
+
level: 3,
|
|
5
|
+
tags: ["level_3", "palatalization"],
|
|
6
|
+
contrastFeature: "consonant",
|
|
7
|
+
contrastDescription: "/t/ vs /tʲ/ (hard vs soft t)",
|
|
8
|
+
pronunciationTipId: "palatalization",
|
|
9
|
+
word1: { script: "та́ка", romanization: "tákа", definition: "(dialectal variant)", audioFile: null },
|
|
10
|
+
word2: { script: "тья́ка", romanization: "tʲákа", definition: "(dialectal variant)", audioFile: null }
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
pairId: "ru_l3_002",
|
|
14
|
+
level: 3,
|
|
15
|
+
tags: ["level_3", "palatalization"],
|
|
16
|
+
contrastFeature: "consonant",
|
|
17
|
+
contrastDescription: "/d/ vs /dʲ/ (hard vs soft d)",
|
|
18
|
+
word1: { script: "да́ча", romanization: "dácha", definition: "country house; dacha", audioFile: null },
|
|
19
|
+
word2: { script: "дья́ча", romanization: "dʲácha", definition: "deacon's wife", audioFile: null }
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
pairId: "ru_l3_003",
|
|
23
|
+
level: 3,
|
|
24
|
+
tags: ["level_3", "palatalization"],
|
|
25
|
+
contrastFeature: "consonant",
|
|
26
|
+
contrastDescription: "/s/ vs /sʲ/ (hard vs soft s)",
|
|
27
|
+
word1: { script: "са́ха", romanization: "sáха", definition: "sugar", audioFile: null },
|
|
28
|
+
word2: { script: "сья́ха", romanization: "sʲáха", definition: "(dialectal variant)", audioFile: null }
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
pairId: "ru_l3_004",
|
|
32
|
+
level: 3,
|
|
33
|
+
tags: ["level_3", "palatalization"],
|
|
34
|
+
contrastFeature: "consonant",
|
|
35
|
+
contrastDescription: "/l/ vs /lʲ/ (hard vs soft l)",
|
|
36
|
+
word1: { script: "бал", romanization: "bal", definition: "ball (dance)", audioFile: null },
|
|
37
|
+
word2: { script: "баль", romanization: "balʲ", definition: "ballet", audioFile: null }
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
pairId: "ru_l3_005",
|
|
41
|
+
level: 3,
|
|
42
|
+
tags: ["level_3", "palatalization"],
|
|
43
|
+
contrastFeature: "consonant",
|
|
44
|
+
contrastDescription: "/n/ vs /nʲ/ (hard vs soft n)",
|
|
45
|
+
word1: { script: "ан", romanization: "an", definition: "an (unit)", audioFile: null },
|
|
46
|
+
word2: { script: "ань", romanization: "anʲ", definition: "any (feminine)", audioFile: null }
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
export {
|
|
50
|
+
i as level3Pairs
|
|
51
|
+
};
|
package/dist/level4.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const e = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l4_001",
|
|
4
|
+
level: 4,
|
|
5
|
+
tags: ["level_4", "vowel", "reduction"],
|
|
6
|
+
contrastFeature: "vowel",
|
|
7
|
+
contrastDescription: "/a/ stressed vs unstressed",
|
|
8
|
+
pronunciationTipId: "vowel_reduction",
|
|
9
|
+
word1: { script: "ма́ма", romanization: "máma", definition: "mom", audioFile: null },
|
|
10
|
+
word2: { script: "мама́", romanization: "mamá", definition: "mom (vocative)", audioFile: null },
|
|
11
|
+
notes: "First syllable /a/ is unstressed (reduced to /ə/), second is stressed."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
pairId: "ru_l4_002",
|
|
15
|
+
level: 4,
|
|
16
|
+
tags: ["level_4", "vowel", "reduction"],
|
|
17
|
+
contrastFeature: "vowel",
|
|
18
|
+
contrastDescription: "/o/ stressed vs unstressed",
|
|
19
|
+
word1: { script: "мо́ре", romanization: "móre", definition: "sea", audioFile: null },
|
|
20
|
+
word2: { script: "моро́", romanization: "moró", definition: "sea (genitive)", audioFile: null },
|
|
21
|
+
notes: "Stressed /o/ stays full, unstressed /o/ reduces to /a/ (the 'o-kanie' phenomenon)."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
pairId: "ru_l4_003",
|
|
25
|
+
level: 4,
|
|
26
|
+
tags: ["level_4", "vowel", "reduction"],
|
|
27
|
+
contrastFeature: "vowel",
|
|
28
|
+
contrastDescription: "Full vowel vs reduced vowel in similar words",
|
|
29
|
+
word1: { script: "ра́бочий", romanization: "rábochiy", definition: "working (masc.)", audioFile: null },
|
|
30
|
+
word2: { script: "рабо́та", romanization: "рабóta", definition: "work; job", audioFile: null },
|
|
31
|
+
notes: "In unstressed position, /a/ and /o/ both reduce to /ə/ (the 'akanie' phenomenon)."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
pairId: "ru_l4_004",
|
|
35
|
+
level: 4,
|
|
36
|
+
tags: ["level_4", "vowel", "reduction"],
|
|
37
|
+
contrastFeature: "vowel",
|
|
38
|
+
contrastDescription: "/i/ stressed vs unstressed",
|
|
39
|
+
word1: { script: "би́ло", romanization: "bílo", definition: "white (neut. past)", audioFile: null },
|
|
40
|
+
word2: { script: "било́", romanization: "biló", definition: "it happened", audioFile: null }
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
pairId: "ru_l4_005",
|
|
44
|
+
level: 4,
|
|
45
|
+
tags: ["level_4", "vowel", "reduction"],
|
|
46
|
+
contrastFeature: "vowel",
|
|
47
|
+
contrastDescription: "/u/ stressed vs unstressed",
|
|
48
|
+
word1: { script: "ду́ха", romanization: "dúha", definition: "spirit (genitive)", audioFile: null },
|
|
49
|
+
word2: { script: "духа́", romanization: "dukhá", definition: "spirit (vocative)", audioFile: null }
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
export {
|
|
53
|
+
e as level4Pairs
|
|
54
|
+
};
|
package/dist/level5.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const i = [
|
|
2
|
+
{
|
|
3
|
+
pairId: "ru_l5_001",
|
|
4
|
+
level: 5,
|
|
5
|
+
tags: ["level_5", "consonant"],
|
|
6
|
+
contrastFeature: "consonant",
|
|
7
|
+
contrastDescription: "/ʒ/ vs /ʃ/ (zh vs sh)",
|
|
8
|
+
pronunciationTipId: "consonant_ʒ_ʃ",
|
|
9
|
+
word1: { script: "жу́к", romanization: "žúk", definition: "beetle", audioFile: null },
|
|
10
|
+
word2: { script: "шу́к", romanization: "šúk", definition: "(dialectal variant)", audioFile: null }
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
pairId: "ru_l5_002",
|
|
14
|
+
level: 5,
|
|
15
|
+
tags: ["level_5", "consonant"],
|
|
16
|
+
contrastFeature: "consonant",
|
|
17
|
+
contrastDescription: "/tʲ/ vs /dʲ/ (soft t vs soft d)",
|
|
18
|
+
word1: { script: "тьма", romanization: "tʲma", definition: "darkness", audioFile: null },
|
|
19
|
+
word2: { script: "дья", romanization: "dʲa", definition: "through (archaic)", audioFile: null }
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
pairId: "ru_l5_003",
|
|
23
|
+
level: 5,
|
|
24
|
+
tags: ["level_5", "palatalization"],
|
|
25
|
+
contrastFeature: "consonant",
|
|
26
|
+
contrastDescription: "Palatalized consonant clusters",
|
|
27
|
+
word1: { script: "съе́зд", romanization: "sʲésd", definition: "congress; conference", audioFile: null },
|
|
28
|
+
word2: { script: "зъе́зд", romanization: "zʲésd", definition: "(dialectal variant)", audioFile: null },
|
|
29
|
+
notes: "The 'ъ' (hard sign) creates a palatalized environment before 'e' sounds."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
pairId: "ru_l5_004",
|
|
33
|
+
level: 5,
|
|
34
|
+
tags: ["level_5", "vowel"],
|
|
35
|
+
contrastFeature: "vowel",
|
|
36
|
+
contrastDescription: "/ə/ (reduced) vs full vowels",
|
|
37
|
+
word1: { script: "пошёл", romanization: "pošól", definition: "he went", audioFile: null },
|
|
38
|
+
word2: { script: "пошо́л", romanization: "pošól", definition: "(dialectal variant)", audioFile: null },
|
|
39
|
+
notes: "Unstressed vowels undergo reduction - /o/ becomes /ə/, /a/ becomes /ə/."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
pairId: "ru_l5_005",
|
|
43
|
+
level: 5,
|
|
44
|
+
tags: ["level_5", "complex"],
|
|
45
|
+
contrastFeature: "complex",
|
|
46
|
+
contrastDescription: "Full palatalization contrast",
|
|
47
|
+
word1: { script: "мой", romanization: "mój", definition: "my (masc.)", audioFile: null },
|
|
48
|
+
word2: { script: "мёд", romanization: "mód", definition: "honey", audioFile: null },
|
|
49
|
+
notes: "The 'ё' represents /jo/ with palatalized preceding consonant and reduced vowel quality."
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
export {
|
|
53
|
+
i as level5Pairs
|
|
54
|
+
};
|
package/dist/levels.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../src/levels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,eAAO,MAAM,MAAM,EAAE,qBAAqB,EAOzC,CAAC"}
|
package/dist/levels.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const e = [
|
|
2
|
+
{ level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
|
|
3
|
+
{ level: 1, title: "Vowel Contrasts", description: "The five main vowel phonemes" },
|
|
4
|
+
{ level: 2, title: "Voicing Contrasts", description: "Voiceless vs voiced consonant pairs" },
|
|
5
|
+
{ level: 3, title: "Palatalization Contrasts", description: "Hard vs soft consonants" },
|
|
6
|
+
{ level: 4, title: "Vowel Reduction Contrasts", description: "Stressed vs unstressed vowels" },
|
|
7
|
+
{ level: 5, title: "Expert Level", description: "Subtle distinctions and advanced phonology" }
|
|
8
|
+
];
|
|
9
|
+
export {
|
|
10
|
+
e as levels
|
|
11
|
+
};
|
|
@@ -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,gCAS/B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const e = {
|
|
2
|
+
vowel_a_o: "/a/ (а) is open back unrounded. /o/ (о) is rounded. In unstressed position, /o/ reduces to /a/ (akanie).",
|
|
3
|
+
vowel_e_i: "/e/ (э) is open-mid front. /i/ (и) is close front. /i/ is more tense and higher.",
|
|
4
|
+
vowel_a_o_2: "/a/ (а) is pronounced 'ah'. /o/ (о) is pronounced 'ah' when stressed, 'uh' when unstressed.",
|
|
5
|
+
consonant_voicing: "Voiced consonants (б, д, в, з, г) vibrate your vocal cords. Voiceless (п, т, ф, с, к) do not. Hold your throat to feel the difference.",
|
|
6
|
+
palatalization: "Palatalized consonants (soft) are pronounced with the middle of the tongue raised toward the hard palate. Non-palatalized (hard) are pronounced without this raise.",
|
|
7
|
+
vowel_reduction: "Russian has vowel reduction: unstressed /a/ and /o/ both become /ə/ (a schwa-like sound). This is called 'akanie'. Unstressed /e/ and /i/ also reduce.",
|
|
8
|
+
consonant_ʒ_ʃ: "/ʒ/ (ж) is a voiced retroflex fricative - like the 's' in 'measure'. /ʃ/ (ш) is voiceless - like the 'sh' in 'ship'.",
|
|
9
|
+
consonant_ʒ_ʃ_2: "Ж is always voiced like a humming bee. Ш is always voiceless like a snake. Remember: 'ЖЖЖ' for ж, 'ШШШ' for ш."
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
e as pronunciationTips
|
|
13
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polyglot-bundles/ru-minimal-pairs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -12,13 +12,45 @@
|
|
|
12
12
|
"./data": {
|
|
13
13
|
"types": "./dist/data.d.ts",
|
|
14
14
|
"import": "./dist/data.js"
|
|
15
|
+
},
|
|
16
|
+
"./levels": {
|
|
17
|
+
"types": "./dist/levels.d.ts",
|
|
18
|
+
"import": "./dist/levels.js"
|
|
19
|
+
},
|
|
20
|
+
"./pronunciationTips": {
|
|
21
|
+
"types": "./dist/pronunciationTips.d.ts",
|
|
22
|
+
"import": "./dist/pronunciationTips.js"
|
|
23
|
+
},
|
|
24
|
+
"./data/level-0": {
|
|
25
|
+
"types": "./dist/data/level-0.d.ts",
|
|
26
|
+
"import": "./dist/data/level-0.js"
|
|
27
|
+
},
|
|
28
|
+
"./data/level-1": {
|
|
29
|
+
"types": "./dist/data/level-1.d.ts",
|
|
30
|
+
"import": "./dist/data/level-1.js"
|
|
31
|
+
},
|
|
32
|
+
"./data/level-2": {
|
|
33
|
+
"types": "./dist/data/level-2.d.ts",
|
|
34
|
+
"import": "./dist/data/level-2.js"
|
|
35
|
+
},
|
|
36
|
+
"./data/level-3": {
|
|
37
|
+
"types": "./dist/data/level-3.d.ts",
|
|
38
|
+
"import": "./dist/data/level-3.js"
|
|
39
|
+
},
|
|
40
|
+
"./data/level-4": {
|
|
41
|
+
"types": "./dist/data/level-4.d.ts",
|
|
42
|
+
"import": "./dist/data/level-4.js"
|
|
43
|
+
},
|
|
44
|
+
"./data/level-5": {
|
|
45
|
+
"types": "./dist/data/level-5.d.ts",
|
|
46
|
+
"import": "./dist/data/level-5.js"
|
|
15
47
|
}
|
|
16
48
|
},
|
|
17
49
|
"files": [
|
|
18
50
|
"dist"
|
|
19
51
|
],
|
|
20
52
|
"dependencies": {
|
|
21
|
-
"@polyglot-bundles/content-shared": "0.3.
|
|
53
|
+
"@polyglot-bundles/content-shared": "0.3.1"
|
|
22
54
|
},
|
|
23
55
|
"devDependencies": {
|
|
24
56
|
"vite": "^5.4.0",
|