Browse Source

Fix treatment of diphthongs for stress in Elvish

Stress is determined based on the syllables, not the vowels, so the
diphthongs need to count as a single syllable. If there is a diphthong
at the end of a word, the penultimate syllable can still be unstressed
if it is light. (The name of Arvedui, last king of Arthedain, is one
example of this that I could think of, but I’m sure it’s not the only
one.)
master
Lucas Werkmeister 4 years ago
parent
commit
9ac1a5bffb
3 changed files with 29 additions and 23 deletions
  1. 13
    10
      dictsource/qya_rules
  2. 15
    12
      dictsource/sjn_rules
  3. 1
    1
      tests/language-pronunciation.test

+ 13
- 10
dictsource/qya_rules View File

@@ -1,3 +1,6 @@
// syllable nuclei: vowels (any length) and diphthongs
.L01 i e a o u í é á ó ú î ê â ô û ui oi ai iu eu au

.replace
// turn x into cs, both because that’s how it’s pronounced
// and to free up x as a single letter for ch (see immediately below)
@@ -12,8 +15,8 @@
ai (+ aI
au (+ aU
// light penultimate syllable: put stress on antepenultimate
a (AX =a
a (CAX =a
a (L01X =a
a (CL01X =a

.group á
á a:
@@ -42,8 +45,8 @@
e e
eu (+ EU
// light penultimate syllable: put stress on antepenultimate
e (AX =e
e (CAX =e
e (L01X =e
e (CL01X =e

.group é
é e:
@@ -66,8 +69,8 @@
i i
iu (+ iu
// light penultimate syllable: put stress on antepenultimate
i (AX =i
i (CAX =i
i (L01X =i
i (CL01X =i

.group í
í i:
@@ -94,8 +97,8 @@
o o
oi (+ OI
// light penultimate syllable: put stress on antepenultimate
o (AX =o
o (CAX =o
o (L01X =o
o (CL01X =o

.group ó
ó o:
@@ -133,8 +136,8 @@
u u
ui (+ ui
// light penultimate syllable: put stress on antepenultimate
u (AX =u
u (CAX =u
u (L01X =u
u (CL01X =u

.group ú
ú u:

+ 15
- 12
dictsource/sjn_rules View File

@@ -1,3 +1,6 @@
// syllable nuclei: vowels (any length) and diphthongs
.L01 i e a o u y í é á ó ú ý î ê â ô û ŷ ae ai ei oe ui au

.replace
// turn x into cs, both because that’s how it’s pronounced
// (strictly speaking only in some Quenya, but let’s do it here too)
@@ -14,8 +17,8 @@
ai (+ aI
au (+ aU
// light penultimate syllable: put stress on antepenultimate
a (AX =a
a (CAX =a
a (L01X =a
a (CL01X =a

.group á
á a:
@@ -44,8 +47,8 @@
e e
ei (+ eI
// light penultimate syllable: put stress on antepenultimate
e (AX =e
e (CAX =e
e (L01X =e
e (CL01X =e

.group é
é e:
@@ -68,8 +71,8 @@
i i
_) i (A+ j
// light penultimate syllable: put stress on antepenultimate
i (AX =i
i (CAX =i
i (L01X =i
i (CL01X =i

.group í
í i:
@@ -97,8 +100,8 @@
o o
oe (+ OI
// light penultimate syllable: put stress on antepenultimate
o (AX =o
o (CAX =o
o (L01X =o
o (CL01X =o

.group ó
ó o:
@@ -136,8 +139,8 @@
u u
ui (+ ui
// light penultimate syllable: put stress on antepenultimate
u (AX =u
u (CAX =u
u (L01X =u
u (CL01X =u

.group û
û u::
@@ -156,8 +159,8 @@
.group y
y y
// light penultimate syllable: put stress on antepenultimate
y (AX =y
y (CAX =y
y (L01X =y
y (CL01X =y

.group ý
ý y:

+ 1
- 1
tests/language-pronunciation.test View File

@@ -194,7 +194,7 @@ test_phon sd "s'Indhi b'o:li; 'Ind.o: jo:R'Vpi xa:nd'a:n s'a~: t[a:l'Vq R,@k#@nd
J'Vnhn t['e: ,aRb'i: bo:l'i:;a J'o: b'I t[@m'a:m v'Vd.o: as'VR ,a:he:
h'Ina v'aqt s'Indhi b'o:li s'Indh J'e: m'Vk# b'o:li_! 'ae~ d,@f@t['VRi z@b'a:n ,a:he:" "سنڌي ٻولي انڊو يورپي خاندان سان تعلق رکندڙ آريائي ٻولي آھي، جنھن تي عربي ٻوليءَ جو بہ تمام وڏو اثر آهي. هن وقت سنڌي ٻولي سنڌ جي مک ٻولي ۽ دفتري زبان آھي." "Arab"
test_phon si "t'aw@t st#'a:n@ k'i:p@j,@kin w'a:rta: w'u: s'ul.u p'ipiri:m s'ah@ d'e:s@p,a:l@n@ p'akS@ k r'ija:k,a:ri:n 'at@r@ '&tiwu: g'&t.um h'e:tuwen 'ek 'ajeku m'ij@gos k'i:p@ d'eneku t'uwa:l@ l'aba: t'ibe:" "තවත් ස්ථාන කීපයකින් වාර්තා වූ සුළු පිපිරීම් සහ දේශපාලන පක්ෂ ක්‍රියාකාරීන් අතර ඇතිවූ ගැටුම් හේතුවෙන් එක් අයෙකු මියගොස් කීප දෙනෙකු තුවාල ලබා තිබේ." "Sinh"
test_phon sjn "'alf 'aman 'amaRT 'amon 'aRag,oRn aRn'OIdi;,ad bel'eRi;,and b'oRom,iR bRag'ollax bR'eTil bRiT'ombaR bR'uinen k'aIR kaR'aDRas k,elebR'i:an kRiss'aEgRim d'eneT,oR dR'eNgist d'u::n ekT'eli;,on 'emyn eR'i;ad,oR f'ean,oR find'uilas f'iNgon fiNg'olfin fin'aRfin f'oRox,el g'alaD,on gal'adRi;,el gR'ond gw'aIhiR j'aRwaIn j'oReT iT'ili;,en loTl'o:Ri;,en miT'eITel miTR'andiR moR'annon m'oRi;,a oR'offin osg'ili;,aT pal'anti:R p,alant'i:Ri pel'ennoR p,eRi;'annaT sil'ivRen ToR'ondoR" "alph Aman Amarth Amon Aragorn Arnoediad Beleriand Boromir Bragollach Brethil Brithombar Bruinen Cair Caradhras Celebrían Crissaegrim Denethor Drengist dûn Ecthelion Emyn Eriador Fëanor Finduilas Fingon Fingolfin Finarfin Forochel Galadhon Galadriel Grond Gwaihir Iarwain Ioreth Ithilien Lothlórien Mitheithel Mithrandir Morannon Moria Orophin Osgiliath Palantír Palantíri Pelennor Periannath Silivren Thorondor" "Sindarin"
test_phon sjn "'alf 'aman 'amaRT 'amon 'aRag,oRn aRn'OIdi;,ad 'aRved,ui bel'eRi;,and b'oRom,iR bRag'ollax bR'eTil bRiT'ombaR bR'uinen k'aIR kaR'aDRas k,elebR'i:an kRiss'aEgRim d'eneT,oR dR'eNgist d'u::n ekT'eli;,on 'emyn eR'i;ad,oR f'ean,oR find'uilas f'iNgon fiNg'olfin fin'aRfin f'oRox,el g'alaD,on gal'adRi;,el gR'ond gw'aIhiR j'aRwaIn j'oReT iT'ili;,en loTl'o:Ri;,en miT'eITel miTR'andiR moR'annon m'oRi;,a oR'offin osg'ili;,aT pal'anti:R p,alant'i:Ri pel'ennoR p,eRi;'annaT sil'ivRen ToR'ondoR" "alph Aman Amarth Amon Aragorn Arnoediad Arvedui Beleriand Boromir Bragollach Brethil Brithombar Bruinen Cair Caradhras Celebrían Crissaegrim Denethor Drengist dûn Ecthelion Emyn Eriador Fëanor Finduilas Fingon Fingolfin Finarfin Forochel Galadhon Galadriel Grond Gwaihir Iarwain Ioreth Ithilien Lothlórien Mitheithel Mithrandir Morannon Moria Orophin Osgiliath Palantír Palantíri Pelennor Periannath Silivren Thorondor" "Sindarin"
test_phon sk "k'r:d;el^ St;'astni:Q d;'atl^ow 'utSi: pR'i;u:st;i: v'a:hu m'l:kveho k'on^a 'ophRi:zat; k'uoRu_:_: a ZR'at; tS'eRstve: m'eso
p'et;ti:Zdn^,ove: v'l:tSata: n'eRvo:zn^e St;'ekaju: n'amu,ojho d;'atl^a_! v_ t'r:n^i:" "Kŕdeľ šťastných ďatľov učí pri ústí Váhu mĺkveho koňa obhrýzať kôru a žrať čerstvé mäso. Päťtýždňové vĺčatá nervózne štekajú na môjho ďatľa v tŕní." "Latn"
test_phon sl "xiSn'i:tSin bR'a:tEts uzg'a:ja p'o:wZE p'o:t fik'u:sOm" "Hišničin bratec vzgaja polže pod fikusom." "Latn"

Loading…
Cancel
Save