diff --git a/public/audio/a.m4a b/public/audio/a.m4a new file mode 100644 index 0000000..9685616 Binary files /dev/null and b/public/audio/a.m4a differ diff --git a/public/audio/a.mp3 b/public/audio/a.mp3 new file mode 100644 index 0000000..ccd16e3 Binary files /dev/null and b/public/audio/a.mp3 differ diff --git a/public/audio/aa.m4a b/public/audio/aa.m4a new file mode 100644 index 0000000..7e2f195 Binary files /dev/null and b/public/audio/aa.m4a differ diff --git a/public/audio/aa.mp3 b/public/audio/aa.mp3 new file mode 100644 index 0000000..248d0bb Binary files /dev/null and b/public/audio/aa.mp3 differ diff --git a/public/audio/aasmaan.m4a b/public/audio/aasmaan.m4a new file mode 100644 index 0000000..3cf3582 Binary files /dev/null and b/public/audio/aasmaan.m4a differ diff --git a/public/audio/aasmaan.mp3 b/public/audio/aasmaan.mp3 new file mode 100644 index 0000000..07ed134 Binary files /dev/null and b/public/audio/aasmaan.mp3 differ diff --git a/public/audio/ay.m4a b/public/audio/ay.m4a new file mode 100644 index 0000000..5ad64eb Binary files /dev/null and b/public/audio/ay.m4a differ diff --git a/public/audio/ay.mp3 b/public/audio/ay.mp3 new file mode 100644 index 0000000..3b4d546 Binary files /dev/null and b/public/audio/ay.mp3 differ diff --git a/public/audio/baad.mp3 b/public/audio/baad.mp3 new file mode 100644 index 0000000..1dddbc8 Binary files /dev/null and b/public/audio/baad.mp3 differ diff --git a/public/audio/chaa.mp3 b/public/audio/chaa.mp3 new file mode 100644 index 0000000..b5b38bc Binary files /dev/null and b/public/audio/chaa.mp3 differ diff --git a/public/audio/d.m4a b/public/audio/d.m4a new file mode 100644 index 0000000..1ae3578 Binary files /dev/null and b/public/audio/d.m4a differ diff --git a/public/audio/d.mp3 b/public/audio/d.mp3 new file mode 100644 index 0000000..1a61048 Binary files /dev/null and b/public/audio/d.mp3 differ diff --git a/public/audio/dd.m4a b/public/audio/dd.m4a new file mode 100644 index 0000000..c35318e Binary files /dev/null and b/public/audio/dd.m4a differ diff --git a/public/audio/dd.mp3 b/public/audio/dd.mp3 new file mode 100644 index 0000000..f9217e5 Binary files /dev/null and b/public/audio/dd.mp3 differ diff --git a/public/audio/ddodduy.m4a b/public/audio/ddodduy.m4a new file mode 100644 index 0000000..145af58 Binary files /dev/null and b/public/audio/ddodduy.m4a differ diff --git a/public/audio/ddodduy.mp3 b/public/audio/ddodduy.mp3 new file mode 100644 index 0000000..a5cc4ff Binary files /dev/null and b/public/audio/ddodduy.mp3 differ diff --git a/public/audio/dwa.m4a b/public/audio/dwa.m4a new file mode 100644 index 0000000..b583382 Binary files /dev/null and b/public/audio/dwa.m4a differ diff --git a/public/audio/dwa.mp3 b/public/audio/dwa.mp3 new file mode 100644 index 0000000..e635a1f Binary files /dev/null and b/public/audio/dwa.mp3 differ diff --git a/public/audio/dz.m4a b/public/audio/dz.m4a new file mode 100644 index 0000000..9c9b4d9 Binary files /dev/null and b/public/audio/dz.m4a differ diff --git a/public/audio/dz.mp3 b/public/audio/dz.mp3 new file mode 100644 index 0000000..b0ad4df Binary files /dev/null and b/public/audio/dz.mp3 differ diff --git a/public/audio/dzaay.m4a b/public/audio/dzaay.m4a new file mode 100644 index 0000000..9237750 Binary files /dev/null and b/public/audio/dzaay.m4a differ diff --git a/public/audio/dzaay.mp3 b/public/audio/dzaay.mp3 new file mode 100644 index 0000000..0bc6a69 Binary files /dev/null and b/public/audio/dzaay.mp3 differ diff --git a/public/audio/dzungul.m4a b/public/audio/dzungul.m4a new file mode 100644 index 0000000..3e66ea0 Binary files /dev/null and b/public/audio/dzungul.m4a differ diff --git a/public/audio/dzungul.mp3 b/public/audio/dzungul.mp3 new file mode 100644 index 0000000..d363bfc Binary files /dev/null and b/public/audio/dzungul.mp3 differ diff --git a/public/audio/e.mp3 b/public/audio/e.mp3 new file mode 100644 index 0000000..d022698 Binary files /dev/null and b/public/audio/e.mp3 differ diff --git a/public/audio/ee.mp3 b/public/audio/ee.mp3 new file mode 100644 index 0000000..29fa2f7 Binary files /dev/null and b/public/audio/ee.mp3 differ diff --git a/public/audio/ey.mp3 b/public/audio/ey.mp3 new file mode 100644 index 0000000..ca8c491 Binary files /dev/null and b/public/audio/ey.mp3 differ diff --git a/public/audio/eyy.mp3 b/public/audio/eyy.mp3 new file mode 100644 index 0000000..8991a60 Binary files /dev/null and b/public/audio/eyy.mp3 differ diff --git a/public/audio/fojee.mp3 b/public/audio/fojee.mp3 new file mode 100644 index 0000000..8ed5ec2 Binary files /dev/null and b/public/audio/fojee.mp3 differ diff --git a/public/audio/gh.m4a b/public/audio/gh.m4a new file mode 100644 index 0000000..2665420 Binary files /dev/null and b/public/audio/gh.m4a differ diff --git a/public/audio/gh.mp3 b/public/audio/gh.mp3 new file mode 100644 index 0000000..dfc45c9 Binary files /dev/null and b/public/audio/gh.mp3 differ diff --git a/public/audio/gharma.m4a b/public/audio/gharma.m4a new file mode 100644 index 0000000..7918e2e Binary files /dev/null and b/public/audio/gharma.m4a differ diff --git a/public/audio/gharma.mp3 b/public/audio/gharma.mp3 new file mode 100644 index 0000000..757ece5 Binary files /dev/null and b/public/audio/gharma.mp3 differ diff --git a/public/audio/guul.mp3 b/public/audio/guul.mp3 new file mode 100644 index 0000000..7ac8ec2 Binary files /dev/null and b/public/audio/guul.mp3 differ diff --git a/public/audio/h.m4a b/public/audio/h.m4a new file mode 100644 index 0000000..84c8ebc Binary files /dev/null and b/public/audio/h.m4a differ diff --git a/public/audio/h.mp3 b/public/audio/h.mp3 new file mode 100644 index 0000000..f1049dd Binary files /dev/null and b/public/audio/h.mp3 differ diff --git a/public/audio/halaat.m4a b/public/audio/halaat.m4a new file mode 100644 index 0000000..42eedbd Binary files /dev/null and b/public/audio/halaat.m4a differ diff --git a/public/audio/halaat.mp3 b/public/audio/halaat.mp3 new file mode 100644 index 0000000..8722d44 Binary files /dev/null and b/public/audio/halaat.mp3 differ diff --git a/public/audio/i.m4a b/public/audio/i.m4a new file mode 100644 index 0000000..1a37c16 Binary files /dev/null and b/public/audio/i.m4a differ diff --git a/public/audio/i.mp3 b/public/audio/i.mp3 new file mode 100644 index 0000000..2675f40 Binary files /dev/null and b/public/audio/i.mp3 differ diff --git a/public/audio/injuluy.m4a b/public/audio/injuluy.m4a new file mode 100644 index 0000000..71f17b5 Binary files /dev/null and b/public/audio/injuluy.m4a differ diff --git a/public/audio/injuluy.mp3 b/public/audio/injuluy.mp3 new file mode 100644 index 0000000..00d0fae Binary files /dev/null and b/public/audio/injuluy.mp3 differ diff --git a/public/audio/islaam.m4a b/public/audio/islaam.m4a new file mode 100644 index 0000000..169fd80 Binary files /dev/null and b/public/audio/islaam.m4a differ diff --git a/public/audio/islaam.mp3 b/public/audio/islaam.mp3 new file mode 100644 index 0000000..577b2d0 Binary files /dev/null and b/public/audio/islaam.mp3 differ diff --git a/public/audio/jorr.m4a b/public/audio/jorr.m4a new file mode 100644 index 0000000..14b408b Binary files /dev/null and b/public/audio/jorr.m4a differ diff --git a/public/audio/jorr.mp3 b/public/audio/jorr.mp3 new file mode 100644 index 0000000..a7f0c21 Binary files /dev/null and b/public/audio/jorr.mp3 differ diff --git a/public/audio/jz.m4a b/public/audio/jz.m4a new file mode 100644 index 0000000..c1e5fba Binary files /dev/null and b/public/audio/jz.m4a differ diff --git a/public/audio/jz.mp3 b/public/audio/jz.mp3 new file mode 100644 index 0000000..7f9a34a Binary files /dev/null and b/public/audio/jz.mp3 differ diff --git a/public/audio/jzwund.m4a b/public/audio/jzwund.m4a new file mode 100644 index 0000000..c1dd51d Binary files /dev/null and b/public/audio/jzwund.m4a differ diff --git a/public/audio/jzwund.mp3 b/public/audio/jzwund.mp3 new file mode 100644 index 0000000..e70a8cb Binary files /dev/null and b/public/audio/jzwund.mp3 differ diff --git a/public/audio/kadoo.m4a b/public/audio/kadoo.m4a new file mode 100644 index 0000000..6a035c8 Binary files /dev/null and b/public/audio/kadoo.m4a differ diff --git a/public/audio/kadoo.mp3 b/public/audio/kadoo.mp3 new file mode 100644 index 0000000..04e056f Binary files /dev/null and b/public/audio/kadoo.mp3 differ diff --git a/public/audio/kh.m4a b/public/audio/kh.m4a new file mode 100644 index 0000000..fe3e1a2 Binary files /dev/null and b/public/audio/kh.m4a differ diff --git a/public/audio/kh.mp3 b/public/audio/kh.mp3 new file mode 100644 index 0000000..7b28be3 Binary files /dev/null and b/public/audio/kh.mp3 differ diff --git a/public/audio/khwux.m4a b/public/audio/khwux.m4a new file mode 100644 index 0000000..ad3b098 Binary files /dev/null and b/public/audio/khwux.m4a differ diff --git a/public/audio/khwux.mp3 b/public/audio/khwux.mp3 new file mode 100644 index 0000000..ff82d67 Binary files /dev/null and b/public/audio/khwux.mp3 differ diff --git a/public/audio/kor.mp3 b/public/audio/kor.mp3 new file mode 100644 index 0000000..63f6c79 Binary files /dev/null and b/public/audio/kor.mp3 differ diff --git a/public/audio/kxeneyy.m4a b/public/audio/kxeneyy.m4a new file mode 100644 index 0000000..e227fc7 Binary files /dev/null and b/public/audio/kxeneyy.m4a differ diff --git a/public/audio/kxeneyy.mp3 b/public/audio/kxeneyy.mp3 new file mode 100644 index 0000000..153c660 Binary files /dev/null and b/public/audio/kxeneyy.mp3 differ diff --git a/public/audio/l.m4a b/public/audio/l.m4a new file mode 100644 index 0000000..fa73be3 Binary files /dev/null and b/public/audio/l.m4a differ diff --git a/public/audio/l.mp3 b/public/audio/l.mp3 new file mode 100644 index 0000000..8a0da97 Binary files /dev/null and b/public/audio/l.mp3 differ diff --git a/public/audio/leekul.m4a b/public/audio/leekul.m4a new file mode 100644 index 0000000..6eb2784 Binary files /dev/null and b/public/audio/leekul.m4a differ diff --git a/public/audio/leekul.mp3 b/public/audio/leekul.mp3 new file mode 100644 index 0000000..d3fc1f6 Binary files /dev/null and b/public/audio/leekul.mp3 differ diff --git a/public/audio/luutfan.m4a b/public/audio/luutfan.m4a new file mode 100644 index 0000000..2606b6b Binary files /dev/null and b/public/audio/luutfan.m4a differ diff --git a/public/audio/luutfan.mp3 b/public/audio/luutfan.mp3 new file mode 100644 index 0000000..9057a44 Binary files /dev/null and b/public/audio/luutfan.mp3 differ diff --git a/public/audio/maaltta.m4a b/public/audio/maaltta.m4a new file mode 100644 index 0000000..e3110c5 Binary files /dev/null and b/public/audio/maaltta.m4a differ diff --git a/public/audio/maaltta.mp3 b/public/audio/maaltta.mp3 new file mode 100644 index 0000000..b89de25 Binary files /dev/null and b/public/audio/maaltta.mp3 differ diff --git a/public/audio/maat.mp3 b/public/audio/maat.mp3 new file mode 100644 index 0000000..d8d56cd Binary files /dev/null and b/public/audio/maat.mp3 differ diff --git a/public/audio/manna.m4a b/public/audio/manna.m4a new file mode 100644 index 0000000..8ee96c6 Binary files /dev/null and b/public/audio/manna.m4a differ diff --git a/public/audio/manna.mp3 b/public/audio/manna.mp3 new file mode 100644 index 0000000..d68235d Binary files /dev/null and b/public/audio/manna.mp3 differ diff --git a/public/audio/maruy.mp3 b/public/audio/maruy.mp3 new file mode 100644 index 0000000..dd4a715 Binary files /dev/null and b/public/audio/maruy.mp3 differ diff --git a/public/audio/meena.m4a b/public/audio/meena.m4a new file mode 100644 index 0000000..1a9bbfe Binary files /dev/null and b/public/audio/meena.m4a differ diff --git a/public/audio/meena.mp3 b/public/audio/meena.mp3 new file mode 100644 index 0000000..58ab697 Binary files /dev/null and b/public/audio/meena.mp3 differ diff --git a/public/audio/naayee.mp3 b/public/audio/naayee.mp3 new file mode 100644 index 0000000..2b6c77b Binary files /dev/null and b/public/audio/naayee.mp3 differ diff --git a/public/audio/nn.m4a b/public/audio/nn.m4a new file mode 100644 index 0000000..e06435c Binary files /dev/null and b/public/audio/nn.m4a differ diff --git a/public/audio/nn.mp3 b/public/audio/nn.mp3 new file mode 100644 index 0000000..5aab827 Binary files /dev/null and b/public/audio/nn.mp3 differ diff --git a/public/audio/o.m4a b/public/audio/o.m4a new file mode 100644 index 0000000..c85d248 Binary files /dev/null and b/public/audio/o.m4a differ diff --git a/public/audio/o.mp3 b/public/audio/o.mp3 new file mode 100644 index 0000000..37dd2d9 Binary files /dev/null and b/public/audio/o.mp3 differ diff --git a/public/audio/oo.m4a b/public/audio/oo.m4a new file mode 100644 index 0000000..8458d60 Binary files /dev/null and b/public/audio/oo.m4a differ diff --git a/public/audio/oo.mp3 b/public/audio/oo.mp3 new file mode 100644 index 0000000..d9db77d Binary files /dev/null and b/public/audio/oo.mp3 differ diff --git a/public/audio/oox.m4a b/public/audio/oox.m4a new file mode 100644 index 0000000..c5c847a Binary files /dev/null and b/public/audio/oox.m4a differ diff --git a/public/audio/oox.mp3 b/public/audio/oox.mp3 new file mode 100644 index 0000000..551440e Binary files /dev/null and b/public/audio/oox.mp3 differ diff --git a/public/audio/ooy.m4a b/public/audio/ooy.m4a new file mode 100644 index 0000000..599c4db Binary files /dev/null and b/public/audio/ooy.m4a differ diff --git a/public/audio/ooy.mp3 b/public/audio/ooy.mp3 new file mode 100644 index 0000000..8f1bf23 Binary files /dev/null and b/public/audio/ooy.mp3 differ diff --git a/public/audio/paanna.m4a b/public/audio/paanna.m4a new file mode 100644 index 0000000..023b632 Binary files /dev/null and b/public/audio/paanna.m4a differ diff --git a/public/audio/paanna.mp3 b/public/audio/paanna.mp3 new file mode 100644 index 0000000..23014e5 Binary files /dev/null and b/public/audio/paanna.mp3 differ diff --git a/public/audio/pashto.m4a b/public/audio/pashto.m4a new file mode 100644 index 0000000..339d169 Binary files /dev/null and b/public/audio/pashto.m4a differ diff --git a/public/audio/pashto.mp3 b/public/audio/pashto.mp3 new file mode 100644 index 0000000..1bbe05b Binary files /dev/null and b/public/audio/pashto.mp3 differ diff --git a/public/audio/poza.m4a b/public/audio/poza.m4a new file mode 100644 index 0000000..44d69f5 Binary files /dev/null and b/public/audio/poza.m4a differ diff --git a/public/audio/poza.mp3 b/public/audio/poza.mp3 new file mode 100644 index 0000000..f0bc583 Binary files /dev/null and b/public/audio/poza.mp3 differ diff --git a/public/audio/puxto.m4a b/public/audio/puxto.m4a new file mode 100644 index 0000000..a10fa38 Binary files /dev/null and b/public/audio/puxto.m4a differ diff --git a/public/audio/puxto.mp3 b/public/audio/puxto.mp3 new file mode 100644 index 0000000..8bb4994 Binary files /dev/null and b/public/audio/puxto.mp3 differ diff --git a/public/audio/q.m4a b/public/audio/q.m4a new file mode 100644 index 0000000..1936c33 Binary files /dev/null and b/public/audio/q.m4a differ diff --git a/public/audio/q.mp3 b/public/audio/q.mp3 new file mode 100644 index 0000000..16f6611 Binary files /dev/null and b/public/audio/q.mp3 differ diff --git a/public/audio/qaazee.m4a b/public/audio/qaazee.m4a new file mode 100644 index 0000000..0e302db Binary files /dev/null and b/public/audio/qaazee.m4a differ diff --git a/public/audio/qaazee.mp3 b/public/audio/qaazee.mp3 new file mode 100644 index 0000000..a1efbb6 Binary files /dev/null and b/public/audio/qaazee.mp3 differ diff --git a/public/audio/r.m4a b/public/audio/r.m4a new file mode 100644 index 0000000..c68d0b5 Binary files /dev/null and b/public/audio/r.m4a differ diff --git a/public/audio/r.mp3 b/public/audio/r.mp3 new file mode 100644 index 0000000..4d43094 Binary files /dev/null and b/public/audio/r.mp3 differ diff --git a/public/audio/rang.m4a b/public/audio/rang.m4a new file mode 100644 index 0000000..cf2142c Binary files /dev/null and b/public/audio/rang.m4a differ diff --git a/public/audio/rang.mp3 b/public/audio/rang.mp3 new file mode 100644 index 0000000..463a7fc Binary files /dev/null and b/public/audio/rang.mp3 differ diff --git a/public/audio/rr.m4a b/public/audio/rr.m4a new file mode 100644 index 0000000..fd08251 Binary files /dev/null and b/public/audio/rr.m4a differ diff --git a/public/audio/rr.mp3 b/public/audio/rr.mp3 new file mode 100644 index 0000000..1de6650 Binary files /dev/null and b/public/audio/rr.mp3 differ diff --git a/public/audio/s-sound.mp3 b/public/audio/s-sound.mp3 new file mode 100644 index 0000000..d805c4b Binary files /dev/null and b/public/audio/s-sound.mp3 differ diff --git a/public/audio/sarrey.m4a b/public/audio/sarrey.m4a new file mode 100644 index 0000000..b4dc1c8 Binary files /dev/null and b/public/audio/sarrey.m4a differ diff --git a/public/audio/sarrey.mp3 b/public/audio/sarrey.mp3 new file mode 100644 index 0000000..39be61b Binary files /dev/null and b/public/audio/sarrey.mp3 differ diff --git a/public/audio/sheen.mp3 b/public/audio/sheen.mp3 new file mode 100644 index 0000000..6d45c80 Binary files /dev/null and b/public/audio/sheen.mp3 differ diff --git a/public/audio/t.m4a b/public/audio/t.m4a new file mode 100644 index 0000000..813f86a Binary files /dev/null and b/public/audio/t.m4a differ diff --git a/public/audio/t.mp3 b/public/audio/t.mp3 new file mode 100644 index 0000000..f69b8f0 Binary files /dev/null and b/public/audio/t.mp3 differ diff --git a/public/audio/tor.m4a b/public/audio/tor.m4a new file mode 100644 index 0000000..1a07f43 Binary files /dev/null and b/public/audio/tor.m4a differ diff --git a/public/audio/tor.mp3 b/public/audio/tor.mp3 new file mode 100644 index 0000000..35d5223 Binary files /dev/null and b/public/audio/tor.mp3 differ diff --git a/public/audio/ts.m4a b/public/audio/ts.m4a new file mode 100644 index 0000000..6ffa59e Binary files /dev/null and b/public/audio/ts.m4a differ diff --git a/public/audio/ts.mp3 b/public/audio/ts.mp3 new file mode 100644 index 0000000..8b909c3 Binary files /dev/null and b/public/audio/ts.mp3 differ diff --git a/public/audio/tsomra.m4a b/public/audio/tsomra.m4a new file mode 100644 index 0000000..6d9d060 Binary files /dev/null and b/public/audio/tsomra.m4a differ diff --git a/public/audio/tsomra.mp3 b/public/audio/tsomra.mp3 new file mode 100644 index 0000000..e7800bc Binary files /dev/null and b/public/audio/tsomra.mp3 differ diff --git a/public/audio/tt.m4a b/public/audio/tt.m4a new file mode 100644 index 0000000..30eef48 Binary files /dev/null and b/public/audio/tt.m4a differ diff --git a/public/audio/tt.mp3 b/public/audio/tt.mp3 new file mode 100644 index 0000000..b0348ee Binary files /dev/null and b/public/audio/tt.mp3 differ diff --git a/public/audio/u-original.m4a b/public/audio/u-original.m4a new file mode 100644 index 0000000..09c2e5c Binary files /dev/null and b/public/audio/u-original.m4a differ diff --git a/public/audio/u-original.mp3 b/public/audio/u-original.mp3 new file mode 100644 index 0000000..bb65123 Binary files /dev/null and b/public/audio/u-original.mp3 differ diff --git a/public/audio/u.m4a b/public/audio/u.m4a new file mode 100644 index 0000000..67353e0 Binary files /dev/null and b/public/audio/u.m4a differ diff --git a/public/audio/u.mp3 b/public/audio/u.mp3 new file mode 100644 index 0000000..9a20c57 Binary files /dev/null and b/public/audio/u.mp3 differ diff --git a/public/audio/uu.m4a b/public/audio/uu.m4a new file mode 100644 index 0000000..93898c1 Binary files /dev/null and b/public/audio/uu.m4a differ diff --git a/public/audio/uu.mp3 b/public/audio/uu.mp3 new file mode 100644 index 0000000..c16a1b3 Binary files /dev/null and b/public/audio/uu.mp3 differ diff --git a/public/audio/uy.mp3 b/public/audio/uy.mp3 new file mode 100644 index 0000000..43b3417 Binary files /dev/null and b/public/audio/uy.mp3 differ diff --git a/public/audio/w.m4a b/public/audio/w.m4a new file mode 100644 index 0000000..c84a70f Binary files /dev/null and b/public/audio/w.m4a differ diff --git a/public/audio/w.mp3 b/public/audio/w.mp3 new file mode 100644 index 0000000..60e3b41 Binary files /dev/null and b/public/audio/w.mp3 differ diff --git a/public/audio/waadu.m4a b/public/audio/waadu.m4a new file mode 100644 index 0000000..7f56d03 Binary files /dev/null and b/public/audio/waadu.m4a differ diff --git a/public/audio/waadu.mp3 b/public/audio/waadu.mp3 new file mode 100644 index 0000000..59e6ef3 Binary files /dev/null and b/public/audio/waadu.mp3 differ diff --git a/public/audio/wuggey.m4a b/public/audio/wuggey.m4a new file mode 100644 index 0000000..4cf1442 Binary files /dev/null and b/public/audio/wuggey.m4a differ diff --git a/public/audio/wuggey.mp3 b/public/audio/wuggey.mp3 new file mode 100644 index 0000000..7a90049 Binary files /dev/null and b/public/audio/wuggey.mp3 differ diff --git a/public/audio/x.m4a b/public/audio/x.m4a new file mode 100644 index 0000000..69ad0f9 Binary files /dev/null and b/public/audio/x.m4a differ diff --git a/public/audio/x.mp3 b/public/audio/x.mp3 new file mode 100644 index 0000000..db7ad6f Binary files /dev/null and b/public/audio/x.mp3 differ diff --git a/public/audio/xudza.m4a b/public/audio/xudza.m4a new file mode 100644 index 0000000..8bbe2d9 Binary files /dev/null and b/public/audio/xudza.m4a differ diff --git a/public/audio/xudza.mp3 b/public/audio/xudza.mp3 new file mode 100644 index 0000000..5485b8e Binary files /dev/null and b/public/audio/xudza.mp3 differ diff --git a/public/audio/xudze.m4a b/public/audio/xudze.m4a new file mode 100644 index 0000000..93297ef Binary files /dev/null and b/public/audio/xudze.m4a differ diff --git a/public/audio/xudze.mp3 b/public/audio/xudze.mp3 new file mode 100644 index 0000000..3cfa74b Binary files /dev/null and b/public/audio/xudze.mp3 differ diff --git a/public/audio/zooy.m4a b/public/audio/zooy.m4a new file mode 100644 index 0000000..c1d1617 Binary files /dev/null and b/public/audio/zooy.m4a differ diff --git a/public/audio/zooy.mp3 b/public/audio/zooy.mp3 new file mode 100644 index 0000000..b6e8a98 Binary files /dev/null and b/public/audio/zooy.mp3 differ diff --git a/src/components/phonetics/PhoneticsViewer.tsx b/src/components/phonetics/PhoneticsViewer.tsx new file mode 100644 index 0000000..f2c33fd --- /dev/null +++ b/src/components/phonetics/PhoneticsViewer.tsx @@ -0,0 +1,121 @@ +import React from "react"; +import classNames from "classnames"; +import highlightExample from "./highlight-example"; +import { + phonemes, + Phoneme, + PhonemeExample, +} from "./phonemes"; +import playAudio from "../../lib/play-audio"; +import views from "./views"; + +export type ViewOptions = "all" | "shortVowel" | "longVowel" | "fiveYs" | "specialConsonant"; + +interface IAppState { + view: ViewOptions; +} + +class PhoneticsViewer extends React.Component { + constructor(props: any) { + super(props); + this.state = { + view: "all", + }; + } + + render() { + const phonemesShowing = + this.state.view === "all" + ? phonemes + // @ts-ignore + : phonemes.filter((p) => p[this.state.view]); + const selectedOption = views.find((v) => v.value === this.state.view); + const generatePlayerFunction = (item: Phoneme | PhonemeExample) => { + if ("phoneme" in item && item.a) { + return () => { playAudio(item.a || ""); }; + } + if ("f" in item && item.a) { + // dumb typescript + return () => { playAudio(item.a || ""); }; + } + return () => null; + } + return <> +
+
+ {views.map(({ label, value }) => ( + + ))} +
+
click the phonetic letter or examples to hear - not all sounds are available
+
+ + + + + {/* */} + + + + + + + {phonemesShowing.map((phoneme) => ( + + + {/* */} + + + + + ))} + +
Phonetic LetterIPA LetterShort ExplanationExamplePashto Letter(s)
+ {phoneme.phoneme} + {phoneme.ipa.letter} + {phoneme.quickExplanation}{" "} + {phoneme.ipa.video && ( + + + + )} + + {highlightExample( + phoneme.examples[0].f, + phoneme.examples[0].fHighlight + )} + {` - `} + {highlightExample( + phoneme.examples[0].p, + phoneme.examples[0].pHighlight + )} + + {phoneme.possibleLetters + ? phoneme.possibleLetters.reduce( + (s, l) => + `${s}${l.letter} ${ + l.alternate ? ` (${l.alternate}) ` : "" + }`, + "" + ) + : ""} + {/* phoneme.diacritic && `(diacritic ◌${phoneme.diacritic})` */} +
+ {selectedOption?.notes &&
+

Notes about {selectedOption.label.toLowerCase()}:

+ {selectedOption.notes} +
} + ; + } +} + +export default PhoneticsViewer; diff --git a/src/components/phonetics/highlight-example.tsx b/src/components/phonetics/highlight-example.tsx new file mode 100644 index 0000000..6ffae0f --- /dev/null +++ b/src/components/phonetics/highlight-example.tsx @@ -0,0 +1,21 @@ +import React, { ReactNode } from "react"; + +export default function highlightExample(text: string, highlight: number[][]): ReactNode { + if (!highlight.length) { + return text; + } + let index = 0; + // @ts-ignore + const pText = highlight.reduce((acc, curr, i): ReactNode => { + const isLastElement = i === (highlight.length - 1); + const section = [ + ...acc, + curr[0] > 0 ? text.slice(index, curr[0]) : "", + {text.slice(curr[0], curr[1] + 1)}, + isLastElement ? text.slice(curr[1] + 1) : "", + ]; + index = curr[1] + 1; + return section; + }, []); + return pText; +} diff --git a/src/components/phonetics/phonemes.tsx b/src/components/phonetics/phonemes.tsx new file mode 100644 index 0000000..17e9aef --- /dev/null +++ b/src/components/phonetics/phonemes.tsx @@ -0,0 +1,1327 @@ +import React from "react"; +import { Types as T } from "@lingdocs/pashto-inflector"; + +interface ILetter { + letter: string; + starting?: string[]; + index: number; + loanReplacement?: string; + alternate?: string; + middle?: string; +} + +interface IAlphabet { + alif: ILetter; + be: ILetter; + pe: ILetter; + te: ILetter; + Te: ILetter; + se: ILetter; + jeem: ILetter; + che: ILetter; + he: ILetter; + khe: ILetter; + tse: ILetter; + dzeem: ILetter; + daal: ILetter; + Daal: ILetter; + zaal: ILetter; + re: ILetter; + Re: ILetter; + ze: ILetter; + jze: ILetter; + Ge: ILetter; + seen: ILetter; + sheen: ILetter; + xeen: ILetter; + swaad: ILetter; + zwaad: ILetter; + twe: ILetter; + zwe: ILetter; + ayn: ILetter; + ghayn: ILetter; + fe: ILetter; + qaaf: ILetter; + kaaf: ILetter; + gaaf: ILetter; + laam: ILetter; + meem: ILetter; + noon: ILetter; + Noon: ILetter; + waaw: ILetter; + gurdaHe: ILetter; + klakaYe: ILetter; + pastaYe: ILetter; + naareenaYe: ILetter; + xudzeenaYe: ILetter; + faailiyaYe: ILetter; +} + +export const letters: IAlphabet = { + alif: { letter: "ا", starting: ["آ", "ا"], index: 0 }, + be: { letter: "ب", index: 1 }, + pe: { letter: "پ", index: 2 }, + te: { letter: "ت", index: 3 }, + Te: { letter: "ټ", index: 4 }, + se: { letter: "ث", index: 5, loanReplacement: "س" }, + jeem: { letter: "ج", index: 6 }, + che: { letter: "چ", index: 7 }, + he: { letter: "ح", index: 8 }, + khe: { letter: "خ", index: 9 }, + tse: { letter: "څ", index: 10 }, + dzeem: { letter: "ځ", index: 11 }, + daal: { letter: "د", index: 12 }, + Daal: { letter: "ډ", index: 13 }, + zaal: { letter: "ذ", index: 14, loanReplacement: "ز" }, + re: { letter: "ر", index: 15 }, + Re: { letter: "ړ", index: 16 }, + ze: { letter: "ز", index: 17 }, + jze: { letter: "ژ", index: 18 }, + Ge: { letter: "ږ", index: 19 }, + seen: { letter: "س", index: 20 }, + sheen: { letter: "ش", index: 21 }, + xeen: { letter: "ښ", index: 22 }, + swaad: { letter: "ص", index: 23, loanReplacement: "س" }, + zwaad: { letter: "ض", index: 24, loanReplacement: "ز" }, + twe: { letter: "ط", index: 25, loanReplacement: "ت" }, + zwe: { letter: "ظ", index: 26, loanReplacement: "ز" }, + ayn: { letter: "ع", index: 27, loanReplacement: "" }, + ghayn: { letter: "غ", index: 28 }, + fe: { letter: "ف", index: 29 }, + qaaf: { letter: "ق", index: 30 }, + kaaf: { letter: "ک", index: 31 }, + gaaf: { letter: "ګ", index: 32, alternate: "گ" }, + laam: { letter: "ل", index: 33 }, + meem: { letter: "م", index: 34 }, + noon: { letter: "ن", index: 35 }, + Noon: { letter: "ڼ", index: 36 }, + waaw: { letter: "و", index: 37 }, + gurdaHe: { letter: "ه", index: 38 }, + klakaYe: { letter: "ي", middle: "ی", index: 39 }, + pastaYe: { letter: "ې", index: 40 }, + naareenaYe: { letter: "ی", index: 41 }, + xudzeenaYe: { letter: "ۍ", index: 42 }, + faailiyaYe: { letter: "ئ", index: 43 }, +}; + +export const diacritics = { + zwar: "َ", + zwarakey: "ٙ", + zer: "ِ", + pesh: "ُ", + sukun: "ْ", + hamzaAbove: "ٔ", + tashdeed: "ّ", + wasla: "ٱ", + daggerAlif: "ٰ", + fathahan: "ً", +}; + +export type PhonemeExample = ( + T.PsString & + { + pHighlight: number[][], + fHighlight: number[][], + a?: string, + audio?: { externalLink: string }, +}); + +export type Phoneme = { + phoneme: string, + a?: string, + quickExplanation: string | JSX.Element, + specialConsonant?: boolean, + shortVowel?: boolean, + longVowel?: boolean, + addAlefToStart?: boolean, + fiveYs?: boolean, + canBeIgnored?: boolean, + ipa: any, + onlyOnEnd?: boolean, + endingLetter?: ILetter, + examples: PhonemeExample[], +} & ({ possibleLetters: ILetter[] } | { diacritic: string }) + +export const phonemes = [ + // consonants + { + phoneme: "b", + quickExplanation: ( + <> + b in bat + + ), + possibleLetters: [letters.be], + ipa: { + letter: "b", + }, + examples: [ + { + p: "باد", + f: "baad", + e: "wind", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + a: "baad", + }, + { + p: "باتور", + f: "baatoor", + e: "courageous", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "p", + possibleLetters: [letters.pe], + quickExplanation: ( + <> + p in post + + ), + ipa: { + letter: "p", + }, + examples: [ + { + p: "پوزه", + f: "poza", + e: "Pashto", + a: "poza", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "t", + a: "t", + possibleLetters: [letters.te], + quickExplanation: ( + <> + t but further forward on teeth, like th in thick + + ), + specialConsonant: true, + ipa: { + letter: "t̪", + video: "https://www.youtube.com/watch?v=lxGKDZc-30g", + }, + examples: [ + { + p: "تور", + f: "tor", + e: "black", + a: "tor", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "T", + a: "tt", + possibleLetters: [letters.Te], + quickExplanation: "retroflex t", + specialConsonant: true, + ipa: { + letter: "ʈ", + video: "https://www.youtube.com/watch?v=evYnoRnbyxo", + }, + examples: [ + { + p: "مالټه", + f: "maalTa", + e: "orange (fruit)", + a: "maaltta", + pHighlight: [[3, 3]], + fHighlight: [[4, 4]], + }, + ], + }, + { + phoneme: "j", + possibleLetters: [letters.jeem], + quickExplanation: ( + <> + j in jar + + ), + ipa: { + letter: "ʤ", + video: "https://www.youtube.com/watch?v=vqL9ivPb09A", + }, + examples: [ + { + p: "جوړ", + f: "joR", + e: "well", + a: "jorr", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "جامې", + f: "jaame", + e: "clothes", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "ch", + possibleLetters: [letters.che], + quickExplanation: ( + <> + ch in chance + + ), + ipa: { + letter: "tʃ", + }, + examples: [ + { + p: "چا", + f: "chaa", + e: "whom", + a: "chaa", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + { + p: "چرت", + f: "chUrt", + e: "thought, worry", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "h", + a: "h", + possibleLetters: [letters.he], + quickExplanation: ( + <> + h in how + + ), + ipa: { + letter: "h", + }, + examples: [ + { + p: "حلات", + f: "haláat", + a: "halaat", + e: "circumstances", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "کهول", + f: "kahól", + e: "family, kindred", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "kh", + a: "kh", + possibleLetters: [letters.khe], + quickExplanation: ( + <> + guttural sound like loch + + ), + specialConsonant: true, + ipa: { + letter: "χ (Long-X)", + video: "https://youtu.be/y5AizU69VOA?t=36", + }, + examples: [ + { + p: "خوښ", + f: "khwux", + e: "pleasure", + a: "khwux", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "ts", + a: "ts", + possibleLetters: [letters.tse], + quickExplanation: ( + <> + similar to ts in its + + ), + specialConsonant: true, + ipa: { + letter: "t͡s", + }, + examples: [ + { + p: "څومره", + f: "tsomra", + e: "how much", + a: "tsomra", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "dz", + a: "dz", + possibleLetters: [letters.dzeem], + quickExplanation: ( + <> + similar to ds in lads + + ), + specialConsonant: true, + ipa: { + letter: "d͡z", + }, + examples: [ + { + p: "ځنګل", + f: "dzungul", + e: "jungle/forest", + a: "dzungul", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "d", + a: "d", + possibleLetters: [letters.daal], + quickExplanation: ( + <> + d but further forward on teeth, almost like th in weath + er + + ), + specialConsonant: true, + ipa: { + letter: "d̪", + video: "https://www.youtube.com/watch?v=S2QNn26uDP8", + }, + examples: [ + { + p: "دوه", + f: "dwa", + e: "two", + a: "dwa", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "D", + a: "dd", + possibleLetters: [letters.Daal], + quickExplanation: "retroflex d", + specialConsonant: true, + ipa: { + letter: "ɖ", + video: "https://www.youtube.com/watch?v=nU7H_aiG-kc", + }, + examples: [ + { + p: "ډوډۍ", + f: "DoDuy", + e: "bread, food", + a: "ddodduy", + pHighlight: [ + [0, 0], + [2, 2], + ], + fHighlight: [ + [0, 0], + [2, 2], + ], + }, + ], + }, + { + phoneme: "z", + possibleLetters: [letters.ze, letters.zaal, letters.zwaad, letters.zwe], + quickExplanation: ( + <> + z in zebra + + ), + ipa: { + letter: "z", + }, + examples: [ + { + p: "پوزه", + f: "poza", + e: "Pashto", + a: "poza", + pHighlight: [[2, 2]], + fHighlight: [[2, 2]], + }, + { + p: "زاري", + f: "zaaree", + e: "plea", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "ظاهر", + f: "zaahir", + e: "apparent", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "r", + a: "r", + possibleLetters: [letters.re], + quickExplanation: "a lightly rolled/tapped/flapped r", + specialConsonant: true, + ipa: { + letter: "ɾ, r̪", + video: "https://www.youtube.com/watch?v=J0IYx-WGebg", + }, + examples: [ + { + p: "رنګ", + f: "rang", + e: "colour", + a: "rang", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "R", + a: "rr", + possibleLetters: [letters.Re], + quickExplanation: "a retroflex r", + specialConsonant: true, + ipa: { + letter: "ɭ̆", + video: "https://www.youtube.com/watch?v=JN3Z6K8Idm4", + }, + examples: [ + { + p: "جوړ", + f: "joR", + e: "well", + a: "jorr", + pHighlight: [[2, 2]], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "jz", + a: "jz", + possibleLetters: [letters.jze], + quickExplanation: ( + <> + seizure + + ), + ipa: { + letter: "ʒ, d͡z", + }, + examples: [ + { + p: "ژوند", + f: "jzwund", + a: "jzwund", + e: "life", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "G", + possibleLetters: [letters.Ge], + quickExplanation: "g in eastern dialect, retroflex jz in southern", + specialConsonant: true, + ipa: { + letter: "ɡ", + }, + examples: [ + { + p: "وږی", + f: "wuGey", + e: "hungry", + a: "wuggey", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + { + p: "وږمه", + f: "waGma", + e: "breeze", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + { + p: "کېږي", + f: "keGee", + e: "it happens", + pHighlight: [[2, 2]], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "s", + possibleLetters: [letters.seen, letters.se, letters.swaad], + quickExplanation: ( + <> + s in season + + ), + ipa: { + letter: "s", + }, + examples: [ + { + p: "آسمان", + f: "aasmaan", + e: "sky", + a: "aasmaan", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + { + p: "سور", + f: "soor", + e: "red", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "اصرار", + f: "isráar", + e: "insistence", + pHighlight: [[1, 1]], + fHighlight: [[1, 1]], + }, + ], + }, + { + phoneme: "sh", + possibleLetters: [letters.sheen], + quickExplanation: ( + <> + sh in sheet + + ), + ipa: { + letter: "ʃ", + video: "", + }, + examples: [ + { + p: "شین", + f: "sheen", + e: "green", + a: "sheen", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "x", + a: "x", + possibleLetters: [letters.xeen], + quickExplanation: "like kh but more palatal, retroflex sh in southern", + specialConsonant: true, + ipa: { + letter: "x", + video: "https://www.youtube.com/watch?v=euRbmOchIXE", + }, + examples: [ + { + p: "اوښ", + f: "oox", + a: "oox", + e: "camel", + pHighlight: [[2, 2]], + fHighlight: [[2, 2]], + }, + { + p: "پښتو", + f: "puxto", + e: "Pashto", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "'", + possibleLetters: [letters.ayn], + quickExplanation: "Arabic pharyngealization or glottal stop", // TODO FIX SPELLING + canBeIgnored: true, + ipa: { + letter: "ˤ, ʔ", + }, + examples: [ + { + p: "مراعت", + f: "mUraa'at", + e: "applying (a law etc.)", + pHighlight: [[3, 3]], + fHighlight: [[5, 5]], + audio: { + externalLink: "https://youtu.be/ipg87BfaGDo?t=23", + }, + }, + ], + }, + { + phoneme: "gh", + a: "gh", + possibleLetters: [letters.ghayn], + quickExplanation: "a voiced guttural sound", + specialConsonant: true, + ipa: { + letter: "ɣ", + video: "https://www.youtube.com/watch?v=MmGjJNGTuIs", + }, + examples: [ + { + p: "غرمه", + f: "gharma", + e: "noon", + a: "gharma", + pHighlight: [[0, 0]], + fHighlight: [[0, 1]], + }, + ], + }, + { + phoneme: "f", + possibleLetters: [letters.fe], + quickExplanation: ( + <> + f in fan + + ), + ipa: { + letter: "f", + }, + examples: [ + { + p: "فوجي", + f: "fojee", + e: "army person", + a: "fojee", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "افت", + f: "afat", + e: "disaster", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "q", + a: "q", + possibleLetters: [letters.qaaf], + quickExplanation: "k but further down the throat", + ipa: { + letter: "q", + }, + examples: [ + { + p: "قاضي", + f: "qaazee", + e: "judge", + a: "qaazee", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "k", + possibleLetters: [letters.kaaf], + quickExplanation: ( + <> + k in kind + + ), + ipa: { + letter: "k", + }, + examples: [ + { + p: "کور", + f: "kor", + e: "house", + a: "kor", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "g", + possibleLetters: [letters.gaaf], + quickExplanation: ( + <> + g in game + + ), + ipa: { + letter: "g", + }, + examples: [ + { + p: "ګل", + f: "gUl", + e: "flower", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + a: "guul", + }, + { + p: "ګور", + f: "gor", + e: "grave", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "l", + a: "l", + possibleLetters: [letters.laam], + quickExplanation: "l with back of tongue higher up", + ipa: { + letter: "l", + link: + "https://en.wikipedia.org/wiki/Voiced_dental,_alveolar_and_postalveolar_lateral_approximants#Voiced_alveolar_lateral_approximant", + }, + examples: [ + { + p: "لیکل", + f: "leekul", + e: "to write", + a: "leekul", + pHighlight: [[0, 0], [3, 3]], + fHighlight: [[0, 0], [5, 5]], + }, + ], + }, + { + phoneme: "m", + possibleLetters: [letters.meem], + quickExplanation: ( + <> + m in maze + + ), + ipa: { + letter: "m", + }, + examples: [ + { + p: "مات", + f: "maat", + e: "broken", + a: "maat", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "مور", + f: "mor", + e: "mother", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "n", + possibleLetters: [letters.noon], + quickExplanation: "n with tongue further up on teeth", + ipa: { + letter: "n", + }, + examples: [ + { + p: "نايي", + f: "naayee", + e: "barber", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + a: "naayee", + }, + { + p: "نن", + f: "nun", + e: "today", + pHighlight: [ + [0, 0], + [1, 1], + ], + fHighlight: [ + [0, 0], + [2, 2], + ], + }, + ], + }, + { + phoneme: "N", + a: "nn", + possibleLetters: [letters.Noon], + quickExplanation: "retroflex n", + specialConsonant: true, + ipa: { + letter: "ɳ", + link: "https://en.wikipedia.org/wiki/Voiced_retroflex_nasal", + video: "https://www.youtube.com/watch?v=RKyAPB6Ldgo", + }, + examples: [ + { + p: "مڼه", + f: "maNa", + e: "apple", + a: "manna", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + { + p: "پاڼه", + f: "paaNa", + e: "leaf", + a: "manna", + pHighlight: [[2, 2]], + fHighlight: [[3, 3]], + }, + ], + }, + { + phoneme: "w", + a: "w", + possibleLetters: [letters.waaw], + quickExplanation: "w or very light v-like sound with both lips", + ipa: { + letter: "w, β̞", + link: "https://en.wikipedia.org/wiki/Voiced_bilabial_fricative", + }, + examples: [ + { + p: "وږی", + f: "wuGey", + a: "wuggey", + e: "hungry", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + { + p: "کوې", + f: "kawe", + e: "you do", + pHighlight: [[1, 1]], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "y", + possibleLetters: [letters.naareenaYe], + endingLetter: letters.klakaYe, + quickExplanation: ( + <> + y in yes + + ), + ipa: { + letter: "j", + }, + examples: [ + { + p: "یاد", + f: "yaad", + e: "memory", + pHighlight: [[0, 0]], + fHighlight: [[0, 0]], + }, + ], + }, + // short-vowels + { + phoneme: "a", + a: "a", + shortVowel: true, + diacritic: diacritics.zwar, + quickExplanation: ( + <> + short a similar to a in care + + ), + ipa: { + letter: "a", + }, + examples: [ + { + p: "سَړی", + f: "saRey", + e: "man", + a: "sarrey", + pHighlight: [[1, 1]], + fHighlight: [[1, 1]], + }, + ], + }, + { + phoneme: "i", + shortVowel: true, + diacritic: diacritics.zer, + quickExplanation: ( + <> + similar to i in bit + + ), + ipa: { + letter: "ɪ", + }, + examples: [ + { + p: "اِسلام", + f: "islaam", + e: "Islam", + a: "islaam", + pHighlight: [[0, 1]], + fHighlight: [[0, 0]], + }, + ], + }, + { + phoneme: "U", + a: "uu", + shortVowel: true, + diacritic: diacritics.pesh, + quickExplanation: ( + <> + short 'oo' sound similar to u in nuke + + ), + ipa: { + letter: "u", + }, + examples: [ + { + p: "لُطفاً", + f: "lUtfan", + e: "please", + a: "luutfan", + pHighlight: [[1, 1]], + fHighlight: [[1, 1]], + }, + { + p: "خدای", + f: "khUdaay", + e: "God", + pHighlight: [], + fHighlight: [[2, 2]], + }, + ], + }, + { + phoneme: "u", + shortVowel: true, + diacritic: diacritics.zwarakey, + quickExplanation: ( + <> + shwa sound similar to u in bud + + ), + ipa: { + letter: "ə", + }, + examples: [ + { + p: "واده", + f: "waadu", + pHighlight: [[3, 3]], + fHighlight: [[4, 4]], + }, + { + p: "پټ", + f: "puT", + e: "hidden", + pHighlight: [], + fHighlight: [[1, 1]], + }, + ], + }, + // vowels + { + phoneme: "aa", + a: "aa", + possibleLetters: [letters.alif], + longVowel: true, + quickExplanation: ( + <> + similar to long a in father + + ), + ipa: { + letter: "ɑ", + }, + examples: [ + { + p: "آسمان", + f: "aasmaan", + e: "sky", + a: "aasmaan", + pHighlight: [ + [0, 0], + [3, 3], + ], + fHighlight: [ + [0, 1], + [4, 5], + ], + }, + ], + }, + { + phoneme: "ee", + a: "ee", + possibleLetters: [letters.klakaYe], + longVowel: true, + fiveYs: true, + addAlefToStart: true, + diacritic: diacritics.zer, + quickExplanation: ( + <> + ee in bee + + ), + ipa: { + letter: "i", + }, + examples: [ + { + p: "لیکل", + f: "leekul", + e: "to write", + a: "leekul", + pHighlight: [[1, 1]], + fHighlight: [[1, 2]], + }, + ], + }, + { + phoneme: "o", + a: "o", + possibleLetters: [letters.waaw], + longVowel: true, + addAlefToStart: true, + quickExplanation: ( + <> + similar to o in bone + + ), + ipa: { + letter: "o", + }, + examples: [ + { + p: "پښتو", + f: "puxto", + e: "Pashto", + a: "puxto", + pHighlight: [[3, 3]], + fHighlight: [[4, 4]], + }, + ], + }, + { + phoneme: "oo", + a: "oo", + possibleLetters: [letters.waaw], + longVowel: true, + addAlefToStart: true, + diacritic: diacritics.pesh, + quickExplanation: ( + <> + similar to oo in food + + ), + ipa: { + letter: "u", + }, + examples: [ + { + p: "کدو", + f: "kadoo", + e: "pumpkin", + a: "kadoo", + pHighlight: [[2, 2]], + fHighlight: [[3, 4]], + }, + ], + }, + { + phoneme: "e", + a: "e", + possibleLetters: [letters.pastaYe], + longVowel: true, + fiveYs: true, + addAlefToStart: true, + quickExplanation: ( + <> + close to ee in bee but more open + + ), + ipa: { + letter: "e", + }, + examples: [ + { + p: "ښځې", + f: "xudze", + e: "women", + a: "xudze", + pHighlight: [[2, 2]], + fHighlight: [[4, 4]], + }, + ], + }, + { + phoneme: "ey", + a: "ey", + possibleLetters: [letters.naareenaYe], + longVowel: true, + fiveYs: true, + addAlefToStart: true, + quickExplanation: ( + <> + similar to ay in day + + ), + ipa: { + letter: "ai", + }, + examples: [ + { + p: "سړی", + f: "saRey", + e: "man", + a: "saRey", + pHighlight: [[2, 2]], + fHighlight: [[3, 4]], + }, + ], + }, + { + phoneme: "eyy", + a: "eyy", + possibleLetters: [letters.faailiyaYe], + longVowel: true, + fiveYs: true, + onlyOnEnd: true, + quickExplanation: + "Close or the same as 'uy'. Starts with a ‘ey’ sound and glides into an ‘ee’ at the end", + ipa: { + letter: "əi", + }, + examples: [ + { + p: "کښېنئ", + f: "kxeneyy", + e: "please sit", + a: "kxeneyy", + pHighlight: [[4, 4]], + fHighlight: [[4, 6]], + }, + ], + }, + { + phoneme: "uy", + a: "uy", + possibleLetters: [letters.xudzeenaYe], + longVowel: true, + fiveYs: true, + quickExplanation: + "Starts with a ‘u’ (schwa) sound and glides into an ‘ee’ at the end", + ipa: { + letter: "əi", + }, + examples: [ + { + p: "مرۍ", + f: "maruy", + e: "throat", + a: "maruy", + pHighlight: [[2, 2]], + fHighlight: [[4, 5]], + }, + { + p: "انجلۍ", + f: "injuluy", + e: "girl", + a: "injuluy", + pHighlight: [[4, 4]], + fHighlight: [[5, 6]], + }, + ], + }, + // { + // phoneme: "ooy", + // // TODO DEAL WITH POSSIBLE LETTERS: + // compoundVowel: true, + // examples: [{ + // p: "زوی", + // f: "zooy", + // e: "son", + // pHighlight: [[1, 2]], + // fHighlight: [[1, 3]], + // }], + // }, + // { + // phoneme: "aay", + // compoundVowel: true, + // examples: [{ + // p: "څای", + // f: "dzaay", + // e: "place", + // pHighlight: [[1, 2]], + // fHighlight: [[2, 4]], + // }] + // }, +]; + +// TODO ooy - aay diff --git a/src/components/phonetics/sounds.ts b/src/components/phonetics/sounds.ts new file mode 100644 index 0000000..340b6ce --- /dev/null +++ b/src/components/phonetics/sounds.ts @@ -0,0 +1,153 @@ +// @ts-ignore +import a from "./audio/a.m4a"; +// @ts-ignore +import aa from "./audio/aa.m4a"; +// @ts-ignore +import aasmaan from "./audio/aasmaan.m4a"; +// @ts-ignore +import d from "./audio/d.m4a"; +// @ts-ignore +import D from "./audio/dd.m4a"; +// @ts-ignore +import DoDuy from "./audio/ddodduy.m4a"; +// @ts-ignore +import dwa from "./audio/dwa.m4a"; +// @ts-ignore +import dz from "./audio/dz.m4a"; +// @ts-ignore +import dzaay from "./audio/dzaay.m4a"; +// @ts-ignore +import dzungul from "./audio/dzungul.m4a"; +// @ts-ignore +import e from "./audio/e.m4a"; +// @ts-ignore +import ee from "./audio/ee.m4a"; +// @ts-ignore +import ey from "./audio/ey.m4a"; +// @ts-ignore +import eyy from "./audio/eyy.m4a"; +// @ts-ignore +import gh from "./audio/gh.m4a"; +// @ts-ignore +import gharma from "./audio/gharma.m4a"; +// @ts-ignore +import h from "./audio/h.m4a"; +// @ts-ignore +import halaat from "./audio/halaat.m4a"; +// @ts-ignore +import i from "./audio/i.m4a"; +// @ts-ignore +import injuluy from "./audio/injuluy.m4a"; +// @ts-ignore +import islaam from "./audio/islaam.m4a"; +// @ts-ignore +import joR from "./audio/jorr.m4a"; +// @ts-ignore +import jz from "./audio/jz.m4a"; +// @ts-ignore +import jzwund from "./audio/jzwund.m4a"; +// @ts-ignore +import kadoo from "./audio/kadoo.m4a"; +// @ts-ignore +import kh from "./audio/kh.m4a"; +// @ts-ignore +import khwux from "./audio/khwux.m4a"; +// @ts-ignore +import kxeneyy from "./audio/kxeneyy.m4a"; +// @ts-ignore +import l from "./audio/l.m4a"; +// @ts-ignore +import leekul from "./audio/leekul.m4a"; +// @ts-ignore +import lUtfan from "./audio/luutfan.m4a"; +// @ts-ignore +import maalTa from "./audio/maaltta.m4a"; +// @ts-ignore +import maNa from "./audio/manna.m4a"; +// @ts-ignore +import meena from "./audio/meena.m4a"; +// @ts-ignore +import N from "./audio/nn.m4a"; +// @ts-ignore +import o from "./audio/o.m4a"; +// @ts-ignore +import oo from "./audio/oo.m4a"; +// @ts-ignore +import oox from "./audio/oox.m4a"; +// @ts-ignore +import ooy from "./audio/ooy.m4a"; +// @ts-ignore +import paaNa from "./audio/paanna.m4a"; +// @ts-ignore +import poza from "./audio/poza.m4a"; +// @ts-ignore +import puxto from "./audio/puxto.m4a"; +// @ts-ignore +import q from "./audio/q.m4a"; +// @ts-ignore +import qaazee from "./audio/qaazee.m4a"; +// @ts-ignore +import r from "./audio/r.m4a"; +// @ts-ignore +import R from "./audio/rr.m4a"; +// @ts-ignore +import rang from "./audio/rang.m4a"; +// @ts-ignore +import saRey from "./audio/sarrey.m4a"; +// @ts-ignore +import t from "./audio/t.m4a"; +// @ts-ignore +import tor from "./audio/tor.m4a"; +// @ts-ignore +import ts from "./audio/ts.m4a"; +// @ts-ignore +import tsomra from "./audio/tsomra.m4a"; +// @ts-ignore +import T from "./audio/tt.m4a"; +// @ts-ignore +import u from "./audio/u.m4a"; +// @ts-ignore +import uu from "./audio/uu.m4a"; +// @ts-ignore +import uy from "./audio/uy.m4a"; +// @ts-ignore +import w from "./audio/w.m4a"; +// @ts-ignore +import wuGey from "./audio/wuggey.m4a"; +// @ts-ignore +import waadu from "./audio/waadu.m4a"; +// @ts-ignore +import x from "./audio/x.m4a"; +// @ts-ignore +import xudza from "./audio/xudza.m4a"; +// @ts-ignore +import xudze from "./audio/xudze.m4a"; +// @ts-ignore +import zooy from "./audio/zooy.m4a"; +// @ts-ignore +import sheen from "./audio/sheen.mp3"; +// @ts-ignore +import chaa from "./audio/chaa.mp3"; +// @ts-ignore +import baad from "./audio/baad.mp3"; +// @ts-ignore +import kor from "./audio/kor.mp3"; +// @ts-ignore +import gUl from "./audio/guul.mp3"; +// @ts-ignore +import maat from "./audio/maat.mp3"; +// @ts-ignore +import maruy from "./audio/maruy.mp3"; +// @ts-ignore +import naayee from "./audio/naayee.mp3"; +// @ts-ignore +import fojee from "./audio/fojee.mp3"; + +export default { + a, aa, aasmaan, d, D, DoDuy, dwa, dz, dzaay, dzungul, e, ee, ey, + eyy, gh, gharma, h, halaat, i, injuluy, islaam, joR, jz, jzwund, kadoo, + kh, khwux, kxeneyy, l, leekul, lUtfan, maalTa, maNa, meena, N, o, oo, + oox, ooy, paaNa, poza, puxto, q, qaazee, r, R, rang, saRey, t, tor, ts, + tsomra, T, u, uu, uy, w, wuGey, waadu, x, xudza, xudze, zooy, sheen, chaa, + baad, kor, gUl, maat, maruy, naayee, fojee, +}; diff --git a/src/components/phonetics/views.tsx b/src/components/phonetics/views.tsx new file mode 100644 index 0000000..5fe0f82 --- /dev/null +++ b/src/components/phonetics/views.tsx @@ -0,0 +1,65 @@ +import React, { ReactNode } from "react"; +import { ViewOptions } from "./PhoneticsViewer"; + +const views: { + value: ViewOptions; + label: string; + notes?: ReactNode; +}[] = [ + { + value: "all", + label: "All", + }, + { + value: "shortVowel", + label: "Short Vowels", + notes: ( +
+

+ These short vowels are not written in the Pashto + script, except when: +

+ +

Diacritics can be (optionally) added to show these short vowels.

+
+ ), + }, + { + value: "longVowel", + label: "Long Vowels", + notes: ( +
+

+ Long vowels are always written in Pashto script. When + long vowels come at the beginning of a word, they are prefixed with a letter alef (ا). +

+

for example:

+ +

+ Note: When ey - ی or ee - ي are written in the middle of a word, both appear as ـیـ. + To differentiate ee - ي from ey - ی you can (optionally) add a ◌ِ diacritic. (eg. شِین - sheen) +

+
+ ), + }, + { + value: "specialConsonant", + label: "Tricky Consonants", + }, + { + value: "fiveYs", + label: "The Five ی's", + }, +]; + +export default views; diff --git a/src/content/index.ts b/src/content/index.ts index a8ddb2c..25104a3 100644 --- a/src/content/index.ts +++ b/src/content/index.ts @@ -64,6 +64,8 @@ import * as feminineInflection from "!babel-loader!mdx-loader!./inflection/femin // @ts-ignore import * as sandwiches from "!babel-loader!mdx-loader!./sandwiches/sandwiches.mdx"; +// @ts-ignore +import * as phonetics from "!babel-loader!mdx-loader!./writing/phonetics.mdx"; // @ts-ignore import * as theFiveYeys from "!babel-loader!mdx-loader!./writing/the-five-yeys.mdx"; // @ts-ignore @@ -213,6 +215,10 @@ const contentTree = [ heading: "Writing 🖊", subdirectory: "writing", chapters: [ + { + import: phonetics, + slug: "phonetics", + }, { import: theFiveYeys, slug: "the-five-yeys", diff --git a/src/content/writing/phonetics.mdx b/src/content/writing/phonetics.mdx new file mode 100644 index 0000000..47f6da8 --- /dev/null +++ b/src/content/writing/phonetics.mdx @@ -0,0 +1,29 @@ +--- +title: Phonetics +--- + +import PhoneticsViewer from "../../components/phonetics/PhoneticsViewer"; +import Link from "../../components/Link"; + +Although Pashto is written using the Arabic script, it is often written with latin-based phonetics in dictionaries or other places to show more information about how to pronounce the vowels of the word, or to show where the emphasis of the word is placed. + +## LingDocs Pashto Phonetics + +There have been many of different systems or conventions for writing Pashto in phonetics script. Below is a system used in this grammar and with the LingDocs Pashto Dictionary. + +A couple of things to note about this system: + +- There are **no special symbols** required so you can type it with a regular keyboard. +- The spelling is **case-sensitive**. Retroflex consonants (D, T, R, N) and one other vowel (U) are always written with capital letters - ie. D (ډ) is different than d (د). + + + +### Accent / emphasis + +In order to show which syllable the emphasis falls on in a word, an accent (´) is added above the vowel with the emphasis. + +**Exámple in Énglish**: I'm véry consciéntious and I álways put the émphasis on the corréct sýllable. + +### Seperating sounds + +If two sounds need to go right next to each other without blending a backtick (\`) is used to keep them apart. For example, **fas\`ha** is pronounced "fas-ha", not "fasha". \ No newline at end of file diff --git a/src/lib/play-audio.tsx b/src/lib/play-audio.tsx new file mode 100644 index 0000000..b4a32ad --- /dev/null +++ b/src/lib/play-audio.tsx @@ -0,0 +1,13 @@ +export default function playAudio(a: string) { + if (!a) return; + console.log(`/audio/${a}.mp3`); + let audio = new Audio(`/audio/${a}.mp3`); + audio.addEventListener("ended", () => { + audio.remove(); + audio.srcObject = null; + }); + audio.play().catch((e) => { + console.error(e); + alert("Error playing audio - Connect to the internet and try again"); + }); +} \ No newline at end of file