diff --git a/dictsource/af_list b/dictsource/af_list index de8778e2..c5b07599 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -1,4 +1,4 @@ -//maintainer: Willem van der Walt +//maintainer: Willem van der Walt // email: wvdwalt@csir.co.za // tel: +27 12 8413996 // Meraka Institute, CSIR @@ -126,12 +126,18 @@ christo krIstu christian krIstian christine kr@st'i:n coetzee kuts'e@ +cronjé krOnj'e@ debora d@bo@ra der d@r deventer d'e@v@nt@r +du $u +(du plessis) du||pl@s'i +(du preez) d@||pr'e@ +(du toit) d@||toI elize il'i:z esegiël is'e@x2i_@l estelle %ist&l +etienne Eti@n eugene judZ'i:n eugène yZ'En farao fA:ro@ @@ -172,13 +178,13 @@ mostert m'Ost@rt mozart mo@tsart naomi na_'o@mi natasha n%at'aSa +naudé nOd'e@ paul p@Ul paulus p@UlWs philip fIl@p pierre p'e@r petrus pe@trWs phoebe fi:bi -preez pr'e@ rachmaninoff rax2m'aninOf rebekka r@bEka ronel run'&l @@ -186,7 +192,9 @@ rousseau r@s@U roux r'u schalk sk'alk scheepers ske@p@rs +schoeman skuman schoor sko@r +schutte skWt@ shakespeare _^_EN tania tanja terblanche t@rblA:nS @@ -197,12 +205,12 @@ marais mar'E: mandela mand'E:la celliers sIlj'e@ joubert jub'&:r -plessis pl@s'i +scarlatti $2 schalkwyk skalkveIk +schreiner SraIn@r tony t@Uni xhosa kO:za -toit toI khumalo kum'A:lu @@ -295,7 +303,6 @@ voor $u $strend2 // misc unstressed de d@ -du $u dat $u $strend te t@ nie $unstressend @@ -514,6 +521,7 @@ ongewoons $1 onkunde $1 onmag $1 onmin $1 +oplaas $2 onraad $1 onrus $1 oorkom $2 @@ -527,6 +535,7 @@ patriotisme patri|ut'Ism@ penorent pEno@rEnt per pIr persent p@rsEnt +pinotage pinut'A:Z prakseer $2 program prux2r'am @@ -541,7 +550,7 @@ rukkerig rWk@r@x2 samelewing sA:m@l,e@v@N sedert se@d@rt sektore $2 -sinteties $2 +skares skA:r@s skepsele skEps@l@ s'n s'@n sobere s'o@b@r@ diff --git a/dictsource/af_rules b/dictsource/af_rules index 77643a6d..86af7ec7 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -1,4 +1,4 @@ -//maintainer: Willem van der Walt +//maintainer: Willem van der Walt // email: wvdwalt@csir.co.za // tel: +27 12 8413996 // Meraka Institute, CSIR @@ -12,11 +12,13 @@ .group a _C) a (Cie_ 'A: a A: + AC) a (_ %a // short final a in words like: Eva/Pieta/(su)sara + %C) a (_ %a // short final a in words like: Bella/Betta/gogga + &d) a (_ %a // short, unstressed a after d at end of word: soda/padda... and compounds i) a (_ %a // a short and unstressed in words ending in ia: laboratoria/millennia a (C a C) a (Csier %a // (ge)finansier/kassier j) a (pan %a //japan first a sound and stress - C) abie 'A:bi abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie _) a (bC %a // abdy/ablatief/ablusie/abstrak, etdc. @@ -39,8 +41,9 @@ akkedis a%k@d'Is //akkedis and compounds ae A: //should be A:@ but sounds wrong konst) abel A:b@l //exception for konstabel in compounds - t) abel %ab'&l //tabelopskrif temperatuurtabel etc. - t) abell %ab'&l //tabelle fix double l + t) abel %ab&l //tabelopskrif temperatuurtabel etc. + spekt) abel 'A:b@l // respektabel/-e/-heid/-ste + t) abell %ab&l //tabelle fix double l w) a (tering A: //watering exception to the rest C) a (tering %a //short unstressed a before tering formatering etc. except watering ai aI @@ -312,7 +315,8 @@ bek (_ b&k // exception to be (C%+ bE beken b@kEn // 2nd e sound: oorbekend/welbekende @) beker (_ be@k@r // compounds ending with -beker - bell b&l // inbeller/oorbelle/seepbelle + r) bel b&l // fix e sound: deurbel/oorbel + bell (+ b&l // inbeller/oorbelle/seepbelle _) bel (C b&l // Belgies/belhamel bere (_ be@r@ //tediebere pandabere etc. beste (_ bEst@ // fix e sound: beste/allerbeste/naasbeste/-s @@ -411,7 +415,7 @@ direk d%irEk // direk/-sie/-te/-theid/indirek... dirig (e d@r@x2 // fix stress and i sounds: dirigeer/dirigent and compounds diskre (s d@skrE // fix stress and e sound: diskresie/diskresionêre - &) de (_S2 d@ + divide (nd d@v@dE //dividende etc. &) des (_ d@s d (_N t // dj c // palatal stop @@ -444,8 +448,11 @@ dominee (_ d'o@m@ni domin (A dOmin' // domineer/dominering _) dom (ACC dOm // fix o sound: domastrant/domonnosel and derivitives + dosi (s do@s@ // fix stress: (oor)dosis/-se; excep. to rule of stress on -is @) d (C t // oudste/benoudste/goudstad/steeds/Sweeds + ge) dw dw// fix d sound: rondgedwaal/deurgedwarrel/deurgedwing, etc. @) ds (_ ts // fix d sound of wrds ending in -ds: buitentyds, etc. + oo) d (r t // fix d sound: broodrooster/doodryp/loodreg/noodroep p) d (C d // oopdwing/koopdwang ver) d (C d // verdwyn; see rule: @) d (C t @) dd d // beddens/bedding @@ -518,6 +525,7 @@ @) eer 'e@r // this string most often has stress h) eer e@r // words containing heer take default stress: allesoorheersende sf) eer e@r // sfeer at end of compounds does not take stress: atmosfeer, etc. + sk) eer e@r // words kontaining skeer take default stress: af/glad/kort/raakgeskeer Cs) eer e@r // words containing seer (meaning pain) take default stress w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer u) eer 'e@r // aktueer/konstrueer/salueer, etc. @@ -584,6 +592,7 @@ %C) e (C @ // (d)warrelwind/slakkepas ll) e (lK & // parallel/-le @s) e (l@ @ // e sound in words like borselkop/voedselaanvulling and many similar + @s) e (lfde '& //fix dieselfde Cs) e (lf & // e sound in words like terselfdertyd/vanselfsprekend Cs) e (lle_ & // e sound in words like bloedselle/limfselle/stamselle/tronkselle AC) e (lh @ // e sound in words like edelheid/ydelheid/kreupelheid @@ -596,6 +605,7 @@ &) e (lC_ @ @m) e (ld & // aanmeld/voormeld Csp) e (ld & // fix e sound: borsspeld/haakspeld/doekspeld, etc. + Csp) e (ls & // fix e sound: jakkalspels/penspels/lamspels and similar elagtig @l'ax2t@x2 // beuselagtig/e/heid/buffelagtig... ener (gi %En@r // energie/energiek/e ele (ment El@ // element/e/klankelement @@ -629,6 +639,7 @@ breip) e (n E // fix e sound in breipen/-ne &) e (n_ @ &) e (nC_ @ + &) e (nde_ @ // fix penultimate e sound: sinkende/drinkende/klinkende &) e (ng_ E erf) e (nis @ //erfenis/kultuurerfenis/verderfenis @@ -740,7 +751,7 @@ CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others orr) e (l @ //fix e in borrel, orrel, korrel in compounds intell) e (k %E //intellek, and friends - p) e (ring 'e@ //imansipering and others e sound and stress + p) e (ring 'e@ //emansipering and others e sound and stress roep) e (ring 'e@ //groepering e sound and stress eval (u %iv%al // evaluasie/evalueer/evaluering CAt) e (gn & //fix e in mikrotegnologie and others @@ -902,6 +913,7 @@ her (eva h&r? // fix e sound: herevalueer... hersen h&rs@n // restore default stress and fix 2nd e sound: hersenskim/-me/-mig/hersenskudding hertog (in h%&rt%Ox2 // fix stress and o sound: (aarts/groot)hertogin/-ne and similar + hertzog h&rtsOx2 // fix stress and o sound: hertzog/-isme/-koekies _) her (uit h''&r_ // restore stress to 1st slb.: heruitgawe/-gee/-saai/-sending hel h&l _) helde h'&ld@ // heldedade/heldedood/heldemoed... @@ -934,7 +946,8 @@ _) in (a@ In_ //inasem inagneming etc. _) iese (C ,is@ // iesegrimmig and derivitives ieus i'Y@s // this ending always takes stress - C) i (g @// figuur/figure/stoksielsaligalleenA + C) i (g @ // figuur/figure/stoksielsaligalleenA + X) i (gK+ I // fix stress: (ont)stig/-ting/ontwrig _ant) i (C i // fix i sounds an words like: antichris/antidoot/antiklimaks, etc. ps) i (gA i // i sound in words like psigiater/psigoloog, etc. s) i (gC I // stress: sigverlies/opsigte @@ -1029,6 +1042,7 @@ iër (@ i'e@r // kopiëring/subsidiërende fn) is (A @s_ // fix i sound: begrafnisete/-ondernemer/-onkoste AC) is (_ 'Is // aktivis/humanis/kommunis/pianis/solis/violis/kompromis + pub) is (_ @s // restore defaultstress: pubis, excep. to: AC) is (_ en) is (K @s // stress: beduidenis/bekentenis/gevangenis, etc. kris) is @s // fix stress: krisis and compounds pol) is (_ @s // polis and compounds @@ -1306,6 +1320,7 @@ manier m@ni:r //manier and compounds manu (sk ,many marine m%arin@ // marine and compounds + ma (ritz m%a' // fix stress: Maritz/Pietermaritsburg marmelade m%arm@lA:d@ // fix stress and e sounds: marmelade and compounds mar (sje m%ar // move default stress: marsjeer and derivitives mas (biek m%as // move default stress: masbieker/-s @@ -1494,6 +1509,8 @@ nuan (seer n%y%an // fix stress: (ge)nuanseer/-d nuus (kierig n%ys // move default stress: nuuskierig/-heid nuwer (wet n%yv@r // move default stress: nuwerwets/-e + @Cer) ny (_ n'eI // move default stress: lekkerny/raserny/slawerny + @Cer) ny (e n'eI // move default stress: gekkernye/lekkernye/sotternye .group o @@ -1516,6 +1533,7 @@ _) ordent %OrdEnt // move default stress: ordentlik/-e/-er/-ste/-heid orie o@ri oriu 'o@riW + _) or (ka %Or // move default stress: orkaan/orkane/orkaanwaarskuwing... orkes %OrkEs // orkes and compounds _) os (moC %Os // move default stress: osmose/osmoties/-e @@ -1636,6 +1654,7 @@ _) on (@P2 %On ondeur %Ond%y@r // ondeurdagte/ondeurdringbaar/ondergrondelik + _) on (fiks On // stress on 1st slb.: onfiks/-e/-heid onheil ''OnheIl // stress: onheil/e/onheilbringer/onheilsvoorspelling onheil (ig %Onh'eIl // stress: onheilig/e onheil (spel %Onh%eIl // stress: onheilspellend/e @@ -1647,8 +1666,14 @@ onteenseg Onte@ns'&x2 // onteenseglik/e _) ontel %Ont&l // ontelbaar/ontelbare/ontelbaarheid on (toe %On // ontoereikend/heid + on (tugtig %On // fix stress and avoid ont prefix: ontugtig/-e/-heid + on (tug On // stress on 1st slb and avoid ont prefix: ontug/-pleger... on (tyd %On // ontydig and derivitives _) on (wAs 'On // onwis/onwys + _) onweer Onve@r // stress on 1st slb.: onweer/-snag/-swolke... + _) onweer (l %Onv%e@r // but onweerlegbaar/-bare/-baarheid + _) onweer (spr %Onv%e@r // onweerspreekbaar/onweerspreeklike/onweersproke + _) onweer (staan %Onv%e@r // onweerstaanbaar/-bare/-baarheid _) onge (@P4 Onx2@ _) ongees %Onx2%e@s // ongeesdriftig; see rule: _) onge (@P4 Onx2@ _) ongeloofli (k Onx2@l'o@fl@ // to avoid "lik" suffix retranslation of "ongeloof" @@ -1704,12 +1729,14 @@ oor (heers %o@r // move default stress oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling _) oorlede o@rl'e@d@ // stress oorlede/ne/s + oorle (wing o@rl''e@ // stress on 2nd slb.: oorlewing/-sekuriteit/-situasie oor (reed %o@r // move default stress oor (redA %o@r // move default stress: oorredingskrag oor (rompel %o@r // move default stress oor (sk %o@r // stress: oorskadu/oorskat/oorskrei _) oor (skiet o@r // stress on 1st slb.: oorskiet and compounds oor (spronk %o@r // move default stress: (on)oorspronklik and compounds + oor (stur %o@r // move default stress: oorsturig/-e/-heid oor (tr %o@r // oortree/oortreding/oortref oor (tuig %o@r // oortuig/oortuiging/oortuigende _) oor (vleuel %o@r // move default stress: oorvleuel/-ing @@ -1728,7 +1755,8 @@ pakke (t p%akE // pakket/-te and compounds panga paNga // fix g sound: panga/-s _) pan (to p%an // move default stress: pantoffel and compounds/pantoen - papaja pap'AIa //papaja and compounds + papaja p%ap'A:ia //papaja and compounds + papawer p%apA:v@r // move default stress: papawer/-s and compounds pam (C p%am // move default stress: pamflet/pampoen/pampoentjies and compounds pam (pa pam // restore default stress: pampas and compounds pape (gaai p%ap@ //papegaai and compounds: stress, a and e sounds @@ -1736,6 +1764,7 @@ pantser pants@r // fix e sound in compounds starting with pantser pa (pier p%a // papier and compounds parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg. + parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds pa (tat p@ // patat/warmpatat/wurgpatat patie (K p%at'i //words ending in patie has stress at end + a sound/simpatiek para (C ,para //paralel, paragraaf etc. @@ -1771,7 +1800,9 @@ per (so p@r // persoon/persone perso (neel p%&rs%u // personeel and compounds pervers p@rf&rs // pervers/perversie + _) pi (la p%i // move default stress: pilaar/pilare/pilatus pi (sto p@ // pistool/pistole and compounds + pizza pitsa // fix zz sound: pizza and compounds pla (fon pl%a // plafon and many compounds _) pla (kka pl%a // move default stress: plakkaat/plakkate plane (tA pl%an@' // planetarium/interplanetêr @@ -1781,14 +1812,18 @@ plig plIx2 // fix i sound: dienspligontduiker/pliguitvoering @) pligtig pl'Ix2t@x2 // pligtig in compounds takes stress: dienspligtige, etc. pof (add pOf_ // fix o sound: (konings)pofadder/-s + po (liep p%u // fix stress and o sound: poliep/-e/-agtig and compounds of poliep polisie pul'isi politiek pOl@t'ik popu ,pOpy _) por (C %pOr //portret portaal etc. + por (sie pOr // restore default stress: porsie/-s/-tjie portu (ge p%Ort%y // fix stress: Portugees/Portugese _) pos (a pOs //posadres/posadministrasie _) post (K p'@Ust- //post where it means after + _) post (u p%Ost // move default stress: postuur/posture/postuum and compounds of postuur _) prak (tyk pr%ak // stress: praktyk and compounds + pre (lud pr@ // fix stress and e sound: prelude/-s/(ge)preludeer pre (mier pr@ // move default stress and fix e sound: premier and compounds pre (sA pr@ // president/presies/present pre (se_ pre@ // fix e sound of words ending in -prese @@ -1802,6 +1837,7 @@ profesie prOf@s'i // fix vowel sounds and move stress pro (CA pr%u // probeer/produk/proses/professie/provinsie prokie pro@k%i //sprokie and compounds + proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc. prosa pr'o@sa //prosa and compounds proses (_ prus'Es //proses at end of word @@ -1820,6 +1856,7 @@ pub (li p%Wb puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivitives + pu (pil p%y // move default stress: pupil/-le and compounds .group q @@ -1827,6 +1864,7 @@ q (q qu _^_EN // words containing qu are English + quix (otie kw%iks // avoid translation by English rules: quixoties/-e .group r @@ -1847,6 +1885,8 @@ _) ra (pport r%a // fix stress: rapport/skoolrapport/rapportryer rasse ras@ // e sound of compounds starting with rasse ribbe (tj r'Ibi + rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der + ritme rItm@ // fix e sound in ritmes/ritmespeler ritu (A r@t%y // ritueel/rituele/ritualisties _) rol (A rOl? // oprolaksie/roloorvleueling roetine r%utin@ // stress: roetine/-basis/-besoek/-kontrole... @@ -1862,11 +1902,11 @@ rivier r@f'i:r _) ri (g rI // stress on 1st slb.: rigting/-loos/-vas, etc. rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry - rugby r'Wgbi - ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid rondom rOnt_%Om // rondom/rondomheen/rondomstaner rolprent rOlprEnt // rolprent/rolprentvertoning and other compounds - + ru (briek r%W // move default stress: rubriek/-skrywer, etc. + rugby rWgbi + ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid .group re rea (ks r%ia // reaksie/s/skokreaksie rea (C r%i%a // reageer/realis/me|ties @@ -1878,6 +1918,7 @@ reden (ACA r@d@n' // redenasie/s _) redi (gA r%Ed%i // redigeer/geredigeer/-de/ongeredigeerde refor (m r@f%Or // gereformeerde/reformering/reformasie + regime (_ r@Zi:m // regime/-s and compounds reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list re (kru r@ // move stress from 1st slb @@ -1885,6 +1926,7 @@ rele (van r@l@ // relevansie/relevant and derivitives re (nA r@ // move stress from 1st slb.: renoster reper (kus r%e@p@r // stress: reperkussie/-s + re (produ r%e@ // fix stress and e sound: reproduksie/reproduseer repu (t r%Epy // move stress from 1st slb rewol (u r%Ev%Wl //rewolusie and friends rewolwer r@v'Olv@r //rewolwer and friends @@ -1926,6 +1968,8 @@ sch S sh (_ S sj S + sjampanje S%ampanj@ // move default stress: sjampanje and compounds + sjerrie SEri // fix e sound: sjerrie and compounds sjokolade SOk@l'A:d@ // sjokolade and compounds s (japie s // dorpsjapie/plaasjapie/stadsjapie @) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar @@ -1934,19 +1978,24 @@ sig (a@ s@x2 // sigaar/sigare/sigaardosie siklu (s siklW // siklus and many compounds sili (nd s@lI // silinder(s)/silinderkoppe + sinteties s@nte@tis // sinteties/e/fotosinteties/-e si (viel s@ // move default stress and fix i sound: siviel/-e s (iën S sending (_ sEnd@N //fix sending at word end saamge (P6 s'A:mx2@ // saamgepers/-de/saamgetel/saamgeêet + saamgee sA:mx2e@ // fix ee in saamgee; see rule: saamge (P6 sabot (A s%ab%ut // sabotasie/saboteer salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling salon salOn // eetsalon/haarkappersalon + _) sam (b s%am // move default stress: sambok/-kke/sambreel/sambrele and compounds _) same (@P4 s'A:m@ // samekoms/sameswering samel (C sA:m@l // versamelde: see rule:_) same (@P4 s'A:m@ samen (+ sA:m@n // gesamentlik/-e + _) sar (d s%ar // sardien/-blikkie/sardinies/sardyne sar (kA s%ar // move default stress: sarkasme/sarkasties/sarkoom sa (tir s%a // move default stress: satire/satiries/-e + _) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher _) sede se@d@ // sede/-s|-preek seker se@k@r // versekering/sekerheid/onsekerheid/sekere se (ko s@ // sekond/sekonde/sekondes/sekondant @@ -1956,16 +2005,21 @@ &) sele (_ s'e@l@ no) sele (_ s@l@ // e sounds in onnosele + self (stan s%&lf // move default stress: selfstandig/-e/-heid seli (ba s%El%i // move default stress and fix e sound: selibaat/selibate @) sel (wig s'&l // stress: (ver)eenselwig and derivitives _) semen (t s@mEn // sementtafel/blad/vierkant semi (na s%Em%i // seminaar/seminare/seminarium sening se@n@N // sening/haaksening/heupsening + _) senior s''i:ni@r // default stress; fix vowl sounds: senior and compounds starting with senior + senior (itei s%i:n%i%Or // fix vowel sounds: senioriteit sen (trale s%En // exception to default stress rule + _) ser (e@ s@r // fix stress and 1st e sound: sereen/serene sere (moni s%Er@ // seremonie/-meester/huwelikseremonie/seremonieel ser (sant s@r // move default stress: sersant and compounds ser (vet s@r // servet and compounds, e.g. servetring + ses (uur sEs_ // fix e sound and insert short break: sesuur/-nuus, etc. setel (K se@t@l // setel and compounds; to avoid "=tel" suffix sete (ne_ se@t@ // fix e sound: besetenes/aangesetene/ingesetene siaal Si'A:l // potensiaal/provinsiaal @@ -1982,6 +2036,7 @@ skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds _) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds skarrel skar@l // restore default stress: (ge)skarrel/-ing + _) ske (let sk@ // fix stress and 1st e sound: skelet and compounds skemer ske@m@r // fix 2nd e in many compounds and derivitives of skemer- sker (muts sk%&r // move default stress: (ge)skermutsel/skermutseling/-e skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum @@ -2014,7 +2069,11 @@ @) sief (_ s'if // massief/aggressief/passief/intensief @) siewe (_ s'iv@ // massiewe/aggressiewe/passiewe/intensiewe _) sieke sik@ // siekeboeg/-fonds/-lys/-lokaal/-loon + si (llabe s@ // move default stress: sillabe/-s silwer sIlv@r // silwerskoon/silwerware/compounds of silwer + sim (bo s@m // move default stress: simbool/simbole/simbolies/-e + simbo (liek s@mb%u // fix stress and vowel sounds: simboliek and compounds + simpo (siA s@mpo@ // fix stress and o sound: simposium/simposia and compounds // sioe Si'u si (o Si // fisiologie/-logiese/-loog sio (ne Siu' // emosioneel/emosionele/rasioneel/rasionele, etc. @@ -2046,7 +2105,7 @@ @) sug (tig s'Wx2 // eersugtig/onbaatsugtig/onselfsugtig, etc. sukses s%WksEs // sukses/suksesse/suksesvol/reusesukses su (mmier s%W // move default stress: sumier/-e - su (san s%u // fix stress and u sound: susan/-na + su (saC s%u // fix stress and u sound: susan/-na/susara swag sv'ax2 swart (gal sw%art // move default stress: swartgallig swerk sv&rk @@ -2059,6 +2118,7 @@ stapel stA:p@l // fix e sound: (op)stapeling/stapelaar staties st'A:tis steding ste@d@N // besteding and compounds + C) steker ste@k@r // e sound: (aan/dop/kwaad/rugsteker/-s/-y, etc. wor) stel st@l //worstel e sound in compounds @) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds @) ste (llen st'& // belangstellendes/gerusstellend/regstellende/teleurstellend @@ -2137,7 +2197,7 @@ toneel t%une@l toege (wing t'ux2e@ // exception to _) toege (@P5 tux2@ _) toege (@P5 t'ux2@ - + toe (laatba t%u // move default stress: (on)toelaatbaar/-bare/-baarheid toer (@ t%ur // move default stress: toeris/-te/compounds of toernooi toere tu:r@ // restore default stress toe (vallig t%u // exception to default stress rule @@ -2160,6 +2220,7 @@ tuin (ier t%Yyn // move default stress: tuinier and compounds tussen tWs@n // tussenin/tussenbeide/tussenganger tuur t'yr + parti) tuur ty:r // compounds ending with partituur take default stress: musiekpartituur s) tuur ty:r // "uur" in stuur takes default stress: weggestuur @) ty (dig t'eI // gelyktydig/vroegtydig @@ -2192,7 +2253,7 @@ _) ter (l t@r // move default stress: terloops/-e @) term (_ t&r@ // correct pronunciation of e @) terme (_ t&rm@ // correct pronunciation of 1st e - sin) te (ti te@ //sintetiseer, compounds and derivitives + sin) te (ti te@ //sintetiseer, compounds and derivitives tern (K t'&:r@-n //lantern ekstern etc. tern (e_ t'&rn // interne/eksterne _) ter (nA t@r // terneergedruk/ternouernood @@ -2216,7 +2277,7 @@ tes (_ t@s - &) tel (_S3 t@l + &) tel (_ t@l teleur t@lY@r // teleur/teleurstelling/teleurgesteld &) tels (_S4 t@ls sleu) tel t@l //sleutel in compounds @@ -2271,7 +2332,8 @@ uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@ uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder uit (sorteer ''Yyt // remove stress from -eer and place on 1st slb - uitstaande %YytstA:nd@ // move default stress + uitspreekl %Yytspre@kl // fix stress and avoid -lik suffix: onuitspreeklik/-e + uitstaan (C %YytstA:n // move default stress: uitstaande/onuitstaanbaar/-bare uit (steken %Yyt // move default stress uit (spatt %Yyt // move default stress _) uitge (@P5 'Yytx2@ // words beginning with uitge have stress on 1st slb @@ -2314,6 +2376,7 @@ ven (yn f@n // venyn/venynig ver f@r virtu v@rtS%y //virtueel virtuose etc. fix v and t sounds and assure lack of stress + ver (kyker f'&:r //verkyker and compounds _) ver (@P3 f@r verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording verende f'e@r@nd@ @@ -2468,6 +2531,8 @@ @) ws (_N _^_EN @) w (_N _^_EN @) werste vIrst@ + k) w (oA v // fix w sound: dankwoord/werkwoord/skoonmaakwoede/spreekwoord + @C) w (oCC v // fix w sound: kubiekwortel/steekwond/onafhanklikwording/republiekwording/varkwors woe (styn v%u // move default stress: woestyn and compounds wolke vOlk@ // nimbuswolke/wolkekrabber woorde vo@rd@ @@ -2484,6 +2549,7 @@ .group z z z z (z + t) z s // fix s sound: britz/fritz/hertz and similar .group diff --git a/dictsource/cs_list b/dictsource/cs_list index a838baa3..99609fa1 100644 --- a/dictsource/cs_list +++ b/dictsource/cs_list @@ -48,23 +48,6 @@ y ipsilon _z zet ž Zet -: dv'ojtetSka -% pRotsento -+ plus -€ eURo -@ zavina:tS -& ampr-sent -# gR^i:Zek -/ lomeno -\\ beksleS -! vigR^itSn^i:k -° stupen^ -× kRa:t -÷ Jeleno -§ paRagRaf -~ tilda -^ zdR^i:Ska -© k'opiRajt _#9 t'ap _#32 m'ezeRa // space diff --git a/dictsource/cs_rules b/dictsource/cs_rules index 5073bcff..ca0286f1 100644 --- a/dictsource/cs_rules +++ b/dictsource/cs_rules @@ -632,7 +632,24 @@ _flegma) ti ti ŕ r- ü i - $ dola:R + $ dola:R + : dv'ojtetSka + % pRotsento + + plus + € eURo + @ zavina:tS + & ampr-sent + # gR^i:Zek + / lomeno + \\ beksleS + ! vigR^itSn^i:k + ° stupen^ + × kRa:t + ÷ Jeleno + § paRagRaf + ~ tilda + ^ zdR^i:Ska + © k'opiRajt . tetSka . (. _: diff --git a/dictsource/de_list b/dictsource/de_list index fce3d3ea..bb687550 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -17,16 +17,6 @@ _. pUnkt _, kOma -€ OY*o: -£ paUnd -% p@-*o:ts'Ent -& Unt -@ kl'ame:*,af@ -# nUm3 -+ plUs -= glaIC -~ tIld@ -\ bEkslES _| paIp _: d'Op@lp,UNkt diff --git a/dictsource/de_rules b/dictsource/de_rules index 1bdaa673..a2f2cff6 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -1131,8 +1131,19 @@ š S ž Z - , (D kOma - $ dOl'A: + , (D kOma + $ dOl'A: + € OY*o: + £ paUnd + % p@-*o:ts'Ent + & Unt + @ kl'ame:*,af@ + # nUm3 + + plUs + = glaIC + ~ tIld@ + \ bEkslES + . pUnkt . (. _: diff --git a/dictsource/en_list b/dictsource/en_list index 9fd92034..72bf012c 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -11,7 +11,7 @@ // Conditional rules // ?2 Use long 'a' in 'bath' // ?3 General American -// ?4 Not General American +// ?!3 Not General American // ?5 split [3:] er [3:], ir [IR], ur [VR] // ?6 'one' = [wVn], 'of' = [Vv] // ?7 Scottish @@ -134,8 +134,7 @@ _0C h'Vndr@d _0M1 T'aUz@nd _0M2 m'Ili@n _0M3 b'Ili@n -_0and @n -?3 _0and +?!3 _0and @n _dpt pOInt _roman roUm@n_ @@ -1462,7 +1461,7 @@ rapport rap'o@ rarest re@r@st rascal raask@L ratatouille rat@t'u:I2 -rather rA:D3 +?!3 rather rA:D3 ratio reISI2oU rationale raS@n'al ravine r@vi:n diff --git a/dictsource/en_rules b/dictsource/en_rules index fd5e0eb2..913f5d5b 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -23,7 +23,7 @@ // Conditional rules // ?2 Use long 'a' in 'bath' // ?3 General American -// ?4 Not General American +// ?!3 Not General American // ?5 split [3:] er [3:], ir [IR], ur [VR] // ?6 'one' = [wVn], 'of' = [Vv] // ?7 Scottish diff --git a/dictsource/fr_list b/dictsource/fr_list index abe9314c..5203e3b3 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -33,26 +33,6 @@ _y i:gR'Ek // character names -! Eksklamassj'O~ -$ dOlaR -@ aRobas -% puRsA~ -& _e -+ plys -~ tilde -€ @Ro -¢ sEnt -¥ i;En -£ livR -° d@gRe -± pl'yz_'u_mw'E~ -× myltip@-lj'e_p'aR -÷ diviz'e_p'aR -¼ W~_k'aR -½ W~_d@m'i -¾ tRw'a k'aR -© _^_EN -® R@ZistR'@d_m'aRk //_cap k,ap@-t@L diff --git a/dictsource/fr_rules b/dictsource/fr_rules index 1a177f2a..17b0c48e 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -502,7 +502,7 @@ alc) oo (l O // alcool z) oo o // zoo - oo u // pool + oo (X u // pool _gal) op (_ o // galop _sir) op (_ o // sirop @@ -772,3 +772,23 @@ // symbols that are normally spoken when reading text , (D pilk:u + ! Eksklamassj'O~ + $ dOlaR + @ aRobas + % puRsA~ + & _e + + plys + ~ tilde + € @Ro + ¢ sEnt + ¥ i;En + £ livR + ° d@gRe + ± pl'yz_'u_mw'E~ + × myltip@-lj'e_p'aR + ÷ diviz'e_p'aR + ¼ W~_k'aR + ½ W~_d@m'i + ¾ tRw'a k'aR + © _^_EN + ® R@ZistR'@d_m'aRk diff --git a/dictsource/hu_list b/dictsource/hu_list index 3a3368b0..df8b1dad 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -323,13 +323,7 @@ ly Ellipsilon ny En^ _. pont -% sa:zAle:k -@ kukAts -€ EuR2o -+ plus -§ pAR2AgR2AfuS Ft foR2int -$ dolla:R2 diff --git a/dictsource/hu_rules b/dictsource/hu_rules index fff4c463..48450745 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -143,7 +143,7 @@ _minde) gy (ik J: ly j lly jj - A) lj (A lj_| + A) lj (A ljj C) ly (_ li _kéth) ly li @@ -320,6 +320,12 @@ _szára) zs (ág zS ñ n^ ø Y + % sa:zAle:k + @ kukAts + € EuR2o + + plus + § pAR2AgR2AfuS + . pont . (. _: \.) . diff --git a/docs/dictionary.html b/docs/dictionary.html index f7182161..6b43ff14 100644 --- a/docs/dictionary.html +++ b/docs/dictionary.html @@ -529,11 +529,21 @@ The dictionary list is searched from bottom to top. The first match that satisf then if "to" is at the end of the clause, we get [tu:], if not then we get [t@].

 


-

4.5 Numbers and Character Names

-

4.5.1 Letter names

+

4.5 Conditional Rules

+Rules in a _rules file and entries in a _list file can be made conditional. They apply only to some voices. This can be useful to specify different pronunciations for different variants of a language (dialects or accents).

+Conditional rules have   ?   and a condition number at the start if the line in the _rules or _list file. This means that the rule only applies of that condition number is specified in a dictrules line in the voice file.

+If the rule starts with   ?!   then the rule only applies if the condition number is not specified in the voice file. eg.

+

+   ?3     can't     kant    // only use this if the voice has:  dictrules 3
+   ?!3    rather    rA:D3   // only use if the voice doesn't have:  dictrules 3
+
+ +

 


+

4.6 Numbers and Character Names

+

4.6.1 Letter names

The names of individual letters can be given either in the _rules or _list file. Sometimes an individual letter is also used as a word in the language and its pronunciation as a word differs from its letter name. If so, it should be listed in the _list file, preceded by an underscore, to give the letter name (as distinct from its pronunciation as a word). eg. in English:
   _a   eI
-

4.5.2 Numbers

+

4.6.2 Numbers

The operation the TranslateNumber() function is controlled by the language's langopts.numbers option. This constructs spoken numbers from fragments according to various options which can be set for each language. The number fragments are given in the _list file.

+ diff --git a/phsource/compile_report b/phsource/compile_report index c9f6dc74..e33396a0 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -306,7 +306,7 @@ 1 vdiph/ae fr_ca 1 vdiph/ae_2 en_n 8 vdiph/ai base2 eo sk hr mk it pt vi - 3 vdiph/ai_2 en_us cy + 2 vdiph/ai_2 cy 1 vdiph/ai_3 no 1 vdiph/ai_4 af 2 vdiph/ai_5 de la @@ -320,8 +320,8 @@ 6 vdiph/au_4 base2 cy eo sk it is 1 vdiph/ee-e hi 4 vdiph/eei en de pt vi - 2 vdiph/eei_2 eo fi - 3 vdiph/eei_3 en_us en_rp sk + 3 vdiph/eei_2 en_us eo fi + 2 vdiph/eei_3 en_rp sk 1 vdiph/eei_4 nl 3 vdiph/eeu pt vi zhy 2 vdiph/eeu_2 la pt_pt @@ -412,7 +412,7 @@ 4 vowel/& en_rp fi hi sv 4 vowel/0 base2 en hi pt 4 vowel/0_2 en_n en_wm pt_pt sw - 5 vowel/0_3 en_us en_sc en_rp hu + 4 vowel/0_3 en_us en_sc en_rp hu 2 vowel/@_2 fr 6 vowel/@_3 en_sc de hi 1 vowel/3_2 en_n @@ -429,7 +429,7 @@ 12 vowel/a#_3 en en_n en_us en_wm de hi ru pt_pt vi zhy 4 vowel/a_4 en_wm el vi 3 vowel/a_5 it sv sw - 7 vowel/aa en_us fi fr_ca no zhy + 5 vowel/aa fi fr_ca no zhy 1 vowel/aa# fi 3 vowel/aa_2 en cy 1 vowel/aa_3 af @@ -437,6 +437,7 @@ 2 vowel/aa_5 en_n 2 vowel/aa_6 de 1 vowel/aa_7 nl + 2 vowel/aa_8 en_us 3 vowel/a_en en fr 1 vowel/@_bck hi 15 vowel/e base2 en en_n af cy eo fr hr mk it la pt ++ @@ -501,9 +502,8 @@ 5 vowel/u# en en_sc 6 vowel/u_2 fi fr sk hr mk ro 1 vowel/u#_2 sv - 1 vowel/u_3 ro + 2 vowel/u_3 en_us ro 1 vowel/u#_3 en_n - 1 vowel/u_4 en_us 2 vowel/u#_4 en_sc 1 vowel/u_5 sw 3 vowel/u_6 en_rp pt_pt @@ -549,16 +549,18 @@ 1 vwl_en_rp/oo en_rp 1 vwl_en/u en 4 vwl_en/u_L en en_n en_us en_rp - 1 vwl_en_us/3_us en_us + 2 vwl_en_us/3_us en_us 2 vwl_en_us/a en_us - 2 vwl_en_us/ar2 en_us + 1 vwl_en_us/aai en_us + 2 vwl_en_us/ar en_us 1 vwl_en_us/ee en_us 1 vwl_en_us/er en_us 1 vwl_en_us/i_final3 en_us 2 vwl_en_us/ii en_us 2 vwl_en_us/ir en_us en_sc - 4 vwl_en_us/or en_us en_sc - 1 vwl_en_us/@r_us en_us + 1 vwl_en_us/oo en_us + 1 vwl_en_us/oor en_us + 3 vwl_en_us/or en_us en_sc 1 vwl_en_us/ur en_us 1 vwl_en_us/V en_us 2 vwl_en_wm/aa en_wm diff --git a/phsource/j/jo b/phsource/j/jo index 29fda4ce..e4730ab6 100644 Binary files a/phsource/j/jo and b/phsource/j/jo differ diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 531e08fd..e38fab4f 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -10,17 +10,18 @@ phoneme @ // Schwa formants vowel/@ unstressed linkout r- - length 140 + length 130 endphoneme phoneme 3 // Schwa, used for rhotic schwa in American vowel starttype (@) endtype (@) - formants vwl_en_us/@r_us + formants vwl_en_us/3_us +// formants vowel/3_2 unstressed linkout r- beforevowel @ - length 175 + length 180 endphoneme @@ -37,7 +38,7 @@ phoneme @5 // Schwa, changes to U before a vowel formants vowel/@ unstressed beforevowelpause U - length 140 + length 130 endphoneme @@ -52,35 +53,33 @@ endphoneme phoneme a vowel starttype (a) endtype (@) - length 200 + length 190 formants vwl_en_us/a reduceto a2 0 endphoneme +phoneme aa // 'bath' etc. + vowel starttype (a) endtype (@) + length 190 + formants vwl_en_us/a + linkout r- +endphoneme + + phoneme a2 vowel starttype (@) endtype (@) unstressed - length 150 + length 140 formants vowel/a#_3 linkout r- endphoneme -phoneme aa // 'bath' etc. - vowel starttype (a) endtype (@) - length 200 - formants vwl_en_us/a -// formants vowel/a_2 - linkout r- -endphoneme - - phoneme E vowel starttype (e) endtype (e) length 160 formants vwl_en_us/ee -// formants vowel/ee_2 reduceto I 0 endphoneme @@ -92,6 +91,7 @@ phoneme I linkout ; endphoneme + phoneme I2 vowel starttype (i) endtype (i) unstressed @@ -111,15 +111,15 @@ endphoneme phoneme 0 vowel starttype (o) endtype (o) - length 190 - formants vowel/aa + length 180 + formants vowel/aa_8 reduceto @ 0 endphoneme phoneme V vowel starttype (a) endtype (@) - length 150 + length 170 formants vwl_en_us/V // formants vowel/V_2 reduceto @ 0 @@ -128,31 +128,32 @@ endphoneme phoneme U vowel starttype (o) endtype (o) - length 150 + length 140 formants vowel/8_2 endphoneme phoneme A: vowel starttype (a) endtype (a) - length 210 - formants vowel/aa - before r vwl_en_us/ar2 + length 200 + formants vowel/aa_8 + before r vwl_en_us/ar linkout r- endphoneme phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American vowel starttype (a) endtype (@) - length 250 - formants vwl_en_us/ar2 + length 240 + formants vwl_en_us/ar appendph r endphoneme phoneme 3: vowel starttype (@) endtype (@) - length 230 + length 220 +// formants vwl_en_us/@r_us2 formants vwl_en_us/3_us // reduceto @ 0 linkout r- @@ -161,7 +162,7 @@ endphoneme phoneme i: vowel starttype (i) endtype (i) - length 165 + length 160 formants vowel/i_en after w w/wi2 linkout ; @@ -170,7 +171,7 @@ endphoneme phoneme O: vowel starttype (o) endtype (o) - length 210 + length 200 formants vowel/0_3 before r vwl_en_us/or reduceto @ 0 @@ -180,7 +181,7 @@ endphoneme phoneme O@ vowel starttype (o) endtype (@) length 240 - formants vwl_en_us/or + formants vwl_en_us/oor appendph r endphoneme @@ -196,57 +197,57 @@ endphoneme phoneme O vowel starttype (o) endtype (o) length 150 - formants vowel/0_3 + formants vwl_en_us/oo reduceto @ 0 endphoneme phoneme u: vowel starttype (u) endtype (u) - length 190 - formants vowel/u_4 + length 170 + formants vowel/u_3 before l/2 vwl_en/u_L-40+l/L2_uL endphoneme phoneme aU vowel starttype (a) endtype (u) - length 210 + length 200 formants vdiph/au_2 endphoneme phoneme oU vowel starttype (@) endtype (u) - length 230 + length 210 formants vdiph/8u endphoneme phoneme aI vowel starttype (a) endtype (i) - length 220 - formants vdiph/ai_2 + length 210 + formants vwl_en_us/aai endphoneme phoneme eI vowel starttype (e) endtype (i) - length 220 - formants vdiph/eei_3 + length 210 + formants vdiph/eei_2 endphoneme phoneme OI vowel starttype (o) endtype (i) - length 230 + length 220 formants vdiph/ooi endphoneme phoneme e@ vowel starttype (e) endtype (@) - length 260 + length 250 formants vwl_en_us/er appendph r endphoneme @@ -254,7 +255,7 @@ endphoneme phoneme i@ vowel starttype (i) endtype (@) - length 240 + length 220 formants vwl_en_us/ir appendph r endphoneme @@ -262,7 +263,7 @@ endphoneme phoneme U@ vowel starttype (@) endtype (@) - length 240 + length 220 formants vwl_en_us/ur linkout r- endphoneme @@ -301,7 +302,7 @@ phoneme t# // reduced [t] as in "city" vowelin f1=0 f2=1700 -300 300 f3=-100 80 vowelout f1=0 f2=1700 -300 300 f3=-100 80 lengthmod 5 - wave x/d%80 + wave x/d%90 endphoneme diff --git a/phsource/ph_hungarian b/phsource/ph_hungarian index 5f2f4f42..490ec955 100644 --- a/phsource/ph_hungarian +++ b/phsource/ph_hungarian @@ -62,7 +62,7 @@ endphoneme phoneme a: vowel starttype (a) endtype (a) - length 260 + length 270 formants vowel/a endphoneme diff --git a/phsource/vdiph/8u b/phsource/vdiph/8u index 2e922607..e4c40496 100644 Binary files a/phsource/vdiph/8u and b/phsource/vdiph/8u differ diff --git a/phsource/vdiph/ai_3 b/phsource/vdiph/ai_3 index 0b257004..80c6f2bf 100644 Binary files a/phsource/vdiph/ai_3 and b/phsource/vdiph/ai_3 differ diff --git a/phsource/vdiph/au_2 b/phsource/vdiph/au_2 index 20d82fd8..68c2553c 100644 Binary files a/phsource/vdiph/au_2 and b/phsource/vdiph/au_2 differ diff --git a/phsource/vwl_en_us/3_us b/phsource/vwl_en_us/3_us index 00397062..bccb47d3 100644 Binary files a/phsource/vwl_en_us/3_us and b/phsource/vwl_en_us/3_us differ diff --git a/phsource/vwl_en_us/@r_us b/phsource/vwl_en_us/@r_us index bac4c0b4..2476b91d 100644 Binary files a/phsource/vwl_en_us/@r_us and b/phsource/vwl_en_us/@r_us differ diff --git a/phsource/vwl_en_us/V b/phsource/vwl_en_us/V index 5f52e505..74c045ca 100644 Binary files a/phsource/vwl_en_us/V and b/phsource/vwl_en_us/V differ diff --git a/phsource/vwl_en_us/a b/phsource/vwl_en_us/a index a86427a5..951ece23 100644 Binary files a/phsource/vwl_en_us/a and b/phsource/vwl_en_us/a differ diff --git a/phsource/vwl_en_us/aai b/phsource/vwl_en_us/aai new file mode 100644 index 00000000..18ccd2b3 Binary files /dev/null and b/phsource/vwl_en_us/aai differ diff --git a/phsource/vwl_en_us/ar b/phsource/vwl_en_us/ar new file mode 100644 index 00000000..22a1427f Binary files /dev/null and b/phsource/vwl_en_us/ar differ diff --git a/phsource/vwl_en_us/ee b/phsource/vwl_en_us/ee index d4624bc2..e5a5f82e 100644 Binary files a/phsource/vwl_en_us/ee and b/phsource/vwl_en_us/ee differ diff --git a/phsource/vwl_en_us/er2 b/phsource/vwl_en_us/ei similarity index 55% rename from phsource/vwl_en_us/er2 rename to phsource/vwl_en_us/ei index 96a51339..5292771b 100644 Binary files a/phsource/vwl_en_us/er2 and b/phsource/vwl_en_us/ei differ diff --git a/phsource/vwl_en_us/er b/phsource/vwl_en_us/er index 1a494f8f..344d6d07 100644 Binary files a/phsource/vwl_en_us/er and b/phsource/vwl_en_us/er differ diff --git a/phsource/vwl_en_us/ii b/phsource/vwl_en_us/ii index 2f84047e..1af77b1c 100644 Binary files a/phsource/vwl_en_us/ii and b/phsource/vwl_en_us/ii differ diff --git a/phsource/vwl_en_us/ir b/phsource/vwl_en_us/ir index edd9963a..00397e58 100644 Binary files a/phsource/vwl_en_us/ir and b/phsource/vwl_en_us/ir differ diff --git a/phsource/vwl_en_us/oo b/phsource/vwl_en_us/oo new file mode 100644 index 00000000..e0496fa1 Binary files /dev/null and b/phsource/vwl_en_us/oo differ diff --git a/phsource/vwl_en_us/oor b/phsource/vwl_en_us/oor new file mode 100644 index 00000000..7a37a0ad Binary files /dev/null and b/phsource/vwl_en_us/oor differ diff --git a/phsource/vwl_en_us/or b/phsource/vwl_en_us/or index ad9d4617..b44141ea 100644 Binary files a/phsource/vwl_en_us/or and b/phsource/vwl_en_us/or differ diff --git a/src/compiledict.cpp b/src/compiledict.cpp index 1280ad5e..04b10786 100755 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -161,6 +161,7 @@ int compile_line(char *linebuf, char *dict_line, int *hash) int ix; int step; int n_flag_codes = 0; + int flag_offset; int length; int multiple_words = 0; char *multiple_string = NULL; @@ -189,7 +190,17 @@ int compile_line(char *linebuf, char *dict_line, int *hash) if((c == '?') && (step==0)) { + // conditional rule, allow only if the numbered condition is set for the voice + flag_offset = 100; + p++; + if(*p == '!') + { + // allow only if the numbered condition is NOT set + flag_offset = 132; + p++; + } + ix = 0; if(isdigit(*p)) { @@ -201,7 +212,7 @@ int compile_line(char *linebuf, char *dict_line, int *hash) ix = ix*10 + (*p-'0'); p++; } - flag_codes[n_flag_codes++] = ix+100; + flag_codes[n_flag_codes++] = ix + flag_offset; c = *p; } @@ -859,7 +870,17 @@ char *compile_rule(char *input) if(rule_cond[0] != 0) { ix = -1; - ix = atoi(rule_cond); + if(rule_cond[0] == '!') + { + // allow the rule only if the condition number is NOT set for the voice + ix = atoi(&rule_cond[1]) + 32; + } + else + { + // allow the rule only if the condition number is set for the voice + ix = atoi(rule_cond); + } + if((ix > 0) && (ix < 255)) { output[len++] = RULE_CONDITION; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 9df5a20b..d6ede2a2 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -666,7 +666,7 @@ int Translator::IsVowel(int letter) void SetLetterVowel(Translator *tr, int c) {//======================================= - tr->letter_bits[c] = 0x81; // group 0 only + tr->letter_bits[c] = (tr->letter_bits[c] & 0x40) | 0x81; // keep value for group 6 (front vowels e,i,y) } void ResetLetterBits(Translator *tr, int groups) @@ -1773,9 +1773,21 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec case RULE_CONDITION: /* conditional rule, next byte gives condition number */ condition_num = *rule++; - if((dict_condition & (1L << condition_num))==0) - failed = 1; + + if(condition_num >= 32) + { + // allow the rule only if the condition number is NOT set + if((dict_condition & (1L << (condition_num-32))) != 0) + failed = 1; + } else + { + // allow the rule only if the condition number is set + if((dict_condition & (1L << condition_num)) == 0) + failed = 1; + } + + if(!failed) match.points++; // add one point for a matched conditional rule break; } @@ -2677,8 +2689,18 @@ int Translator::LookupDict2(char *word, char *word2, char *phonetic, unsigned in if(flag >= 100) { // conditional rule - if((dict_condition & (1 << (flag-100))) == 0) - condition_failed = 1; + if(flag >= 132) + { + // fail if this condition is set + if((dict_condition & (1 << (flag-132))) != 0) + condition_failed = 1; + } + else + { + // allow only if this condition is set + if((dict_condition & (1 << (flag-100))) == 0) + condition_failed = 1; + } } else if(flag > 64) diff --git a/src/setlengths.cpp b/src/setlengths.cpp index 110d662f..11520fb8 100755 --- a/src/setlengths.cpp +++ b/src/setlengths.cpp @@ -389,7 +389,7 @@ void Translator::CalcLengths() if(p->type == phLIQUID) { p->length = speed1; -p->pitch1 = p->pitch2 - 20; // post vocalic [r/] +//p->pitch1 = p->pitch2 - 20; // post vocalic [r/] } if(next->type == phVSTOP) diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 57015613..0aa7e0d4 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.27.09 12.Jul.07"; +const char *version_string = "1.27.10 15.Jul.07"; const int version_phdata = 0x012701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 889853dc..7ffbf8e7 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -317,8 +317,7 @@ Translator *SelectTranslator(const char *name) case L('h','u'): // Hungarian { static int stress_amps_hu[8] = {17,17, 19,19, 20,24, 24,22 }; - static int stress_lengths_hu[8] = {185,190, 190,190, 0,0, 210,220}; -// static int stress_lengths_hu[8] = {180,180, 200,190, 0,0, 210,225}; + static int stress_lengths_hu[8] = {185,195, 195,190, 0,0, 210,220}; static const unsigned int replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0}; static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute diff --git a/src/translate.cpp b/src/translate.cpp index 728a5f1e..35313ebc 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -713,6 +713,7 @@ if((wmark > 0) && (wmark < 8)) length = 999; while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(word))) { + char *p; // This word looks "unpronouncable", so speak letters individually until we // find a remainder that we can pronounce. word += TranslateLetter(word,phonemes,0); @@ -722,13 +723,15 @@ if((wmark > 0) && (wmark < 8)) strcpy(word_phonemes,phonemes); return(0); } - if(memcmp(word,"'s ",3) == 0) + + p = &word[word_length-3]; + if(memcmp(p,"'s ",3) == 0) { // remove a 's suffix and pronounce this separately (not as an individual letter) add_plural_suffix = 1; - word[0] = ' '; - word[1] = ' '; - break; + p[0] = ' '; + p[1] = ' '; + last_char = p[-1]; } length=0; @@ -1903,7 +1906,8 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out) { if(!IsAlpha(prev_out) || (langopts.ideographs && (c >= 0x3000))) { - letter_count = 0; + if(prev_out != '\'') + letter_count = 0; // don't reset count for an apostrophy within a word if((prev_out != ' ') && (prev_out != '\'')) {