diff --git a/dictsource/af_list b/dictsource/af_list index 868d5ce9..f1f65c31 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -84,6 +84,7 @@ z zEd ú $accent û $accent ü $accent +ý $accent _cap h'o@flEt@r _?? s@mb'o@l @@ -198,8 +199,8 @@ _dpt 'pWnt _roman rum'eIns@ // ordinal numbers -_0de d@ -_0ste st@ +_#de d@ +_#ste st@ _1o _'e@r _2o tw'e@ _3o d'&:r @@ -218,6 +219,7 @@ albanië alb'A:ne@:@- algerië alx2'e@re@:@- amanzimtoti $4 antwerpen antv&rp@n +avignon _^_FR babilon babilOn bangladesj baNglad'ES barcelona bars@l'o@na @@ -256,8 +258,10 @@ doebaai $2 duitswes dYytsv'Es ermelo &rm@lo@ franschhoek frA~nsh'uk +fraserburg freIz@rbWrx2 gadara x2@dA:ra galilea x2al@l'i:a +gdansk g@-dansk genève Z@nE:v germiston _^_EN getsémané x2Ets'e@mani @@ -271,6 +275,7 @@ groblersdal x2rObl@rsd'al havana hav'ana hermon $1 hirosjima hiruS'ima +ingwavuma iNgwav'u:ma israel IsraI:l italië it'A:li;@ jeffreysbaai dZEfrisb'AI @@ -287,11 +292,13 @@ kongo kONgu knysna neIsna kuruman kuruman kwa kwa $u $only // KwaZulu, etc. +kwazulu kwaz'ulu // Kwazulu (lowercase z) lady _^_EN // Lady Grey/Lady Smith ladybrand leIdibr'ant laingsburg leInsbWrx2 lesotho l@sutu limpopo l@mpo@po@ +lockerbie _^_EN (los angeles) lOs_'andZ@li:z macedonië mas@d'o@ni@ madagaskar madax2'askar @@ -309,6 +316,7 @@ moorreesburg mur'e@sbWrx2 europa Y@r'o@pa nigel _^_EN nineve nIn@fi +oberammergau o@b@r'am@rgaU oklahoma @Ukl@h'@Uma outeniekwa @Ut@n'ikwa oxford _^_EN @@ -321,7 +329,6 @@ potchefstroom pOtSIfstr'o@m rhône _^_FR richardsbaai ritS@dsb'AI robertson _^_EN -sahara sah'A:ra salvador salvadO:r santiago santi;'A:gu secunda s@kunda @@ -335,7 +342,9 @@ springs _^_EN $capital sunnyside _^_EN suriname syrin'A:m@ swellendam $3 +tankwa taNkwa tokio to@kiu +trafalgar traf'algar tunisië $2 turkye $2 ulundi ul'undi @@ -346,6 +355,7 @@ viëtnam vj'Etnam wallonië val'o@ni@ washington _^_EN wellington wEliNt@n +wimbledon _^_EN wolseley wulsli uganda ug'anda uruguay urugwaI @@ -360,6 +370,7 @@ ackerman ak@rman adam adam adriaan A:drijan adrie A:dri +agnes _^_EN albertus alb'&rtWs alfred _^_EN allah %alA: @@ -367,6 +378,7 @@ amelia am'i:lija annalet anal'Et André 'andreI annette an'Et +anthonie ant'o@ni antoinette antun'Et archimedes arx2im'e@dEs aristoteles arist'o@t@lEs @@ -381,6 +393,7 @@ benjamin bEndZ@m@n bennett bEn@t bertha b&rta bester b'Est@r +betjie bEici betsie bEtsi beyers beI@rs blignault blIx2n@Ut @@ -388,10 +401,12 @@ blomerus blum'e@rWs blum blum botha bo@ta bouwer b@U@r +braham brA:m brian _^_EN bredenkamp bre@d@nkamp bruwer bruw'&:r caesar siz@r + cameron _^_EN carl kA:r@L carlyle _^_EN carol _^_EN @@ -404,10 +419,12 @@ charles _^_EN charlie tSA:li charmaine SA:m'eI:n chopin S%OpA~ +claire _^_EN clark _^_EN conradie $2 chris krIs christo krIstu +christof krIstOf christoffel kr@stOf@l christiaan krIstiA:n christian krIstian @@ -420,6 +437,7 @@ cronjé krOnj'e@ cussons kas@ns cynthia _^_EN dalene dal'e@n +danielle dani;'&l darwin _^_EN daniël d'A:ni:@l david _^_EN @@ -466,7 +484,6 @@ flaubert _^_FR floris $1 fouché fuS'e@ fourie fur'i -francina $2 francois franSwa françois frA~nsw'A: gabriël x2A:bri@l @@ -475,11 +492,13 @@ george _^_EN georgina dZO:dZ'ina gerhard x2&rart gerhardus $2 +gertie gI:ti gertruida $2 gilbert _^_EN gloria glO:ria gordon _^_EN grange x2rA:nsi +greta gre@ta grové x2ruv'e@ gulliver _^_EN gustav gustaf @@ -501,6 +520,7 @@ ingrid iNgr@d isabel is@b&l iskariot isk'ariOt jaco jaku + jakomina jakum'ina james _^_EN jane _^_EN Jean ZA~n $capital @@ -528,15 +548,22 @@ langenhoven laN@nho@f@n lasarus lA:s@r%Ws lategan lA:t@x2an le l@ $only +leana li'A:na leandra li'andra leipoldt lAIpOlt leonardo liu:n'ardu leonie li'o@ni levi le@fi +lewies l@vis liesbet lisbEt +loubser l@UpS@r louis luI louise luw'i:z +lucretia lukr'i:Sja lukas lukas +lulu lulu +mabalêl mabal'&l +mabel _^_EN mackintosh _^_EN madelene mad@l'e@n mbeki mbE:ki @@ -555,6 +582,8 @@ marius mA:riWs marlene marl'e@:n marlise marl'i:s martha marta +marthinus mart'inWs +martiens $2 martin m'A:rt@n mary _^_EN mathilda mat'Ilda @@ -579,6 +608,7 @@ morné mOrn'eI mostert m'Ost@rt mouton mut'On mozart mo@tsart +myburgh meIbWrx2 naomi na_'o@mi napoleon nap'o@liOn natasha n%at'aSa @@ -588,6 +618,8 @@ nelson _^_EN niklaas niklA:s olga Olga ontong OntON +patrick _^_EN +petoors p@to@rs phillips fIl@ps pierre p'e@r petronella pe@trun'&la @@ -602,6 +634,7 @@ quixote kix2'OtE rachmaninoff rax2m'aninOf rademeyer rA:d@meI@r rall rA:l +raymond _^_EN rebekka r@bEka reinette r@nEt renette r@nEt @@ -611,6 +644,7 @@ retief r@tif rhodes _^_EN riekert rik@rt robert _^_EN +robin _^_EN ronel run'&l rossouw r@s@U rousseau r@s@U @@ -639,6 +673,7 @@ stephanus st@fA:nWs stevenson _^_EN strauss straUs stockenström stOk@nstro@m +stuart _^_EN suzanne suz'A:n suzette suz'Et tania tanja @@ -678,9 +713,11 @@ tony t@Uni trichardt trix2A:rt vera ve@ra verwey f@rveI +virginia _^_EN vivaldi viv'aldi viviers v@v@je@ wilhelm v@lh&l@-m +williston _^_EN khumalo kum'A:lu zuma zu:ma @@ -692,17 +729,21 @@ checkers tSEk@rs chrysler kraIsl@r citroên s@trun ferrari f@rA:ri +isuzu is'u:zu martini mart'i:ni naspers nasp&rs peugeot pW:Z@U (pick n pay) p,ik||@n||p'eI porsche pOrS@ port pOrt $1 +prestik prEstik rover _^_EN +sesotho s@s'u:tu sorbonne _^_FR sotho su:tu toyota $2 venda vEnda +vicks viks volvo vOlvu wimpy wImpi @@ -868,6 +909,7 @@ algaande $2 alge alx2@ algehele alx2@h,e@l@ allegro al'Egru +allergene $3 almiskie $3 alom al_'Om alreeds $2 @@ -882,6 +924,7 @@ aspris $2 asseblief as@bl'if assessore $3 attraksie $2 +aversie av'&rsi babelaas bab@lA:s barrikade $3 @@ -898,11 +941,13 @@ bewe be@v@ bewend be@v@nt bewering b@ve@rIN bomaat bo@mA:t +bordegoed bO:rd@x2ut boskaas $2 bostaande b'o@stA:nd@ bourgeois _^_FR bourgeoisie _^_FR briewemes briv@mEs + bêretyd b&:r@teIt cabernet kab@rn'eI camembert kam@mb'&:r @@ -912,27 +957,36 @@ casino kas'i:n@U cedille s@dIl@ charisma kar'Isma cliché kliS'eI: +clivia klIvija +cognac kOn^ak +confetti $2 crescendo kr@SEndu +crimpelene kr@mp@li:n dadelik dA:d@lIk dagorde dax2_Ord@ +daisy deIzi darem dar@m dekade dEk'A:d@ dekreling dEkre@l@N deurentyd dy@r@nteIt deurgaans $1 deurkruis $2 +deurry dY@rreI deurstaan $2 deurstraalde $2 dikwels dIkv@ls diplomasie d@plo@mas'i +disleksie $2 doktore $2 doyen dO:j'En dubbelken dWb@lkEn dusver dWsf&r +edelagbare $3 eenkeer $1 efesiër if'e@si@r +effata Ef'A:ta effense Ef@ns@ eks Eks ekself %&ks'&lf @@ -948,9 +1002,11 @@ ergering &rg@r@N espeak i:;spi:k (et cetera) Ets'Et@ra euro Y@ru +ewentwil e@v@ntv@l exodus Eks'o@dWs fakture $2 +fetakaas fEtakA:s figuur f@x2yr filippense f@l@pEns@ finalis $3 @@ -965,10 +1021,12 @@ gebrokener x2@bro@k@n@r gee x2e@ geen x2e@n geldelike x2&ld@l@k@ +gelerendheid x2@le@r@ntheIt genade $2 genesis x2e@n@s@s //gesamentlik x2@sA:m@ntl@k gentleman _^_EN +germolene dZI:m@l'i:n gewellys x2e@v@lleIs gladiator x2ladi'A:tOr globale x2lo@b'A:l@ @@ -1017,6 +1075,7 @@ intens @nt'Ens intensiteit $4 ironieë irun'i:@ +jantwak jantw'ak jawoord jA:vo@rt jupiter jupit@r @@ -1024,12 +1083,16 @@ kafee kaf'e@ kameraderie kam@rA:d@r'i katswink katsv@nk kaviaar kavi'A:r +kennisvaardig $1 klaasvakie $2 +klimeid klImeIt knapsekêrel knaps@k&:r@l kolossense kOl@s'e~ns@ komaan kOmA:n +konfyttertjie kOnf'eIt&:rci konkawe kOnk'A:v@ konte $1 +kopaar kOp_A:r kopiereg kup'ir&x2 korswel kOrsv@l kotiljons kOt@lj'o~ns @@ -1047,6 +1110,7 @@ luidop lYyt_Op lykwaak leIkvA:k macaroni makar'o@ni +macho matS@U madame mad'A:m madamoiselle _^_FR maskering mask'e@r@N $only @@ -1054,7 +1118,6 @@ massaal $2 massale $2 meegee me@x2e@ memorabilia mEmOrab'ilija -memoriam mEm'o@riam mercedes $2 meregebied me@r@x2@bit merlot m&rl'o@ @@ -1093,6 +1156,7 @@ nimmermeer $1 nirvana n@rvA:na nogeens nOx2_e@ns normale nOrm'A:l@ +nousedae n@Us@dA: numeri nWm@ri oeuvre W:vr@ @@ -1142,6 +1206,7 @@ oorleef $2 oorsee $2 oorsese $2 oorval $2 $verb +oranjepers o@r'anj@p&:rs oudsher @Utsh&r pandemonium pand@m'o@niWm @@ -1157,17 +1222,21 @@ penorent pEno@rEnt per p@r $only persent p@rsEnt petite p@tit +pikanienie pikan'ini pinotage pinut'A:Z pirouette p@ru:'Et plaasjaap plA:sjA:p plasenta plas'Enta poinsettia pOIns'Etia +potpourri pOtpur'i primate $2 +profetes prOf@t'Es (pro forma) pro@||f'Orma rebelleer r@b@le@r rededele re@d@de@l@ regie r@Zi: +rekent re@k@nt renaissance rEn@s'A~ns retoriek r@tur'ik rimpeling rImp@l@N @@ -1180,6 +1249,7 @@ rukkerig rWk@r@x2 ruspes rWsp@s rymelary reIm@lar'eI +saint sInt $u salami sal'A:mi salute sal'yt@ samelewing sA:m@l,e@v@N @@ -1210,9 +1280,11 @@ sover so@f&r staccato $2 sterwens st&rv@ns stilswye $1 +strydros streIt_rOs subiet sWb'it suburbia sWb'Wrbija swangerswaar swaN@rswA:r +swetterjoel $3 tanga taNga tango taNx2u @@ -1221,12 +1293,16 @@ tequila t@ki:la terdeë $2 terug t@-rWx2 tesaam t@sA:m +tesourus t@s@UrWs tevrede t@fre@d@ +thula tu:la toegee tux2e@ toereken ture@k@n +tornado $2 totale tut'A:l@ totsiens $2 tragiek trax2'ik +tsoenami tsun'A:mi uitdaging YydA:x2@N uiteraard Yyt@r_'A:rt @@ -1245,10 +1321,13 @@ verafgeleë f&rafx2@le@@ verby f@rbeI verdere f&rd@r@ ver f'&:r +verderaan f&:rd@r_A:n vereduifie fe@r@dYyfi verg f&rx2 vergeleë f&:rx2@l,e@@ vergete f@rx2e@t@ +verkeerdom f@rke@rt_Om +verlangste f@rlaNst@ vermy $2 verre f&:r@ verregaande f&r@x2'A:nd@ @@ -1259,7 +1338,10 @@ verste f&rst@ verte f&rt@ verweg f&:rv&x2 via via +voelentheid ful@ntheIt volheid $1 +volpunte $1 +volspoed $1 volswanger $1 volte $1 voluit fOl_Yyt @@ -1284,5 +1366,6 @@ weerklink $2 weggewens v&x2@v'E:ns welaf v&l_af weleer v&l_'e@r +wentaktiek $1 wysgere veIsx2e@r@ diff --git a/dictsource/af_rules b/dictsource/af_rules index d2b23ed1..ced95c0b 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -1,5 +1,5 @@ //maintainer: Willem van der Walt -// email: wvdwalt@csir.co.za + // email: wvdwalt@csir.co.za // tel: +27 12 8413996 // Meraka Institute, CSIR //With contributions by Christo de Klerk @@ -53,11 +53,13 @@ ad (vies %at // move default stress: advies/-brief/-komitee and many similar af (gunstig %af // move default stress: afgunstig/-e + aga (pant %ag%a // fix g sound and stress: agapant/-e and compounds C) agie A:x2i a (gitA %a // fix a sound: agitasie/(ge)agiteer agte (losig %ax2t@ // move default stress: agtelosig/-e/-heid agter (dogt %ax2t@r // move default stress: agterdogtig and derivatives agtereen (volg %ax2t@r_%e@n // move default stress: agtereenvolgend/-e/-ens + agter (losig %ax2t@r // move default stress: agterlosig/-e/-heid agter (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc. &) agtig 'ax2t@x2 // this string almost always carries stress on a a (gurkie %a // fix stress and a sound: agurkie/-s and compounds @@ -82,7 +84,7 @@ @form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc. gl) asie A:si // restore default stress: wyn-/sjampanjeglasie, etc. pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar - Csp) asie A:s%i // restore default stress: vloer/kantoorspasie, etc. + @sp) asie A:s%i // restore default stress: vloer/kantoorspasie/weggooispasie, etc. Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar AAst) asie A:si // default stress: polisie/radio/televisie/uitsaaistasie, etc. aspek %aspEk // fix stress and e sound: aspek/-te/-tief and compounds @@ -133,9 +135,11 @@ alge (ryn %alx2@ // move default stress: Algeryn/-e/-s alia A:l%i%a // fix stress and a sound: alias/-se/(inter )alia _) ali (krA al%i // fix vowel sounds: alikreukel/alikruik/alikruk + al (jander %al // move default stress: aljander and compounds alkohol alk%u%Ol // fix o sounds and drop h: alkohol/-is/-iste/-isme alkohol (ieK %alk%uho@l // fix stress and 2nd o sound: alkoholies/-e _) alle (C al@ // alledaags/e/allerhande + alle (mint %al@ // move default stress: allemintig/-e _) a (llooi %a // move default stress: allooi(metaal/-silwer, etc.) alma (nak %alm%a // move default stress: almanak/-ke and compounds alogie alux2'i // genealogie/mineralogie and similar @@ -197,6 +201,7 @@ C) afel (@ A:f@l // compounds starting with tafel/ontrafeling/uitrafeling _) a (ffA %a // move default stress: affêre and compounds/affekteer a (fflik %a // move default stress: affliksie/-s + affo (dil %af%u // fix stress and o sound: affodil/-le affro (nt %afr%O // fix stress: affronteer/-tasie afgee (+ 'afx2e@ // see rule: _) afge (@P4 afx2@ _) afge (@P4 'afx2@ // stress on 1st slb @@ -272,6 +277,7 @@ arre (stA %ar@ // arrestasie/arresteer arro (g %ar%u // arrogant/-e/arrogansie ar (seen %ar + arse (na %ars@ // move default stress: arsenaal/arsenale and compounds arte (fak %art@ // move default stress: artefak/-te ar (tikel %ar // stress: artikel and compounds artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer @@ -344,6 +350,7 @@ aan (stAAC %A:n // stress on 2nd slb.: aanstootlik/aansteeklik aan (stAAC_N A:n // stress on 1st slb.: aanstoot/aansteek aan (tasb %A:n // stress: (on)aantasbaar/-bare + _) aantel A:nt&l // fix e sound: aantel/-lery aantreklik %A:ntr&kl@k // move default stress: aantreklik/-heid aan (trek_N A:n // restore default stress: aantrek aan (vaar %A:n // aanvaar/de/baar @@ -452,6 +459,7 @@ bla (tant bl%a // shorten 1st a and move default stress: blatant/-e/-heid _) blik (A blIk_ // fix i sound: blikaspaai/blikemmer/-s/blikoopmaker/-s/blikoor/blikore bloe (ddors@ bl%u // bloeddorstig and derivatives, but bloeddors + bloed (skendig bl%ut // move default stress: bloedskendig/-e bloed (stol bl%ut // move default stress: bloedstollend/-e _) blo (kka bl%O // move default stress: blokkade/-s and compounds _) blo (kkeer bl%O // move default stress: (ge)blokkeer/-der, etc. @@ -468,9 +476,11 @@ bo (he b%u // fix stress: boheems/boheme bok (ooi bOk_ // bokooi/e/ribbokooi/boerbokooi _) bongo bONgu // fix g and o sounds: bongo and compounds: bongotromme + bonsmara b%OnsmA:r%a // move default stress: bonsmarabees/-bul/-koei bosch (_ bOs // Rondebosch/Stellenbosch bo (tanie b%o@ // stress on 2nd slb.: botanies/-e bota (nie_N b%o@t%a // stress on 3rd slb.: botanie + _) bota (niCA bo@t''A: // fix stress: botanikus/botanici boulevard bul@vard // boulevard/-s _) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon _) breda br@dA: // move default stress: (van )Breda/Bredasdorp @@ -533,7 +543,9 @@ baba bA:ba baba (tjie bA:baI // fix 2nd a sound: babatjie/-s _) bad (A bat_ // shorten a sound, pause: bad-/afloop/artikel/olie/oord/uitloop - baklei b@kl'eI // baklei/er + bad (r bat // fix d sound: (swem)badrand/badroom + bahama b%ahA:m%a // fix 1st a sound and stress: Bahama/-s and compounds + baklei b@kleI // baklei/er _) bak (o bak_ // fix a sound and stress: bakoor/bakore balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds balaklawa b%al%aklA:v%a // fix stress and a sounds: balaklawa and compounds @@ -627,6 +639,7 @@ @) bewys b@veIs // "be" in rybewys/lisensiebewys/geboortebewys bee (+ be@ @) beer (_ b'e@r // absorbeer/inhibeer, etc. + %Ca) beer be@r // restore default stress: pappa-/mammabeer teddie) beer be@r // restore default stress ys) beer be@r // restore default stress bede (Cf b@d& // bederf/bedelf @@ -655,6 +668,8 @@ beter b'e@t@r beties be@tis // fix e sounds: diabeties/-e betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer + bewe (knie be@v@ // fix 1st e sound and stress: beweknie/-ë + bewe (lip be@v@ // fix 1st e sound and stress: bewelip/-pe bewe (rasie be@v@ // fix e sounds: bewerasie/-siekte @@ -676,6 +691,7 @@ chemika (li x2%e@m%ikA: // for compounds of chemikalieë cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds cholesterol k%OlEst@-r%Ol // cholesterol and many compounds + chore (ogra k%Or%i // fix stress and vowel sounds: choreografie and derivatives ch (l k // chloor and compounds ch (ro k chat _^_EN @@ -915,6 +931,7 @@ CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese + pous) e (C @ // fix e sound: pousebrood/-klok/-tyd, etc. vreugd) e (C @ // fix e sound: vreugdefees/-klokkies/-lied/-tyd... vriend) e (C @ // fix e sound: vriendepaar/-woorde juwel) e (C @ // fix e sound: juwelekissie and similar compounds @@ -937,6 +954,7 @@ lat) eres @r@s //lateres fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc. bloup) ers &:rs // fix e sound: bloupers + iew) ers (ter @rs // fix e sound: (l)iewerster treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds dehands) e (C@ @ // fix e sound: tweedehandsemotorhandelaar/-winkel, etc. goeder) e (@ @ // fix e sound: goederekapitaal/-kantoor/-loods/-mark/-omset/-reg @@ -1230,7 +1248,7 @@ &) etjie (+ ici Cn) etjies Eicis // kraaknetjies/hipernetjies nn) etjies icis // kannetjies/mannetjies/pennetjies, etc. - &) elikheid (_S8 @l@keIt // vriendelikheid/duidelikheid + &) elikheid @l@keIt // vriendelikheid/duidelikheid/gemoedelikheid epi (deC %Ep%i // epidemie/-s/-e/epidermies/epidermis &K) erig @rIx2 @@ -1254,8 +1272,12 @@ &) ere (_ @r@ @l) ere (_ e@r@ // fix e sound: staanlere/toonlere sw) ere (_ e@:r@ // fix e sound: pitswere and similar compounds + @C) erp (_ &rp // fix e sound: wol-/syserp and similar + @C) erpe (_ &rp@ // fix e sound: wol-/syserpe and similar + @C) erpie (_ &rpi // fix e sound: wol-/syserpie/-s @) ery (_+ @reI // oorlopery, etc. @) ery (e_ @reI // fix 2nd e sound: delwerye and similar + _) es (karp %Es // move default stress: eskarp/-e and compounds eti (ket %Et%i // shorten e sound and move stress: etiket/-te etikette (rA %Et%ik%Ete@ // fix e sound: etiketterend/-ering C) e (waar @ // fix e sound: bate-/portefeulje-/toegevoegdewaarde/benedewaarts @@ -1358,6 +1380,7 @@ ik) eer 'e@r // abdikeer/kommunikeer, etc. AAl) eer e@r // restore default stress: evange-/evolusie-/seekoeilieleer, etc. Aol) eer 'e@r // fix stress: rioleer/gelanseoleer/-de/gepetioleer + @Cl) eer e@r // restore default stress in compounds like windpompleer oriënt) eer e@r // default stress: beroepsgeoriënteerd and similar Cm) eer e@r // words containing meer preceded by consonant take default stress: bergmeer/strandmeer, etc. rm) eer 'e@r // but not words like: alarmeer/gereformeerd/transformeer @@ -1458,7 +1481,7 @@ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaardig @C) ent (K 'Ent // orent/student/presidentsrede @C) ent (e_ 'Ent // plurals of some of the above - en) ent (_ Ent // restore default stress: koppenent/voetenent + en) ent (++ Ent // restore default stress: koppenent/-e/voetenent/-e pr) ent (++ Ent // default stress for compounds of prent/-e pr) entjie E:iNk%i //fix prentjie @s) ent (rA Ent // winkelsentrum/studentesentrum, etc. @@ -1482,6 +1505,7 @@ fa (nati f%a // fix stress and a sound: fanaties/-e fan (fare f%an // move default stress: fanfare/-s fanta (sA f%ant%a // fantaseer/fantasie + _) fan (to f%an // move default stress: fantoom/fantome fari (seër f%ar%i // fix stress and a sound: Fariseër/-s farma (seut f%arm%a // move default stress: farmaseut/-e/-ies/-ika fasade f%asA:d@ // fix stress and 1st a sound: fasade/-s and compounds @@ -1540,11 +1564,14 @@ foto fo@tu fotoge (nie f%o@t%ux2e@ // fix stress and e sound: fotogenies/-e fo (togra fo@ // move default stress: fotograaf and similar + foto (sta f%o@t%u // move default stress: fotostaat/fotostate and derivatives fra (giel fr%a // fix stress and a sound: fragiel/-e + fran (Cina fr%an _) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca frangi (pani fr%aN%i // fix stress: frangipani and compounds fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds freud frOId // Freud/Freudiaans/-e + frikkade (l fr@k@d& // fix stress, a and e sounds: frikkadel/-le front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering fru (str fr%W // move default stress: frustrerend/-e fung (e f%WNx2 // fungeer/fungerende/fungering @@ -1565,6 +1592,8 @@ gal (joen x2%al // move default stress: galjoen/-e and compounds gamie (_ x2am'i // bi-/mono-/poligamie, etc. gamies x2'A:mis // bi-/mono-/poligamies/-e + @) gans x2A~ns // nasalise a: berggans/kolgans/-e + gans (C x2A~ns // nasalise a: gansveer/-vere and similar compounds ga (riep x2%a // fix stress and a sound: Gariep(dam) gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds garni (soen x2%arn%i // fix stress: garnisoen and compounds @@ -1603,6 +1632,7 @@ _) goewer x2%uv@r // move default stress: goewerneur and compounds A) gogie (_ x2ux2'i // demagogie/pedagogie A) gogies x2'o@x2is // demagogies/-e/pedagogies/-e + gomag (tig x2Om_%ax2 // fix o sound and stress, pause: gomagtig/-e/-heid A) goog (_ x2'o@x2 // demagoog/pedagoog gor (dyn x2%Or // move default stress: gordyn and compounds go (rilla g%u // fix g and o sounds: gorilla and compounds @@ -1640,6 +1670,7 @@ grotere x2ro@t@r@ // fix vowel sounds and stress: grotere/-s guerrilla g@r'Ila guillotine g%il%utin // guillotine and compounds + gus (ooi x2Ws_ // fix u sound, pause: gusooi/-e guttu (ra x2%Wt%W // move default stress: gutturaal/gutturale gésel x2e@s@l // fix stress and e sounds: (ge)gésel/-ing @@ -1674,6 +1705,7 @@ ge (kg x2& // fix stress and e sound: gekgeskeer ge (kk x2& ge (kh x2& + geklede x2@kle@d@ // fix e sound: wit-/swart-/groengeklede ge (kt x2& // fix e sound: gektalery gekw (ord x2&kv // fix stress, e and w sounds: gekwordens/gekwording genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc. @@ -1722,12 +1754,14 @@ gesels x2@s&ls A) ge (tjie x2i // fix e sound: (graad)negetjie/-s geves (_ x2@fEs // prevent Eng. translation: hout-/staalgeves, etc. + geweer x2@ve@r // restore default stress: geweerhout/-sport/-staander @C) gewens x2@ve~ns .group h h h h (h + @A) h (_ // drop final h after vowel: (Su)Sarah and similar _) half (geP4 h'alf // fix e sound in halfgetem(de), etc. half (kro@ h%alf // move default stress: halfkroon/halfkrone half (een h%alf_ // move default stress in this and following time expressions: halfeen/-vergadering @@ -1786,6 +1820,7 @@ hiëro (glie h%i@r%u // fix stress and vowel sounds: hiëroglief/-gliewe A) hle (_ =LE // Nguni words and names ending in -hle: Enhlalakahle/Hlalanikahle/malahle/Phahle _) hobo ho@bu // fix o sound in compounds: hobokonsert/-musiek/-solo/-sonata/-speler + hoender hun@r // drop d: hoender and many compounds hoeve (r h%uf& // fix stress and e sounds: hoever(re) hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure... @@ -1809,6 +1844,7 @@ heet (hoofdi h%e@t // move default stress: heethoofdig/-e/-heid heide (C heId@ // heidene/heidense/heidendom/heidekind/Heidelberg hekse (C hEks@ // fix 2nd e sound in compounds starting with hekse: heksebrousel, etc. + _) hek (ta h%Ek // move default stress: hektaar/hektare held (haft h%< // move default stress: heldhaftig/-e/-heid hel (din h%&l // move default stress: heldin/-ne/-netjie _) hele (K he@l@ // hele/helend/heler @@ -1862,6 +1898,7 @@ i i i (C I i (CA i + ô) i (K %i // i unstressed: ou-/jongnôi tax) i (@ %i // fix i sound: taxidrywer/-staanplek/-staking/minibustaxistelsel iaal (_K i'A:l // aal normally stressed in words like bilabiaal/koloniaal, etc. iale (_ i'A:l@ // al normally stressed in words like bilabiale/koloniale, etc. @@ -2103,6 +2140,7 @@ _) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus jacaranda j%ak%ar'anda //jacaranda and compounds jakaranda j%ak%ar'anda //jakaranda and compounds + jakob (regop j%A:k%Op // move default stress: jakobregop/-pies and similar jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë jaloe (sie j%al%u // stress: jaloesie/beroepsjaloesie _) jan (C@ j%an // fix stress and n sound: janfiskaal/janfrederik/jangroentjie/janrap/jansalie @@ -2147,6 +2185,7 @@ kelende (_ k@l@nd@ kkelend (_ k@l@nt kkelende (_ k@l@nd@ + kelkie (wyn k%&lk%i // move default stress: kelkiewyn/-e kelner k&ln@r // fix 2nd e sound in compounds like kelnerbaadjie, etc. kelner (in k%&ln@r // move default stress: kelnerin/-ne/-netjie ke (nnAK kE // fix e sound: boek-/markkenner/-kennis @@ -2160,6 +2199,7 @@ flik) kerkers k@rk&:rs // fix e sounds: flikkerkers/-e weder) ker (A k'e@r // wederkerend/wederkerig bottel) kers k&:rs // fix e sound: bottelkers/-e + @) ker (sie_ k&r // fix e sound: koekkersies and similar compounds kete (l ke@t@ // fix e sounds: stookketel/ketelmaker and many similar compounds _) keuse k''Y@s@ // fix connecting e sound in compounds starting with keuse kiaat k%i;A:t // move default stress: kiaat and compounds @@ -2186,6 +2226,7 @@ klawerses kl%A:v@rsEs // fix stress and last e sound: klawerses klawer (t kl%A:v@r // move default stress: klawertwee/-tien klawer (v kl%A:v@r // move default stress: klawervier/-vyf/-vrou + klawer (veld klA:v@r // restore default stress: klawerveld/-e kleinse (rig kl%eInse@ // fix stress and e sound: kleinserig/-e/-heid klein (sieli kl%eIn // move default stress: kleinsielig/-e/-heid _) kamele kam'e@l@ // kamele teenoor skamele @@ -2319,13 +2360,16 @@ kartets k%artEts // fix stress and e sound: kartets/-e and compounds kar (ton k%ar // move default stress: karton and compounds _) kar (ve k%ar // move default stress: karveel/karvele + kar (ven kar // restore default stress: karvenster and compounds kar (ver kar // restore default stress: karverkoper/-verhuurder, etc. kar (wats k%ar // move default stress: karwats and compounds kar (wei k%ar // move default stress: karwei and derivatives + kar (wy k%ar // move default stress: karwysaad and compounds ka (sarm k%a // move default stress: kasarm and compounds kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne and compounds kaske (nade k%ask@ // fix stress and e sound: kaskenade/-s and compounds _) ka (sta k%a // move default stress: kastaiing and compounds + kasta (njet k%ast%a // move default stress: kastanjet/-te and compounds _) ka (ste@ k%a // move default stress: kasteel/kastele and compounds ka (sty k%a // move default stress: kasty/-der/-ding kasse (t k%asE // fix stress and e sound: kasset/-te and compounds @@ -2357,6 +2401,7 @@ ko (kon k%u // fix 1st o sound and move default stress: kokon and compounds kol (jan k%Ol // move default stress: koljander and compounds ko (lom k%u // fix stress and 1st o sound: kolom/-me and compounds + kol (wyn k%Ol // move default stress: kolwyntjie and compounds komati (K k%umA:t%i // fix stress and vowel sounds: Komati(poort and other compounds) kombers k%Omb&:rs // fix stress and e sound: kombers/-e/dons-/lappieskombers, etc. ko (mete k%u // fix stress and 1st o sound: komete and compounds @@ -2366,6 +2411,7 @@ kommissie k%umis%i //kommissie alone and in compounds _) ko (pie@ k%u // kopiereg/kopieë koe (rA k%u // koerier/koerasie/koerant and compounds + koe (rend ku // restore default stress: koerend/-e ko (ra k%u // fix stress and o sound: koraal/korale and compounds korrek k%urEk //korrek and derivatives korrektiewe k%Or%Ektiv@ // fix stress and vowel sounds: korrektiewe(toesig, etc.) @@ -2470,6 +2516,7 @@ lang (werp l%aN // move default stress: langwerpig/-e/-heid lank (moe l%aNk // move default stress: lankmoedig/-e/-heid _) lan (sA l%an // move default stress: lanset/-te/lanseer/-ering/lansier + _) lapa (K lA:pa // fix words like lapakombuis lapar (otomi l%ap%ar // fix stress and a sounds: laparotomie _) lapel l%ap'&l //lapelwapen etc. lapel (_ l%ap'&l //baadjielapel etc. @@ -2523,6 +2570,7 @@ likke (wa l@k@ // move default stress: likkewaan/likkewane &) likste (_S6 l@kst@ li (kwid l%i // fix 1st i sound: (ge)likwideer/likwidasie/likwiditeit + lini (aal l@n%i // fix stress and 1st i sound: liniaal(tjie) and compounds litera (t l@t@r%a // literatuur/literature/literatore, but literbottel liter (A l@t@r // fix i sound: literêr/-e/alliterasie _) li (mi l@ // fix stress and 1st i sound: limiet/-e/limitasie/limiteer @@ -2623,6 +2671,7 @@ mani (ak m%A:n%i // fix stress and 1st a sound: maniak/-ke and compounds manier m@ni:r //manier and compounds manifes manifEs // fix vowel sounds: manifes and compounds/manifestasie/manifesteer + mani (ku m%an%i // fix stress and a sound: manikuur and compounds manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie manji (fie m%anj@ // fix stress and i sound: manjifiek/-e man (moe m%an // move default stress: manmoedig/-e/-heid @@ -2689,12 +2738,13 @@ melank m%El%aNk // stress and 1st e sound: melankolies/melankoliek/-e/melankolikus/-ci mem (bra m%Em // move default stress: membraan/membrane memo (rA m%Em%u // fix stress and vowel sounds: memorandum/memoranda and compounds/memoriseer/-sering + memo (riA m%Emo@ // fix stress and o sound: memorie(boek)/in memoriam meneer m@n'e@r // meneer/meneertjie menere m@n'e@r@ // menere/beroepsmenere meng (sel mEN // fix e sound: sitronellamengsel and similar compounds mening m'e@n@N mening (itis mEn@Nx2 // see rule: mening m'e@n@N - + menstru m%Enstr%y // 1st e not nasalised, fix stress: menstruasie/menstrueer mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related mentele (K mEnt'e@l@ // stress always on penultimate slb of words ending in ntele/-r men (tasie m%En // fix stress: argumentasie/dokumentasie and similar @@ -2708,15 +2758,18 @@ memora (bili m%Em%Or%a // fix vowel sounds and stress: (sport)memorabilia and similar _) metel me@t@l // vermetel/-e/-es/-heid... ment m'Ent - mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds + mentali (teit m%Ent%al%i // fix stress: mentaliteit/sentimentaliteit and compounds/slagoffermentaliteit mentjie m'EiNci // monumentjie/dokumentjies menue (t m%En%y:;E // fix stress and vowel sounds: menuet/-te @C) mere (_ me@:r@ // fix penultimate e sound: sout(water)-/strandmere me (riete m@ // move default stress: meriete and compounds merino m@rin%u // fix stress and vowel sounds: merino/-skaap/-ram, etc. + te) merk m&rk // fix e sound: hoogte-/geboortemerk/-e/-ie me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds AAs) mes (_ mEs // fix last e sound in compounds like kombuismes Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes + hef) mes (_ mEs // fix e sound: hout-/rooihefmes and similar + sny) mes (_ mEs // fix final e sound in compounds like brood-/voorsnymes tafel) mes (_ mEs // fix final e sound: tafelmes _) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds @@ -2745,6 +2798,7 @@ mi (miek m@ // fix stress and i sound: mimiek and compounds mi (mosa m@ // fix stress and i sound: mimosa/-s minag m'Inax2 // minag/geminag/minagting/minagtend + minare (t m@n%arE // fix stress and vowel sounds: minaret/-te minder (jar m@n@r // move default stress: minderjarig and derivatives miner (A m@n@r // mineraal and many compounds mi (neur m%i // move default stress: mineur and compounds @@ -2804,6 +2858,7 @@ monit (e m%On%it // fix vowel sounds and stress: moniteer/-tering and compounds monitor (K mOnitOr // fix o sound: monitor/-skerm, etc. monnike mOn@k@ // fix i and e sounds: monnikedom/-klooster/-koor/-werk and many similar + mono (ga m%o@n%o@ // move default stress: monogaam/-game monopo (li m%o@n%o@p%u // fix stress and o sound: monopolie/-ë/-monopolisties/-e mon (teur m%On // move default stress: monteur/-s and compounds monu (ment m%On%y // monument/e/vrouemonument/monumenteel @@ -2819,6 +2874,7 @@ motie (C m%o@ti // handle stress: winsmotief/-tiewe and similar compounds motor mo@t@r // motorfiets/motorkar/vragmotor motor (ie m%uto@r // fix stress and o sounds: motories/-e + mozzarella m%Ots%ar&l%a // fix stress and zz sound: Mozzarella(kaas) .group n @@ -2843,6 +2899,7 @@ spi) n (ge n // split n/g: spingehalte/-geluid, etc. ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees + e) n (goeC n // split ng: lakengoed/-goeters and similar n (_g N ng (ent Nx2 // kontingent/tangent and derivatives CA) nger N@r // compounds of vinger/slinger; hangertjie/hongersnood/langeraad/swangerskap/tengerste @@ -2853,6 +2910,7 @@ na (burig n%A: // move default stress: naburig/-e/-heid na (byge n%A: // move default stress: nabygeleë and derivatives nabyh (e n%A:beIh // move default stress: nabyheid/-hede + nag (adder nax2_ // fix a sound, pause: nagadder/-s/nagaddergif, etc. na (ï n%a_ // naïef/naïewe/naïwiteit @) na (lis n%a // shorten a sound: joernalis/-te/-tiek nami (bi n%amI // Namibië/Namibiese @@ -3094,6 +3152,7 @@ omkeer Omke@r // restore default stress: omkeer/handomkeer and similar _) omker (A Omke@r // omkering/omkerende _) om (klem %Om // move default stress: omklem/-ming + _) om (kringP2 Om // move default stress: omkring/-de/-ing _) om (laag %Om // move default stress: omlaag and compounds _) omli (gg %OmlI // move default stress: omliggend/-e om (ly %Om // move default stress: omlyn/-ing @@ -3127,6 +3186,7 @@ ort (ometr %Ort // fix 2nd o sound and stress: ortometrie/-metries/-e ort (osko %Ort // fix 2nd o sound and stress: ortoskopies/-e ose (a %o@S%i // fix stress and s and e sounds: oseaan/oseane and compounds + o (soon %O // fix stress and 1st o sound: osoon(laag) and similar @) oties 'o@tis // antibioties/eksoties/eroties/neuroties @) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc. @) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc. @@ -3250,6 +3310,7 @@ onder (werping %On@r // move default stress: onderwerping/-sklousule onder (worp %On@r // move default stress: onderworpene/onderworpenheid, etc. onder (wysC@ ''On@r // force default stress: onderwysdepartement and similar + onderwyser (a On@rv'eIs@r_ // fix stress, e sound, pause: ouer-onderwyseraand/-e and similar _) onderge (@P7 'On@rx2@ _) on (kant On // stress on 1st slb.: onkant and compounds on (langs On // stress on 1st slb.: onlangs/-e @@ -3337,9 +3398,11 @@ K) opeen _%Op_e@n _) ope (K o@p@ //opehart opestelling etc./ope ope (l o@p@ // dopeling/hopelik/opelug/opelyf + _) ope (rig o@p@ // fix stress: operig/-e opgee (+ 'Opx2e@ // see rule: _) opge (@P4 Opx2@ _) opge (@P4 'Opx2@ // stress on 1st slb &C) op (ig 'o@p // wanhopig/voorlopige + op (lett %Op // move default stress: oplettend/-e/-heid opper Op@r // oppergesag/wese/vlak/man opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid @@ -3427,6 +3490,7 @@ pori (eus p%o@r%i // fix stress: porieus/-e porse (lein p%Ors@ // fix stress and e sound: porselein and compounds por (sie pOr // restore default stress: porsie/-s/-tjie + por (stok pOr // restore default stress: porstok/-ke portu (ge p%Ort%y // fix stress: Portugees/Portugese _) pos (a pOs //posadres/posadministrasie posisie p%uzis%i @@ -3435,6 +3499,7 @@ _) poten (C p%utEn // fix stress and vowel sounds: potent/-e/potensie poten (sia p%o@t%En // fix e sound: potensiaal/potensiale and compounds pot (sier p%Ot // move default stress: potsierlik/-e/-heid + pot (yster pOt_ // fix o sound, insert pause: potyster/-tafel and similar compounds poësie p%u:@zi // bieg/natuurpoësie/poëversameling, etc. poë (tA p%u:e@ // poëties/-e/poëte ra) pporte (rA p%Orte@ // fix stress and e sound: rapportering/rapporterende @@ -3458,6 +3523,7 @@ pajama p@dZ'A:ma //pajama and compounds pak (A pak? // pakesel/pakos/verpakafdeling pakistan p%ak%istan //first a and stress + _) pa (kka p%a // move default stress: pakkaas/pakkase pakke (t p%akE // pakket/-te and compounds pale (stA p%al@ // fix stress and a sound: Palestina/Palestyn and derivatives pale (t p%alE // fix stress and a sound: palet/-te and compounds @@ -3501,6 +3567,7 @@ para (C ,para //paralel, paragraaf etc. parade (K p@rA:d@ // parade and compounds _) par (CA p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig + parka (baadj park%a // restore default stress: parkabaadjie/-s and compounds parke (raad park@ // fix stress and e sound: Parkeraad(slid, etc.) _) pas (AA pas // pasaangeër/pasoortreding pas (op p%as // pasop/pasoppens @@ -3519,6 +3586,7 @@ .group pe _) pe (dA p@ //pedaal pedanties etc. + @C) pe (da p@ // fix e sound: voet-/petrolpedaal/-pedale _) peda (g p%Ed%a //pedagogie etc. _) pedi p%Ed%i //pediater etc. _) ped (of p%Ed //pedofiel pedofilie, etc. @@ -3583,12 +3651,15 @@ prakti (syn pr%akt%i // move default stress: praktisien and compounds and plural _) prak (tyk pr%ak // stress: praktyk and compounds prefek prifEk // fix vowel sounds: prefek/-te/-tuur and compounds + preg (nanC pr%Ex2 // move default stress: pregnant/pregnansie pre (histo pre@ // fix pre sound: prehistories/-e 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 (nata pr,e@ // fix e sound: prenataal/-tale presbiteri (a pr%Esb@t%e@r%i + @) present pr@sEnt // restore default stress when present 2nd part of compound: krismispresent, etc. preste (rend pr@ste@ // fix stress and vowel sounds: presterend/-e + prestige pr%Esti:Z // prestige and compounds pretori pr%it%o@r%i //pretorianer,pretoriaan, fix e and o sounds a pretoria (_ pr%it'o@ria //ending in pretoria pretoria (C prit'o@ria //pretoriase, pretoriahuis etc. @@ -3627,6 +3698,7 @@ promenade pr%Om@nA:d@ // fix stress and vowel sounds: promenade/-dek/-konsert, etc. promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering + pronker (tji prONk_&r // insert pause, fix e sound: pronkertjie/-s and compounds proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc. prosa pro@s%a //prosa and compounds prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e @@ -3647,6 +3719,7 @@ proto (C pro@tu // protokol/prototipe prot (on+ pro@t // fix o sounds: proton/-e and compounds provi (and pr%o@v%i // fix stress and v sound: proviand/-meester, etc. + provita pr%uvit%a // fix v sound: provita/-s and compounds .group q @@ -3684,7 +3757,7 @@ ra (pier r%a // move default stress: rapier/-e and compounds _) ra (pport r%a // fix stress: rapport/skoolrapport/rapportryer rasse ras@ // e sound of compounds starting with rasse - ribbe (tj r'Ibi + ribbe (tj rIb%i // skaapribbetjie riete rit@ // fix e sound: merietelys/rietedak, etc. rinkh (als rINk // drop h: rinkhals and compounds rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der @@ -3692,6 +3765,7 @@ ris (kant r@s // move default stress: riskant/-e ritme rItm@ // fix e sound in ritmes/ritmespeler ritu (A r@t%y // ritueel/rituele/ritualisties + rl(_ _^_EN // words ending in -rl are English: girl/whirl/pearl, etc. roersel rurs@l // fix stress and e sound: roersele and compounds of roersel _) rol (A rOl? // oprolaksie/roloorvleueling roeme (nië r%umi: // fix stress and e sound: Roemenië(r) @@ -3753,6 +3827,7 @@ regi (sseuC r@x2@ // fix stress and e sound: (film-/kuns-/mede-/musiek-/oorklankings-)regisseur/-sseuse reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister regle (ment r@x2l@ // fix stress and e sounds: reglement/-e and compounds + re (gulA r%E // fix e sound: regulasie/reguleer/regulering regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list rekla (mA r@kla // fix e sound: reklamatories/-e/reklamasie reklame r@klA:m@ // fix stress and e sounds: reklame and many compounds @@ -3824,7 +3899,7 @@ @) s (_S1q s // to correctly handle plurals of propernames in af_list: Jouberts, etc. @@@) s (_S1 s // to correctly handle plural s i) s (_ s // exceptions to rule: @@@) s (_S1 s - + sahara sah'A:ra // fix stress and a sound: Sahara/-woestyn and similar compounds sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres o) s (_ s // exceptions to rule: @@@) s (_S1 s u) s (_ s // exceptions to rule: @@@) s (_S1 s @@ -3842,7 +3917,7 @@ @) s (jas s // fix s/j sounds: asjas/huisjas/nertsjas/pelsjas sjerrie SEri // fix e sound: sjerrie and compounds sjimpan (see S@mp%an // move default stress: sjimpansee/-s and compounds - sjokolade SOk@l'A:d@ // sjokolade and compounds + sjokolade S%Ok@lA:d@ // sjokolade and compounds: warmsjokolade s (jaap s // stads-/dorpsjaap @) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar @) sj (aCA sj // apartheidsjare/oesjare/beroepsjaloesie @@ -3930,6 +4005,7 @@ skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene + skle (rose skl@ // fix stress and e sound: sklerose and compounds _) skok (AP4 sk''Ok_ // fix o sound and stress: skokaankondiging/-effek/-insluiting/-onthulling... skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet sko (lier sk%o@ // move default stress: skolier/-e @@ -3986,7 +4062,7 @@ spi (na@ sp%i // move default stress: spinaal/spinale _) spi (ra sp%i // move default stress: spiraal and compounds/spirale/spirakel/spirant, etc. spits (von sp@ts // move default stress: spitsvondig/-e/-heid - spoed (@ sput // spoedaflewering/spoedeisend/spoedorder + _) spoed (@ sput // spoedaflewering/spoedeisend/spoedorder spoed (ig spud // spoedig/-lik/-er/-ste _) spon (ta sp%On // move default stress: spontaan/spontane _) sport (@@@ sp''Ort_ // force stress on 1st slb.: sportadministrasie/-konfederasie @@ -4044,6 +4120,7 @@ subli (mA s%Wbl%i // move default stress: sublimaat/-ate/sublimering sublimi (na s%Wbl%im%i // move default stress: subliminaal/-ale sub (sidA s%Wb // move default stress: subsidie/-s and compounds + sub (skrip s%Wb // move default stress: subskripsie and compounds sub (stansie s%Wp // move default stress and fix b sound: substansie/-s/substansieel/-siële substi (tu s%Wbst@ // move default stress: subsistuut/-tute sub (ti s%Wp // stress and b sound: subtiel/-ste/subtiliteit @@ -4080,6 +4157,7 @@ se (_ s@ //the word se and some ending in se __) se (_ s@ //Se at start of sentence. _) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra + _) se (doos s@ // fix stress and e sound: sedoos(wind) se (ggA s& // fix e sound: niksseggend/-e @) seko (no@ s_%Ek%u // fix e sound; default stress; insert short pause: bedryfs-landsekonomie/-s/-ekonoom @) seks (_ sEks // fix final e sound: kinder-/kuber-/oumens-/selfoon-/tienerseks @@ -4089,6 +4167,7 @@ sending (_ sEnd@N //fix sending at word end sen (sorie s%En // move default stress: sensories/-e senter sEnt@r // fix e sound: binne-/buite-/Springboksenter + senti (ment s%Ent%i // fix stress: sentimentaliteit @C) se (re_ se@ // fix penultimate e sound: bed-/brand-/keel-/kop-/kruip-/maag-/mond-/pitsere se (roet s@ // fix stress and e sound: seroet and compounds seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.) @@ -4123,6 +4202,7 @@ @) sel (wig s'&l // stress: (ver)eenselwig and derivatives polisie) se (lK s& // fix e sound: polisiesel/-le _) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s + semel (@ se@m@l // fix stress and e sound: semeltjie/semeluitslag _) semi (_ sEmi // fix e sound: semi/semi-formeel, etc. semi (na s%Em%i // seminaar/seminare/seminarium _) semi (C sEmi // fix vowel sounds: semistaatsinstellings and similar @@ -4159,10 +4239,12 @@ staties st'A:tis sta (tutA st%a // fix stress and a sound: statute/statutêr êr) ste (_S3 st@ // preserve stress: elementêrste/primêrste, etc. + _) ste (faan st@ // fix stress and e sound: Stefaan/-s/-sie %Cel) ste (r st& // fix e sound: dubbelster/-re Cet) ste (rK st& // fix e sound: ballet-/kabaret-/krieketster/-re dwaal) ste (r st& // fix e sound: dwaalster/-re dwerg) ste (r st& // fix e sound: dwergster/-re + film) ste (r st& // fix e sound: filmster and compounds nd) ste (r st& // fix e sound: aandster/oggendster pool) ste (r st& // fix e sound: poolster prent) ste (r st& // fix e sound: rolprentster/-re @@ -4173,6 +4255,8 @@ _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel ster (hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfsterhotel + skaap) ster (tjie st&:r // fix e sound: skaapstertjie/-s + vark) ster (tjie st&:r // fix e sound: varkstertjie/-s stimu (lA st@m%y // move default stress and fix i sound: stimuleer/stimulering/stimulasie stede (C ste@d@ // fix e sounds of many compounds and derivatives containing stede steding ste@d@N // besteding and compounds @@ -4198,6 +4282,7 @@ stede (_ ste@d@ //voorstede, hoofstede etc. stele (_ ste@l@ //kastele lepelstele etc. stene (_ ste@n@ //skoorstene, bakstene etc. + sten (sil stEn // fix e sound in compounds like wolbaalstensil chri) stene (_ st@n@ //fix christene and compounds @) stel (o st@l //bewusteloos/lustelose/rusteloosheid/kosteloos mAre) ste (r st& // fix e sound: more/môrester/-re @@ -4221,7 +4306,7 @@ @) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc. stewel ste@v@l // sokkerstewels/stewelmaker and other compounds stie (beu st%i // move default stress: stiebeuel and compounds - @) stiek st'ik // statistiek/akoestiek/artistiek and many similar + @V) stiek st'ik // statistiek/akoestiek/artistiek and many similar @) sties =st%is // statisties/akoesties/artisties and many similar sti (let st%i // move default stress: stilet/-te/stiletto stil (swy st@l // move default stress: stilswy(g)end/-e @@ -4264,7 +4349,7 @@ talen (tjie t%alEiN // fix -entjie: (kuns-/musiek)talentjie @) talig t'A:l@x2 // Anderstalig/tweetalig @) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar - _) ta (ma t%a // tamatie and compounds + tama (tie t%amA: // tamatie and compounds/kersietamaties, etc. _) ta (mb t%a // tamboer and compounds/tambotie and compounds tamboe (ryn t%amb%u // move default stress: tamboeryn/-e and compounds tamele (tj t%am@lEi // fix stress and vowel sounds: tameletjie/-s @@ -4297,6 +4382,7 @@ ti (perA t%i // move default stress: tipering/tiperend/-e ti (ra t%i // move default stress tiran tirade tira (nnie t%ir%a // move default stress: tirannie + tissue tiS%u // English word often used in Afrikaans text: manstissue, etc. titel tit@l // fix e sound: (on)getiteld/titelblad/-geveg and many similar tj tS @) tj (a tj // separate tj: agtjarig/blatjang/bontjas/olifantjag/ouditjaar/tweegatjakkals @@ -4341,6 +4427,7 @@ toi (let t%OI // move default stress: toilet and compounds tokke (lo t%Ok@ // move default stress: tokkelos/-sie/tokkelok and compounds tok (tokk t%Ok // move default stress: toktokkie/-s/-spelery, etc. + tombola t%Ombo@l%a // move default stress: tombola and compounds _) to (na t%o@ // fix stress and o sound: tonaal/tonale _) top (A t''Op_ // fix o sound: topaandeel/-offisier/-universiteit, etc. _) top (aas t%up // fix stress and o sound: topaas and compounds @@ -4348,16 +4435,20 @@ _) top (ogra t%o@p // fix stress and o sound: topografies and derivatives _) top (olo t%o@p // fix stress and o sound: topologies and derivatives @) toris (_ t'o@r@s // fix stress: pectoris/klitoris + _) tor (nyn t%Or // move default stress: tornyn/-e and compounds _) tos (ka t%Os // move default stress: Toskaanse/Toskane ttel t@l // many compounds of bottel/skottelgoed tuberkulose t%yb@rk%ylo@s@ // fix stress; e sound in compounds: tuberkulose/-behandeling tug (A tWx2_ // fix u sound: (on)tugondersoek/-oortreding/-ordonnansie tuiglik t'Yyx2l@k // stress: werktuiglik/sintuiglik/-e/-heid tuin (ier t%Yyn // move default stress: tuinier and compounds + turlington tW:l%iNt@n // Turlington/-reuk/-smaak 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 + tweed (K twi:d // english pronunciation: tweedbaadjie/-pak, etc. + tweed (ra twe@d // but: tweedrag/tweedraadwol, etc. twis (A twIs_ // fix i sound, pause: twisappel/-s twyfe (l tweIf@ // fix e sound: twyfelloos/twyfellose @) ty (dig t'eI // gelyktydig/vroegtydig @@ -4486,7 +4577,7 @@ @) tele (_ t'e@l@ tenis t@nIs - tennis t'En@s // tennisafrigter/tennisarm + tennis tEn@s // tennisafrigter/tennisarm/tafeltennis tera (pA t%Er%a // terapie/terapeut/terapeuties/arbeids-/groepsterapie o) tera (pA t%Er%a' // stress: chemoterapie/fisioterapeut/psigoterapie... _) tereg t@r&x2 // teregwysing/teregstelling/tereghelp/tereg @@ -4516,6 +4607,7 @@ transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal transistor tr%ansIst@r // trans- not prefix, fix o sound: transistor(radio, etc.) transito tr%ansit%u // trans not prefix: transitorooftog and similar + transpa (rant tr%ansp@ // fix stress and a sound: transparant/-e and compounds transport tr%anspOrt // fix stress: transport and compounds trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds trap (soe tr%ap // move default stress: trapsoetjies/-e @@ -4531,6 +4623,7 @@ tre (k tr& trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering + tril (joen tr@l // move default stress: triljoen/-e trio (_ tri:u // fix o sound: (fluit-/harp/-kitaar...)trio triomf (ant tr%i%Omf // move default stress: triomfantlik/-e tri (omf tr%i // move default stress: triomf/-boog/-lied/-tog, etc. @@ -4542,7 +4635,9 @@ _) trom (pet tr%Om // move default stress: trompet/-tte/-tter and compounds tro (tseer tr%O // stress: trotseer/getrotseer tro (tsering tr%O // move default stress + trousseau tr''u:s@U // trousseau/-kis and similar truk (aats tryk // default stress: trukaatser/-s + tru (projek try tru (spieë try // fix u sound: truspieël/-tjie/-s tru (stee tr%W // move default stress: trustee and compounds @@ -4598,6 +4693,7 @@ uit (sluiten %Yyt // move default stress: uitsluitend/-e uitsluitlik %YytslYytl@k // move default stress: uitsluitlik/-e uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder + uitspatlik %Yytspatl@k // move default stress: uitspatlik/-e/-heid 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 @@ -4702,6 +4798,8 @@ ve (l f& // maagvel, stress on 1st slb @) vel (A fe@l // aanbeveling/aanbevelingsbrief veld (C f< // fix d sound: veldreuk/-radio/-rantsoen, etc. + veld (eks f<_ // fix d sound, pause: veldekskursie/-ekspedisie/-s + veld (o f<_ // fix d sound, pause: veldorgideë/-opsigter/-oppervlakte/-opname, etc. vele f'e@l@ ven (detta v%En // fix stress and v sound: vendatta and compounds ven (dusie f@n // fix stress and e sound: vendusie and compounds @@ -4711,6 +4809,7 @@ ven (yn f@n // venyn/venynig ver f@r veranda v@randa // fix stress and e sound: veranda and compounds + verbena v@rbe@n%a // fix v sound: verbena/-s and compounds verby f@rbeI // fix stress: verbykomkans/verbykomslag, etc. vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds verversing f@rf'&rs@N //verversing and compounds @@ -4732,6 +4831,7 @@ ver (baal v%&r // fix v and e sounds and stress: (nie)verbaal ver (balA v%&r // fix v and e sounds and stress: (nie)verbale/verbaliseer vere (b fe@r@ // ver- not prefix: verebed/-bedryf/-bedekking + vere (do fe@r@ // ver not prefix: veredons/veredos vere (h fe@r@ // ver- not prefix: verehoed/-e/-ens vere (k fe@r@ // ver- not prefix: verekombers/-kuif/-kussing vere (m fe@r@ // ver- not prefix: verematras/-se/-sie @@ -4772,6 +4872,7 @@ C) verse (_ f&rs@ KA) verse (_ v'&rs@ versifi (C v%&rs%if%i // fix stress and v and e sounds: (di)versifiseer/-sering/-kasie and compounds + vers (kalC f&:rs // fix stress and e sound: verskalf/verskalwers/verskalfie vers (r f&rs // fix stress and e sound: versreël/-rym/-ritme _) veronge (@P7 f@r'O:Nx2@ verbete f@rb'e@t@ // verbete/verbetenheid @@ -4831,8 +4932,10 @@ voor (sie f%o@r // move default stress: voorsien/-ing voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar + voor (spoedi f%o@r // move default stress: voorspoedig/-e voor (sk fo@r // voorskiet/voorskot/voorskrif/voorskryf voorstedeli (k f%o@rste@d@l@ // move default stress: voorstedelik/-e vs voorstede + voor (trap fo@r // restore default stress: voortrap/-pe/-pies voort (duren f%o@r_ // fix stress and drop t: voortdurend/-e voor (trek fo@r // voortrek/voortrekker and compounds voort (v@@ f%o@rt // voortvarend/voortvlugtige @@ -4925,13 +5028,15 @@ C) wag (K vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc. wal (kure v%al // move default stress: Walkure/-s + @k) w (alm v // fix w sound: drank-/tabakwalm/-s wange (drag vanx2@ // (jeug)wangedrag and similar wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid wan (stalt v%an // move default stress: wanstaltig/-e/-heid wan (trouig v%an // move default stress: wantrouig/-e wapen vA:p@n // fix problems with compounds and derivatives of wapen: ontwapening/wapengeweld -//wapenopleiding + t) ware (K vA:r@ // fix w sound: toilet-/genot-/gietware + wasag (tig vas_,ax2 // fix a sound, stress, pause: wasagtig/-e/-heid @k) ware vA:r@ // breekware/blikware/lakware @s) ware vA:r@ // kruideniersware/bronsware/glasware/kombuisware bes) ware wA:r@ // geloofsbesware/gewetensbesware @@ -4944,6 +5049,7 @@ wa (vrag vA: // long a sound: (bok-/krui)wavrag/-te _) wa (wy vA: // fix stress and a sound: // wawyd/wawydwakker, etc. AC) w (aaier v // fix w sound: blaas-/bamboes-/dakwaaier and similar + k) waar vA:r // fix w sound: eerlikwaar/waarlikwaar/werklikwaar waardeer vard'e@r // waardeer/waardeerder waarder (@ vard'e@r // waarderend/e/waardering &) waardig v'A:rd@x2 // stress on -waardig: merkwaardig/besienswaardigheid, etc. @@ -4958,6 +5064,7 @@ _) wig vIx2 // fix stress: gewig/-tig/-e wiking vikiN // fix i sounds wilhel (mi v@lh%&l // move default stress: Wilhelmina/-straat + wille (mi v@l@ // move default stress: Willemien/-tjie/Willemina _) wind (a vInt_ // fix d sound, insert pause: windaf(dryfmiddel)/as _) wind (o vInt_ // fix d sound, insert pause: windop/windorrel, etc. wispel (tu v@sp@l // move default stress: wispelturig/-e/-heid @@ -4974,7 +5081,7 @@ @) 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 + @C) w (oCK v // fix w sound: kubiekwortel/steekwond/onafhanklikwording/republiekwording/varkwors @C) woning vo@n@N // fix w sound in many compounds ending in -woning woe (styn v%u // move default stress: woestyn and compounds wolke vOlk@ // nimbuswolke/wolkekrabber @@ -4984,6 +5091,7 @@ @t) w (y v // fix w sound: granaatwyn/kieswetwysiging/krotwyk/straatwys(ie) @C) w (yd v // fix w sound: kerkwyding/landswyd/reikwydte/republiekwyd/wêreldwyd @t) wyfel weIf@l // fix w sound: gewetenstwyfel and similar + &s) wyk veIk // fix w sound: diakenswyk/dorpswyk/koshuiswyk/-e and similar compounds wynkel (der veInk&l // split n/k, fix e sound: (brande)wynkelder/-s w (ys v //padwyser and many others with wyser in compounds wysge (rig v%eIsx2e@ // fix stress and e sound: wysgerig/-e @@ -5014,6 +5122,7 @@ wel (spreken v%&l // move default stress: welsprekend/-e @) wendig v'End@x2 // inwendig/noodwendig/uitwendig &) wene (_ v@n@ // fix penultimate e sound: afgestorwene/-s/ingeskrewene/verdorwene/verhewene + fees) wens ve~ns // fix w and e sounds: kersfeeswens/-e A) wer (AA v@r // fix e sound: beyweraar/keweruitroeiing/nyweraar/oewereienaar ge) were ve@r@ // fix e sound in compounds ending in gewere werk (stelli v%&rk // fix stress: bewerkstellig and derivatives diff --git a/dictsource/da_list b/dictsource/da_list index ec50ff24..eceaf4a0 100755 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -1,4 +1,4 @@ - + // This file is UTF8 encoded // Spelling-to-phoneme words for Danish @@ -27,7 +27,7 @@ _ac2 dV@lakj'u:t _brv br'i:v _ced s@d'ila _cir s'3:kVmfl,Eks -_dia 'umlaut +_dia 'omlyd _dot wiDd'0tabVv _grv aks'aN gr'a:v _hac h'atS,Ek @@ -58,9 +58,9 @@ _#32 blank @ sn,&:bel'&: / sgRVsdrai $max3 \ 'Vmvendsgr,VsdRai $max3 -_, koma: +_, k'oma: _; se:mi:ko:lVn -_: ko:lVn +_: k'o:lVn _. puNtum _? spWrgsmVlstajn _! udRVbstejn @@ -73,9 +73,16 @@ __ b'Onsdrai ÷ divid'eReD meD = l'imeD # n'OmV -§ paragR'af - - +§ paragr'af +× g'aNe +ª feminin Wdin'al +º m'askulin Wdin'al +® registr'eret varemerke +¼ en kvart +¢ s'ents +¥ j'en: +µ my +' apostr'of // numbers _0 'nOl @@ -235,6 +242,7 @@ z sEt // exceptions +Alene al'en@ // alone egen a:j@n eget a:j@D egne a:in@ @@ -248,8 +256,9 @@ havde h'aD@ // had idet id'e // in so far as sagde sa@ // said sig sAi // oneself -//slags sl+ags // sort, type +slags sl'ags // sort, type tre tr'e // the number 3 + diff --git a/dictsource/da_rules b/dictsource/da_rules index ad38e9cd..6c0ab8f2 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -1,4 +1,4 @@ - + // This file is UTF8 encoded // Spelling-to-phoneme rules for Danish @@ -29,6 +29,8 @@ ch) au (f o nive) au o an (cienn aN +restaur) ant aN + rest) au (r o aw (K aw ay (K aj aa O: @@ -90,6 +92,7 @@ d) d d e) d (t i) d (e d + i) d (ræt d i) d (t o) d (a d o) d (i d @@ -180,6 +183,7 @@ æn) d (ri d æn) d (re d æn) d (re d + bol) d d kla) dd (e D kry) dd (er D dd (et D @@ -196,6 +200,7 @@ plu) d (se ral) d (e sag) d (e + sed) d (el D sku) d (t smu) d (s snu) d (e D @@ -570,13 +575,17 @@ foreta) g (e o) ld l æ) ld (r ld bo) ld ld + bo) ld (A ld fo) ld l he) ld l he) ld (ig ld + ki) ld (A l me) ld (el l me) ld (ing l no) ld l so) ld (aC d + so) ld (at ld + @@ -585,7 +594,9 @@ foreta) g (e mm m m (A m gour) met m'e - +kompli) ment maN +kompli) ment (e ment + regle) ment (e ment .group n @@ -604,6 +615,10 @@ foreta) g (e sa) n (kt eku) nd nd pag) n (e nj + ballo) n N + ræso) n N + sæso) n N + talo) n N gleme) n (t N @@ -634,6 +649,7 @@ foreta) g (e sa) ng (e N se) ng (e N ti) ng (e N + ti) ng (ent Ng træ) ng (e N arra) ng NS @@ -694,8 +710,8 @@ foreta) g (e .group r - r r - r (A R + r R + r (K r // not followed by a vowel ø) r V: Ae) r V &) rd (e_ r @@ -893,3 +909,4 @@ proven) u y + diff --git a/dictsource/de_list b/dictsource/de_list index dfeb3065..431652f1 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -90,8 +90,8 @@ x Iks // Numbers //======== _0 'nUl -_1 _'aIn -_1a _'aIns +_1 _'aIns +_1a _'aIn _2 'tsvaI _3 'd@-*aI _4 'fi:* @@ -672,6 +672,7 @@ schult Su:lt selbst zElpst serie se:*I;@ service sE*vIs +soeben zo:_'e:b@n sofort $2 sogar $2 soweit $2 diff --git a/dictsource/de_rules b/dictsource/de_rules index 054d768a..e66794a5 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -361,6 +361,7 @@ @@) erisch @*IS &) erung (_ =@*UN + echo ECo: _) e (ff %E l) e (g_ 'e: eih (_ aI @@ -673,6 +674,7 @@ // @) keit (_S4 kaIt // @) keiten (_S6 kaIt@n + ko (e@ ko: kolleg k%Ole:g _) komme (C@ k%OmE _) ko (mp k%O @@ -791,6 +793,8 @@ _) ob (jek %Op _) obst (reP4 'o:pst oe (_ o:@ + @) oen (_S1 n + _n) o (e o: @) o (g_ 'o: t) ogen (_ o:g'e:n @) o (gin_ 'o: @@ -823,10 +827,12 @@ _) periphe p,e:*i:fe: _) personen (@P8 pE*s'o:n@n philie f'i:li: + _) photo f,o:to: _) pro (@ %p@-*o: - _) po (e p%o: - _) poe (sc pY: + po (em p%o: + po (et p%o: + poesie po:e:z'i: _) poly (@P4 p,o:ly: partei p%a*taI _) perfe (k p%E*fE @@ -975,6 +981,7 @@ t (chen_ t _) teen _^_EN _) tele (@ t,e:le: + _) thermo tE*mo: tuerei (_ tu:@*'aI thrill _^_EN _pa) th t @@ -993,7 +1000,7 @@ u u: uh (+ u: uell u:'El - ue y: + u (e u: r) ue (_ u:@ t) ue (_ u:@ ue (_ 'y: diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index df81e304..533e4ecf 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -11,8 +11,8 @@ Yy - : ; ? b c d dZ f g h j k l L m -n N p r s S t T -tS v w x x2 z Z +n N n^ p r s S t +T tS v w x x2 z Z Dictionary ne_dict @@ -143,6 +143,17 @@ N n^ p Q R R2 s t T tS v v# w x z +Dictionary hu_dict + +A a: E e: i i: o o: +u u: Y y y: Y: + +- : b c d dZ dz f +g h j J k l m n +n^ p r R R2 s S s2 +t tS ts v z Z + + Dictionary fi_dict & &i &y a a2 ai au e @@ -164,8 +175,8 @@ W~ y Y : b d dZ f g h j k l m n N n2 n^ p -p2 r R r2 s S t t2 -t3 tS v w z Z z2 z3 +p2 r r2 s S t t2 t3 +tS v w z Z z2 z3 Dictionary grc_dict @@ -206,15 +217,12 @@ r. s S s. t T t. th th. v w x z -Dictionary hu_dict +Dictionary am_dict -A a: E e: i i: o o: -u u: Y y y: Y: +@ a e i o u y -- : b c d dZ f g -h j J k l m n N -n^ p r R R2 s S s2 -t tS ts v z Z +b d h l m q R s +S t tS Dictionary hy_dict @@ -233,10 +241,10 @@ Dictionary id_dict @ a aI aU e E E2 i o O u -* : ? b d dZ f g -h j k l m n N n^ -p r R R2 s S t tS -v w x z +: ? b d dZ f g h +j k l m n N n^ p +r R R2 s S t tS v +w x z Dictionary is_dict @@ -273,6 +281,21 @@ k l m n N p R s S t tS v w x z Z +Dictionary ro_dict + +@ @- @I @U a aI aU e +ea eI eo eU i i/ I^ iI +iU o O Oa oI oU u uI +y Y yI yU + +* *; b b; c C d d; +dZ f f; g h j k l +l; m m; n N n; p p; +r s S S; t t; tS ts +ts; v v; w w2 x z Z +z; Z; + + Dictionary ku_dict 8 a e E E# eI eU i @@ -333,6 +356,15 @@ S; t t. th th. tS v w z z. +Dictionary nci_dict + +a e i o O + +: ? b c d f g j +k l m n p R s S +t tS v w x + + Dictionary nl_dict 8 @ @- A a: E e: EI @@ -417,21 +449,6 @@ S s# s; t T tS ts v w x z Z -Dictionary ro_dict - -@ @- @I @U a aI aU e -ea eI eo eU i i/ I^ iI -iU o O Oa oI oU u uI -y Y yI yU - -* *; b b; c C d d; -dZ f f; g h j k l -l; m m; n N n; p p; -r s S S; t t; tS ts -ts; v v; w w2 x z Z -z; Z; - - Dictionary ru_dict 8 @- a A e E E# E2 @@ -512,8 +529,8 @@ I i: o o: U u u: V : ; b C d d. dZ f g h H j k l l. m n N n. n^ p Q r R -s S s. t t. th tS v -w z z. +s S s. t T t. th tS +v w z z. Dictionary tr_dict diff --git a/dictsource/en_list b/dictsource/en_list index 93f65886..558a41a9 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -305,10 +305,10 @@ _0M3 b'Ili@n _dpt pOInt _roman roUm@n_ -_0st st -_0nd @nd -_0rd d -_0th T +_#st st +_#nd @nd +_#rd d +_#th T _ord T // default ending _1o f'3: _2o s'Ek @@ -599,6 +599,7 @@ archive A@kaIv archway $1 arena a2ri:n@ argue A@gju: +aries e@ri:z arithmetic a2rITm@tIk arise a2raIz arisen a2rIz@n @@ -1306,7 +1307,6 @@ ingenuity IndZI2n'ju:I2tI inherit Inh'ErIt // inherited innard In3d inner In3 -inning InI2N innovative In@veItIv insect $1 insert Ins3:t $onlys @@ -1710,6 +1710,7 @@ pipette pIp'Et piquant pi:k@nt piracy paI@r@sI pirate paIr@t +pisces paIsi:z piteous pIti@s pituitary $2 plaguing pleIgIN @@ -2419,6 +2420,8 @@ Damascus da2mask@s Danish deInIS Delhi dElI Djibouti dZIb'u:tI +Donegal d0nI2g'O:l +Durham dVr@m Egyptian IdZ'IpS@n Eire e@r@ Geneva dZ@ni:v@ @@ -2580,6 +2583,7 @@ Baez baI'Ez Bambi bambi: Barack ba2rA:k Barbara bA@b@r@ +Betsy bEtsI Boris b0rIs Brien braI@n Candace kandIs @@ -2630,6 +2634,7 @@ Graeme greI@m Graham greI@m Hadrian heIdri:@n Harriet hari@t +Heidi haIdI Huw hju: Iain i:@n Ian i:@n @@ -3204,6 +3209,7 @@ like laIk $strend2 ?3 amen ,eIm'En ?3 anti antaI ?3 banana ba2nan@ +?3 beta beIt@ ?3 caffeine $2 ?3 comrade k0mrad ?3 commentary k0m@ntErI diff --git a/dictsource/en_rules b/dictsource/en_rules index 981f0bf3..94c217f1 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -2815,7 +2815,6 @@ ies (_S2i z spec) ies (_ i:z ser) ies (_ i:z - _ar) ies (_ i:z iesc I2Es &) iest (_S3i @st pr) ie (st i: @@ -2940,6 +2939,7 @@ _) in (k IN _) in (l In _) in (m In + _) inn (K In _) inno (ce In@ _) inno (v In@ _) inn (um %In @@ -4839,6 +4839,7 @@ ?3 n) ucle u:klI ?3 n) uclear u:kli@3 @) u (da_ 'ju: + b) u (ddh U u (guC V f) u (gal 'ju: ug (er_ u:g @@ -5410,7 +5411,7 @@ ž Z þ T ð D - ñ n^ + ñ _^_ES ' diff --git a/dictsource/eo_list b/dictsource/eo_list index c3078e8e..30d23bd1 100644 --- a/dictsource/eo_list +++ b/dictsource/eo_list @@ -30,14 +30,14 @@ _0M4 duili'ono _dpt _komo_ // ordinal numbers -_0a a -_0aj aI -_0an an -_0ajn aIn -_0-a a -_0-aj aI -_0-an an -_0-ajn aIn +_#a a +_#aj aI +_#an an +_#ajn aIn +_#-a a +_#-aj aI +_#-an an +_#-ajn aIn // accent names _lig ligat'uRa diff --git a/dictsource/es_rules b/dictsource/es_rules index 8f0899ae..7272dc6d 100644 --- a/dictsource/es_rules +++ b/dictsource/es_rules @@ -37,6 +37,7 @@ _) d d m) d d n) d d + r) d d .group e diff --git a/dictsource/fr_list b/dictsource/fr_list index c6b67e69..c1a05a32 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -24,7 +24,7 @@ // 2006-11-18 Gilles Casse // -// Updated 2009-10-26 Michel Such +// Updated 2010-02-07 Michel Such // // * Numbers, a few abbreviations and exceptions. // @@ -305,7 +305,7 @@ qq quelque $text qqs quelques $text ratp $abbrev riaa $abbrev -riscos RiskoEs +riscos riskoEs sap $abbrev scsi $abbrev sos $abbrev @@ -362,7 +362,7 @@ néanmoins $u+ toutefois $u+ afin afE~ $u+ $brk avant $u+ -après $u+ +après aprEz2 $u+ (temps en temps) tA~zA~tA~ ainsi $u+ alors alOr $u+ @@ -476,7 +476,7 @@ parmi $u+ pour $u+ autant $u+ tandis $u+ -dès $u +dès dEz2 $u entre $u+ entre $verb contre $u+ @@ -573,7 +573,7 @@ tel $u+ telle $u+ telles $u+ tout t'ut2 -rien Ri-'E~n2 +rien ri-'E~n2 // Letters which can be words //=========================== @@ -593,8 +593,8 @@ dessous d@su hareng _!arA~ pastis pastis poing pwE~ -ressent R@s'A~t2 -riz Ri +ressent r@s'A~t2 +riz ri sphincter sfE~ktEr sous $u+ sur $u+ @@ -687,7 +687,7 @@ queries kueri quit _^_en recorder ricordeur $text requiem rekw^ijEm -revolver RevOlvEr +revolver revOlvEr scan skan scanner skaner2 $verb scanner skanWr $noun @@ -723,7 +723,7 @@ cut kWt mazout mazut michael mikaEl out aut -rut Ryt +rut ryt scorbut scorbutt $text scout skut stout staut @@ -826,7 +826,7 @@ outlook autlu:k paint _^_en paper _^_en people _^_en -redhat REdat +redhat rEdat same _^_en sametime _^_en schubert SubEr @@ -897,4 +897,3 @@ venezuela venezyela wallis wAlis futuna futuna zimbabwe zimbabwe - diff --git a/dictsource/fr_rules b/dictsource/fr_rules index 0083590f..1a7444cc 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -23,7 +23,7 @@ // 2006-11-18 Gilles Casse // -// Updated: 2009-11-20 Michel Such +// Updated: 2010-02-07 Michel Such // // Letter classes: @@ -590,6 +590,7 @@ _m) e (ga e Z) ème i-Em è E + ès E Ar) ès (_ Es m) ès (_ Es n) ès (_ Es @@ -1072,14 +1073,13 @@ C) oing (_ _^_en // going .group r -_) r (A R _su) rr rr // surréaliste cou) rr rr // courrai mou) rr rr // mourrai cou) rr (i r // courrier r r // rien rr r - _) radio (@P5 Radio + _) radio (@P5 radio // group r: English section _) real _^_en diff --git a/dictsource/hu_list b/dictsource/hu_list index 7d03770b..3cb6ebbb 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -6,6 +6,7 @@ _0 nullA _1 EJ _2 kEt:Y: +_2a ke:t // for 200, 2000 _3 ha:R2om _4 ne:J _5 Yt @@ -25,6 +26,7 @@ _7X hEtvEn _8X n^oltsvAn _9X kilEntsvEn _0C sa:z + _0M1 EzER2 _1M1 EzER2 _2M1 ke:tEzER2 @@ -35,12 +37,21 @@ _0M3 millia:R2d _1M3 EJmillia:R2d _2M3 ke:tmillia:R2d - _0M4 billio: _1M4 billio: _2M4 ke:tbillio: _dpt ||Ege:s //Not need the pause before this word + +// variants used when followed by hyphen and suffix starting with 'e' or 'a' +_1e EJ: +_2e kEt: +_3e ha:R2m +_7e hEt +_0M1e EzR2 +_1M1e EzR2 +_2M1e ke:tEzR2 +// used after decimal point _0Z1 tizEd // tenths _0Z2 sa:zAd // hundredths _0Z3 EzR2Ed @@ -76,34 +87,61 @@ _0M1o EzR2Edik _1M1o EzR2Edik _2M1o ke:tEzR2Edik +// ordinal numbers with -a or -e suffix, which is spoken but not written (eg. "december 2. óta") +// Use this pronunciation when a number (with a dot) is between a $alt word and a $alt3 word. +// Set $alt3 flag for: óta, és. közt, között + +_1qx ElSEjE +_2qx ma:SodikA +_1q EJ:EdikE +_2q kEt:EdikE +_3q hAR2_mAdikA +_4q nEJEdikE +_5q YtYdikE +_6q hAtodikA +_7q hEtEdikE +_8q n^oltsAdikA +_9q kilEntsEdikE +_10q tizEdikE +_20q husAdikA +_30q hAR2_mintsAdikA + // $alt2 means these rules only apply if the previous word // has $alt1 (language specific). $text implies $only (for this group only) -_0-a A $alt2 -_0-i Ei $alt2 -_0-e E $alt2 -_0-án a:n $alt2 -_0-ára a:R2A $alt2 -_0-ére e:R2E $alt2 -_0-ra a:R2A $alt2 -_0-re e:R2E $alt2 -_0-én e:n $alt2 -_0-ai Ai $alt2 -_0-ei Ei $alt2 -_0-től e:tY:l $alt2 -_0-tól a:to:l $alt2 -_0-ig e:ig $alt2 //special date ordinal numbers for example elsejéig, negyedikéig etc. -_0-éről e:R2Y:l $alt2 -_0-áról a:R2o:l $alt2 -_0-ára a:R2A $alt2 -_0-ától a:to:l $alt2 -_0-ről e:R2Y:l $alt2 -_0-ról a:R2o:l $alt2 -_0-ével e:vEl $alt2 -_0-ával a:vAl $alt2 -_0-éig e:ig $alt2 -_0-áig a:ig $alt2 +_#-a A $alt2 +_#-i Ei $alt2 +_#-e E $alt2 +_#-án a:n //Need remove the $alt2 tag with this line, because some +//time with the book the sentences beginning with this form, and need +//spokening ordinal number alwais. For example: In 20th, the rain is raining. +_#-ára a:R2A //need remove the $alt2 tag, because with a books lot of +//string using following form: január 19-ről 20-ára. With this situation, +//need spokening huszadikára, not húsz-ára string. +_#-ére e:R2E //Same as prewious doed fix. +_#-ra a:R2A $alt2 //But this line for example need the $alt2 tag. +_#-re e:R2E $alt2 +_#-én e:n //need remove the $alt2 attribute with this line +_#-ai Ai $alt2 +_#-ei Ei $alt2 +_#-től e:tY:l $alt2 +_#-tól a:to:l $alt2 +_#-ig e:ig $alt2 //special date ordinal numbers for example elsejéig, negyedikéig etc. +_#-éről e:R2Y:l +_#-áról a:R2o:l $alt2 + +_#-ától a:to:l $alt2 +_#-ről e:R2Y:l $alt2 +_#-ról a:R2o:l $alt2 +_#-ével e:vEl $alt2 +_#-ával a:vAl $alt2 +_#-éig e:ig $alt2 +_#-áig a:ig $alt2 +_#-étől e:tY:l $alt2 +_#-ét e:t $alt2 +_#-át a:t $alt2 + (1-e) elseje $text $alt2 (1-én) elsején $text $alt2 (1-jén) elsején $text $alt2 @@ -117,6 +155,14 @@ _0-áig a:ig $alt2 (1-ről) elsejéről $text $alt2 (1-ével) elsejével $text $alt2 (1-éig) elsejéig $text $alt2 +(1-étől) elsejétől $text $alt2 +(1-ét) elsejét $text $alt2 +(1-je) elseje $text $alt2 +(1-jei) elsejei $text $alt2 +(1-jével) elsejével $text $alt2 +(1-jére) elsejére $text $alt2 +(1-jétől) elsejétől $text $alt2 +(1-jéig) elsejéig $text $alt2 (2-i) másodikai $text $alt2 (2-ig) másodikáig $text $alt2 (3-i) hAR2_mAdikAi $alt2 @@ -137,8 +183,6 @@ _0-áig a:ig $alt2 (30-i) harmincadikai $text $alt2 - - // these exceptions only for 0, not for other numbers ending in '0' (0-ás) nul:a:S (0-t) nul:a:t @@ -147,50 +191,23 @@ _0-áig a:ig $alt2 (0-nál) nul:a:na:l (0-hoz) nul:a:hoz (0-s) nul:a:S +(0-ára) nul:a:R2A //But if the 0-ára string have the text (only 0 number before the suffix, need spokening this exception. +(0-án) nul:a:n //same as prewious exception. +(0-ig) nul:a:ig +(00-ig) nul:Anul:a:ig //special exception +(0-ban) nul:a:bAn +(0-ba) nul:a:bA +(1-gyet) EJ:Et +(1-gyes) EJ:ES +(2-őt) kEt:Y:t // entries with a single digit such as (2-i) also apply to 22, 32, etc, unless $only - -// with these suffixes, use [J:] not [J] -(1-es) EJ:ES -(1-et) EJ:Et -(1-est) EJ:ESt -(1-esét) EJ:ESe:t -(1-esével) EJ:ESe:vEl -(1-essel) EJ:ES:El -(1-eseik) EJ:ESEik -(1-eseikkel) EJ:ESEik:El -(1-eseiket) EJ:ESEikEt -(1-esekkel) EJ:ESEk:El -(1-esek) EJ:ESEk -(1-el) EJ:El - -(2-es) kEt:ES -(2-est) kEt:ESt -(2-essel) kEt:ES:El -(2-őt) kEt:Y:t -(2-esen) kEt:ESEn -(2-esével) kEt:ESe:vEl -(2-n) kEt:Y:n -(2-esekkel) kEt:ESEk:El -(2-eseket) kEt:ESEkEt -(2-eseik) kEt:ESEik -(2-esük) kEt:ESyk -(3-as) ha:R2mAS -(3-asának) ha:R2mASa:nAk -(3-ason) ha:R2mASon -(3-assal) ha:R2mAS:Al -(3-asával) ha:R2mASa:vAl -(3-ast) ha:R2mASt -(3-astól) ha:R2mASto:l -(3-ashoz) ha:R2mAShoz -(3-at) ha:R2mAt -(3-al) ha:R2om:Al -(3-asok) ha:R2mASok -(3-asoknak) ha:R2mASoknAk +(30-cal) hAR2mints:Al //4 number suffixes (4-el) ne:J:El //Nneed J: phoneme, not J phoneme contains one suffix) (4-gyel) ne:J:El //Need J: phoneme, not J phoneme +(4-t) ne:JEt //special number suffix exception (5-tel) Yt:El (5-el) Yt:El (5-től) Yt:Y:l @@ -199,36 +216,17 @@ _0-áig a:ig $alt2 (6-tal) hAt:Al (6-tól) hAt:o:l (6-tól) h'Atodika:to:l $alt2 -(7-es) hEtES -(7-est) hEtESt -(7-esek) hEtESEk -(7-eseket) hEtESEkEt -(7-esekkel) hEtESEk:El -(7-esbe) hEtESbE -(7-esben) hEtESbEn -(7-esük) hEtESyk -(7-tel) he:t:El -(7-el) he:t:El + (7-től) he:t:Y:l (7-től) hEtEdike:tY:l $alt2 -(7-essel) hEtES:El -(7-esen) hEtESEN -(7-eseknek) hEtESEknEk -(7-et) hEtEt -(7-em) hEtEm -(10-es) tizES // use [i] not [i:] -(10-est) tizESt -(10-essel) tizES:El -(10-esével) tizESe:vEl -(10-en) tizEn -(10-et) tizEt +(7-tel) he:t:El +(8-cal) n^olts:Al +_10e tiz +_20e hus (10-szer) ti:s:ER2 (10-szeres) ti:s:ER2ES -(20-as) husAS // use [u] not [u:] -(20-ast) husASt -(20-assal) husAS:Al -(20-asával) husASa:vAl -(20-at) husAt + + //special number exceptions @@ -242,6 +240,7 @@ _0-áig a:ig $alt2 (80-al) n^oltsvAn:Al (90-el) kilEntsvEn:El + // These words mean that a dot after number, immediately preceding, does not mean an ordinal number január $alt február $alt @@ -281,6 +280,20 @@ péntek $alt szombat $alt vasárnap $alt +//Following four seasons and suffixes not need spokening ordinal number +tavasz $alt +nyár $alt +ősz $alt +tél $alt +tavaszán $alt +nyarán $alt +őszén $alt +telén $alt +tavaszi $alt +nyári $alt +őszi $alt +téli $alt + // accent names _lig ligAtu:R2A _acu e:lES @@ -300,7 +313,6 @@ _tld tildE // characters _#9 tAb -_#13 vAlAmi _#32 so:kYz _cap n'AJ_| _?? kAR2AktEr||ko:d // unknown characters (change this) @@ -310,8 +322,9 @@ _?? kAR2AktEr||ko:d // unknown characters (change this) ADSL a:de:ESEl $allcaps //Internet connection type, we pronouns this with ádéesel ÁNTSZ a:Ente:Es $allcaps ATM a:te:Em $allcaps //The ATM stands. We pronouns this abbreviation with átéem word. Default, Espeak pronouns this abbreviation with atéem word. - +cm tsEntime:tER2 km kilo:me:tER2 + GYSEV JESEv $allcaps GYESEV JESEv $allcaps HÉV he:v $allcaps @@ -319,6 +332,7 @@ IPTV $abbrev $allcaps GDP dZi:di:pi: $allcaps ?2 GDP $abbrev $allcaps HSDPA $abbrev $allcaps +kb kYR2ylbElyl $hasdot ORTT $abbrev $allcaps ORFK oEREfka: $abbrev $allcaps MÁV ma:v $allcaps @@ -326,7 +340,13 @@ MTI $abbrev $allcaps mm milime:tER2 RAM R2Am $allcaps //Espeak normaly spokening this abbreviation with erraem, but this is not good Psszt ps:t $capital // similar word with quiet word. Espeak default spokening this abbrew quiet word with letter by letter by default. +Pszt ps:t $capital //same as prewious abbrewiation VDSZSZ ve:de:EsEs $allcaps +WC ve:tse: $allcaps +LST ElESte: $allcaps +BAR bAR2 $allcaps +SS EsEs $allcaps + a.m An^n^i||m'int $dot ún u:JnEvEzEt: $hasdot dr doktoR2 $dot @@ -354,7 +374,22 @@ vö v'EZd||_'Yss2E // Articles a $u $strend2 // the -az $u $strend2 +az $u $strend2 //Need remove the $alt3 attribute this article, because +//following context result bad spokening output if $alt3 attribute is used: +//az 5. és 6. hadsereg. +//This text means in english: the 1th and 2th solders +//Espeak spokening following phoneme if $alt3 attribute is used: +//Az YtYdikE és hAtodik hAdSER2Eg +//This is wrong this context, the right phoneme is: +//Az YtYdik és hAtodik hAdSER2Eg +//But for example the following sentence part need the $alt3 attribute with +//az article word, but now impossible doing this right: +//Június 6. az a nap +//If I removed the $alt3 attribute with az word, Espeak sending this phoneme: +//ju:niuS hAtodik Az A nAp +//The right phoneme is: +//ju:niuS hAtodikA Az A nAp + //aki $u+ // that ez $unstressend // this @@ -375,12 +410,12 @@ maguk $unstressend // Conjunctions -és $u $strend2 // and +és $u $strend2 $alt3 // and de $u+ $pause // but vagy $u+ $pause // or mert $u $pause // because -miatt $u // because +miatt $unstressend // because bár $u $pause // although habár $u $pause // although ha $u $pause // if @@ -405,14 +440,15 @@ is $u // also elöl $unstressend // in front of elől $unstressend elé $unstressend -előtt $unstressend - +előtt $alt3 $unstressend +este $alt3 +estéjén $alt3 mögül $unstressend // behind mögött $unstressend mögé $unstressend kívül $unstressend -után $unstressend // after +után $unstressend $alt3 // after alól $unstressend alá $unstressend @@ -437,15 +473,15 @@ neki $unstressend nekem $unstressend közül $unstressend közé $unstressend -között $u +között $u $alt3 an $u // so many persons as $u ba $unstressend // into -ban $unstressend // in +ban $u // in be $unstressend -ben $unstressend -ból $unstressend // from inside -ből $unstressend +ben $u +ból $u // from inside +ből $u e $u // in query, his/her ei $u // his her multiole en $u @@ -489,7 +525,14 @@ vel $unstressend ellen $unstressend // against //elé $u // before -//óta $u // since +óta $alt3 // since +hétfőig $alt3 +keddig $alt3 +szerdáig $alt3 +csütörtökig $alt3 +péntekig $alt3 +szombatig $alt3 +vasárnapig $alt3 sok $unstressend // many kevés $unstressend // few @@ -535,7 +578,6 @@ tartják $unstressend erős $unstressend lenni $unstressend lennie $unstressend -közt $u+ levegőjére $unstressend ad $unstressend kapják $unstressend @@ -833,7 +875,7 @@ velem $unstressend velünk $unstressend veletek $unstressend velük $unstressend -közt $unstressend +közt $unstressend $alt3 hiszik $unstressend hiszitek $unstressend önt $unstressend @@ -866,6 +908,17 @@ vélem $unstressend véled $unstressend véli $unstressend vélitek $unstressend +szól $unstressend +tank $unstressend +adta $unstressend +kellett $unstressend +főt $unstressend +nőtt $unstressend +vitt $unstressend +rést $unstressend +brit $unstressend +természetes $u $1 + // word pairs @@ -885,7 +938,7 @@ vannak $unstressend voltam $u // to be, past voltál $u -volt $u +volt $u $alt3 voltunk $u voltatok $u voltak $u @@ -1013,7 +1066,7 @@ _¤ pe:nznEmjEl ® bEjEJzEt: ™ ve:djEJ _` tompA -_  SokYz +_  so:kYz _« bElSY:|bAl|ide:zY:jEl _» bElSY:|jobb|ide:zY:jEl _­ la:JkYtY:jEl @@ -1057,10 +1110,12 @@ nato na:to: (end-of line) u:jS,oR2 + $textmode MSZP emeszpé SZDSZ eszdéesz + egyezség eggyesség @@ -1074,6 +1129,30 @@ egyezség eggyesség (CD-d) cédéd (db-os) darabos (db-ot) darabot +(LST-k) elesték +(LST-n) elestén +(PC-k) pécék +(://) (kettőspontperper) $pause //Hungarian Nwda users ask me put this entry +//again, because Nwda unfortunately does'nt spokening colondashdash +//characters for example with a http or an ftp url. +//The parenthese with second part is required, because if I using this form, +//Orca speech driver does'nt pronouns wrong the url's if I navigating word +//after word and don't disturb Orca working. +(PC-n) pécén +(USB-n) úesbén +(USA-ból) usából +(USA-nak) usának +(DVD-k) dévédék +(dvd-k) dévédék +(DVD-n) dévédén +(dvd-n) dévédén +(dvd-d) dévédéd +(DVD-d) dévédéd + + + + + diff --git a/dictsource/hu_rules b/dictsource/hu_rules index b9de82a3..cf0fdd6f 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -33,6 +33,10 @@ biz (A biz, // bizalmas etc. biedermeier bi:dER2ma:jER2 _) batthiány bAc:a:n^i + tö) bb (ször b + tö) bb (ség b + tö) bb (nyire b + tö) bb (nek b .group c c ts @@ -64,8 +68,8 @@ kilen) c (csatorn ts ner) c (stóla ts kavi) cs (zátony tS - - +?!2 cherbourg SER2buR2g + har) c (cselek ts @@ -80,7 +84,7 @@ hierar) ch (i h mün) ch (en h maso) ch (istA h monar) ch (i h - _pe) ch h + _pe) ch h: szé) ch tS _zi) ch (y tS _szé) che (ny tSe: @@ -93,6 +97,8 @@ hierar) ch (i h ar) ch (ivál h ?!2 _) church (il tSYR2tS +?!2 bu) ch (enwald h +?!2 da) ch (au h .group d d d @@ -146,11 +152,18 @@ hierar) ch (i h föl) d (sáv d dühtől dytY:l rövi) d (zárlat d - sarja) d (zik d - nyála) d (z d ren) dsz (erint d|s szaba) d (szájú d menetren) dsz (erű d|s + hazár) d (játék d + főha) d (segéd d + csalá) d (szerető d + föl) d (szoros d + min) d (jobban d + bri) ddzs (el dZ: + rekor) d (sebesség + hol) d (sü d +árpá) d (sáv d .group dz fogó) dz (kod ts @@ -166,32 +179,37 @@ szedelő) dz z tapogató) dz z ó) dz (kod ts villó) dz z - e) dz (ő dz - e) dz (és dz + e) dz (ő dz: + e) dz (és dz: kére) dz ts mentegető) dz z - dz dz - A) dz (A dz + dz dz: + A) dz (A dz: dzs dZ A) dzs dZ: - dz dz + dz dz: C) dzs dZ A) dzs (A dZ: borsó) dz z - beszé) dz (avar dz + beszé) dz (avar d|z dobáló) dz z kérő) dz z követelő) dz z rángató) dz z +titkoló) dz z +ringató) dz z .group e e E 000_-) el (_ REl // double R for 1000-el 000000_-) el (_ El // ... but not 1000000-el + + _) ehhez EhEz _) egyezség EJ:ESSe:g + .group é é e: éi (é e::i: @@ -242,7 +260,8 @@ régisé) g (gyűjt g ritkasá) g (gyűjt g üve) g (gy g vilá) g (gyűlöl g - + gk k: + é) gh (ajla kh .group gy gy J @@ -262,7 +281,7 @@ ritkasá) g (gyűjt g e) gyj (elentésű Jj lá) gy (sá J gyön) gy (sor J -_minde) gy (ik J: +_minde) gy (ik J na) gysz (a Js na) gy (sokára J @@ -272,7 +291,7 @@ _minde) gy (ik J: ho) gy (se J na) gy (ság J he) gy (ség J - e) gy (ség J + e) gys (ég J|S e) gy (sarkú J e) gy (sejtű J e) gy (sínű J @@ -281,6 +300,29 @@ _minde) gy (ik J: e) gy (es-egyedül J //need one J phoneme with this word, not J: phoneme ú) gy (sem J né) gy (sarok J + na) gy (stíl J + fa) gy (sérül J + _e) gy (ezmény J: + _mege) gy (ez J: + e) gy (-egy J: + na) gy (stratégia J + e) gy (értelmű J: + e) gy (ezked J: + e) gy (eztet J: + e) gy (etért J: + e) gy (irányú J: + kie) gy (ez J: + belee) gy (ez J: + _e) gy (ez J: + e) gy (általán J: + e) gy (ensúly J: +tizene) gy (edszer J: +tizene) gy (es J: + ú) gy (sincs J +e) gy (ért J: +a) gy (sérül J + + .group h h h @@ -301,6 +343,10 @@ _minde) gy (ik J: t) í (zen i t) í (zet i v) í (zen i + sz) í (vatás i + v) í (zére i + + .group j j j @@ -325,6 +371,7 @@ _minde) gy (ik J: kossuth koSu:t kossutht koSu:t: készségg ke:SSe:g: + _a) kk (reditál k .group l l l @@ -367,6 +414,8 @@ keresztü) l (j l fe) l (javít l fe) l (jogosít l ökö) l (jog l: + ha) ll (gatom l + me) ll (kas l .group m @@ -375,11 +424,14 @@ keresztü) l (j l mauser mAuzER2 mosquito moskito: mosquitó moskito: + messerschmitt mEs:ER2Smit: +?!2 hi) mm (ler m + .group n n n - n (g N - n (k N + n (g n + n (k n n (p m ny n^ nny n^n^ @@ -415,7 +467,6 @@ negyve) n (yard n ö) n (járó n tulajdo) n (jog n ko) nn (ektor n //connector word, we spokening one n letter, not two n letter - me) nj (_S2 n^ be) nn (szülött n éle) n (jár n magá) n (jelleg n @@ -426,6 +477,9 @@ tulajdo) n (jog n elle) n (jegy n fe) nn (tartás n fe) nn (sík n + egye) n (jogú n + beto) n (járda n + .group o o o @@ -467,7 +521,7 @@ tulajdo) n (jog n _) richá (rd R2iCa: reichsmarschall R2EjsmAR2SAl: ?!2 _) roose (velt R2u:z - +?!2 _) reichs R2Ejs .group s s S @@ -494,13 +548,15 @@ juventu) s s //a radio station name óriá) s S látá) s (zavar S hallá) s (zavar S - +?!2 _) sherman SER2mAn +?!2 siegfried sigfR2i:d +gyalogo) s (zászló S .group ss ssz ss2 ssz (ínű Ss - mu) ss (olini ss2 + mu) ss (olin ss2 _má) ssz (ó Ss mennydörgé) ssz (erű Ss robbaná) ss S: @@ -656,6 +712,11 @@ motoro) ssz (emüveg Ss kavará) ssz (erű Ss _sa) ssz (eg Ss ké) ssz (úrás Ss +gyalogo) ssz Ss + puská) ssz Ss + mozgá) ssz Ss + _ke) ss (elring s: + rádió) ssz (ob Ss .group sz sz s @@ -684,7 +745,7 @@ kenyere) szs (ák SZ li) sztsz (erű st|s tava) sz (ára s rongyo) szs (ák SZ - + para) sztsz (ek st|s .group t @@ -755,7 +816,7 @@ vörösmar) ty ti á) t (sza t á) tj (ár t|j á) t (szö t - á) t (sző t + á) tsz (ő t|s á) t (szú t á) t (szű t á) t (jut t @@ -816,7 +877,7 @@ passzá) t (szél t épüle) t (sarok t mene) t (sor t skó) t (sapka t - lé) t (jogosultsága t + lé) t (jogosultság t bérle) t (jegy t csapa) t (játék t ese) t (jog t @@ -838,6 +899,21 @@ négyze) t (centi t á) tj (ön t|j á) t (süvít t bará) tj (ára c: +kísérle) t (sorozat t + á) t (sült t + á) t (süt t + épüle) t (sarok t +terüle) ts (áv t|S +terüle) t (cél t + hé) t (jegyű t + természetes tER2me:sEtES + ha) t (sáv t + szen) t (szobrok t + tesz) t (cél t + dró) t (sövény t + dró) t (sövénny t +a) th (én t + .group ts ts (_S2 tS //general rule with word end of ts letters @@ -888,6 +964,7 @@ négyze) t (centi t tehe) ts (ég tS: lá) tsz ts: lá) tssz (on ts: + lá) tssz (anak ts: te) tsz ts: fize) ts (ég tS: segí) ts tS: @@ -909,6 +986,12 @@ indula) tsz (ó t|s skó) tsz (okny t|s söté) tsz (őke t|s á) ts (é t|S + halla) tssz (on ts: + me) tsz (ik ts: + me) tsz (e ts: + hű) ts tS: + + .group u u u @@ -916,6 +999,8 @@ indula) tsz (ó t|s .group ú ú u: h) ú (szan u + h) ú (szas u + h) ú (szat u .group ü ü y @@ -927,6 +1012,7 @@ indula) tsz (ó t|s ű y: t) ű (zijáték y _t) ű (nés y //If this word is a single word, need y phoneme, not y: phoneme. For example the tűnés word, but not need this rule with eltűnés word. + _t) ű (njön y .group v v v @@ -1030,9 +1116,17 @@ tájéko) z (tat s tájéko) z (tass s bi) z (tat s rá) z (kód s - + ré) z (síp z + gará) zs (tároló S + dará) zs (fészek S + ri) zs (t S + tű) zsz (erész s: + tű) zsz (eréssz s: + búcsú) z (ko s +nyújtó) z (ko s .group + $ dolla:R2 ä E æ E diff --git a/dictsource/id_list b/dictsource/id_list index 0c1b897a..0025b584 100644 --- a/dictsource/id_list +++ b/dictsource/id_list @@ -58,7 +58,7 @@ _7X t'udZuhpuluh _8X d@l'apanpuluh _9X s@mb'ilanpuluh _0C R'atus_| -_1C s@*'atus_| +_1C s@R2'atus_| _0M1 R'ibu_ _1M1 s@r'ibu_ _0M2 dZ'uta_ @@ -90,34 +90,34 @@ _tld t'ild@ // punctuation _! t,anda||s'ER2u _" t,andak'utip -£ ponst'E*RliN -% p@*Rs'En +£ ponst'ER2liN +% p@R2s'En $max3 ^ t,andat'opi & t,andad'an -_* b'intaN +* b'intaN $max3 ++ t'ambah $max3 += s,ama||d'ENan $max3 +~ t'ilde +# p'agaR $max3 +@ a||k'EOng +/ g,aR2is||m'iR2iN $max3 +\ 'bEkslES _( k,uR2uN||b'uka _) k,uR2uN||t'utup __ g,aR2is||b'awah _- t,andah'ubuN -+ t'ambah -= s,ama||d'ENan _{ k,uR2uN||kuR2'awal _} k,uR2uN||kuR2,awal||t'utup _[ k,uR2uN||s'iku _] k,uR2uN||s,iku||t'utup _: t,iti?||d'ua _; t,iti?||k'oma -@ a||k'EOng _' k,utip||t'uNgal -~ t'ilde -# p'agaR _< k,uR2aN||d'aR2i _> l,Ebih||d'aR2i _, k'oma _. t'iti? _? t,anda||t'an^a -/ g,aR2is||m'iR2iN -_\ 'bEkslES // unstressed words diff --git a/dictsource/id_rules b/dictsource/id_rules index 2d7cbd22..98e9e8fc 100644 --- a/dictsource/id_rules +++ b/dictsource/id_rules @@ -12,8 +12,8 @@ .group b b b - _) be (@@ b@ + be (n b@ .group c @@ -27,7 +27,7 @@ e E e) e _|E A_) e _|E - e (_ e + e (_ E .group f f f @@ -49,10 +49,10 @@ .group k k k - k (_ ? + k (_ k kh x - _) ke (@@ k@ + ke (n k@ .group l @@ -92,7 +92,7 @@ .group r r R2 r (K R - e) r (K *R + e) r (K R .group s @@ -107,8 +107,9 @@ .group t t t tj tS // Dutch + _) tel t@l + _) ter (@@ t@R - _) ter (@@ t@*R .group u @@ -143,3 +144,4 @@ ** **) * (_ _:: + diff --git a/dictsource/no_list b/dictsource/no_list index fd309040..5c313ca5 100755 --- a/dictsource/no_list +++ b/dictsource/no_list @@ -19,7 +19,7 @@ h ho: j je: k ko: l El -m e:m +m Em n En p pe: q ku-: @@ -34,7 +34,7 @@ z sEt // numeric //******** -_0 n'Ul +_0 n'u-l _1 'e:n _2 t'u: _3 tR'e: @@ -147,6 +147,7 @@ _tld t'Ild@2 // abbreviations //************** +ooxml $abbrev // articles @@ -305,4 +306,7 @@ der dE:R her hE:R kom kOm loe lu: $capital +noe nU:@2 +noen nU:@n // no+en +office Offi:s system syst'e:m diff --git a/dictsource/ro_list b/dictsource/ro_list index 93d9e8c5..05970422 100644 --- a/dictsource/ro_list +++ b/dictsource/ro_list @@ -79,7 +79,7 @@ _? ynt@-*eb'a*e _- k@-*'atim@ __ sublinj'at _' apost@-*'of -_" gilim'ele +_" ghilim'ele _( pa*ant,ez@desk'is@ _) pa*ant,ez@ynk'is@ _[ pa*ant,ez@p@t@-*'at@ @@ -126,7 +126,7 @@ _11 'unsp@-*ez,etSe _12 d'oIsp@-*ez,etSe _13 t@-*'eIsp@-*ez,etSe _14 p'aIsp@-*ez,etSe -_15 tS'intSI^sp@-*ez,etSe +_15 tS'insp@-*ez,etSe _16 S'aIsp@-*ez,etSe _17 S'aptesp@-*ez,etSe _18 'optsp@-*ez,etSe @@ -142,19 +142,19 @@ _19 n'oU@sp@-*ez,etSe //_18 'optiSpe //_19 n'oU@Spe -_20 doU@z'etSI^ +_20 dou@z'etSI^ _30 t@-*eIz'etSI^ _40 pat@-*uz'etSI^ -_50 tSintSI^z'etSI^ +_50 tSinz'etSI^ _60 SaIz'etSI^ _70 Saptez'etSI^ _80 optz'etSI^ _90 noU@z'etSI^ -_2X d'oU@zetSI^ +_2X d'ou@zetSI^ _3X t@-*'eIzetSI^ _4X p'at@-*uzetSI^ -_5X tS'intSI^zetSI^ +_5X tS'inzetSI^ _6X S'aIzetSI^ _7X S'aptezetSI^ _8X 'optzetSI^ @@ -162,7 +162,7 @@ _9X n'oU@zetSI^ _0C s'ute _1C ,os'ut@ -_2C d'oU@s'ute +_2C d'ou@s'ute _0M1 m'iI _1M1 ,om'ie @@ -189,12 +189,23 @@ vii viI // Abbreviations //************** -etc ettS'ete*a -s.a Si'aSa -ş.a. Si'aSa -s.a.m.d Se|aSamaIdeparte -ş.a.m.d Se|aSamaIdeparte -b-dul bulev'a*dul +$textmode +etc etcetera +(b-dul) bulevardul +udmr udemer'e +cf. conform +mm milimetri +cm centimetri +km kilometri +ml mililitri +mg miligrame +kg kilograme +$phonememode + +ş.a Si_!aS,a||maI||dep'arte +ş.a.m.d Si_!aS,a||maI||dep'arte +s.a.m.d Se|aSamaIdeparte +(km / h) kilom'et@-*i_!pe||'or@ // articles un $u @@ -209,6 +220,13 @@ unei $u1 unor $u1 unora $u1+ unele $u1 // some +nicio $u1+ +niciun $u1+ +niciunul $u1+ +niciuna $u1+ +niciunul $u1+ +niciunele $u1+ +niciunii $u1+ anumite $u3 anumitor $u3 @@ -290,6 +308,7 @@ cărora $u1 ceea $u $brk // that aceeaşi $2 +aceiaşi $2 căruia $u1 căreia $u1 cărora $u1 @@ -333,9 +352,9 @@ ale $u $brk in $u $brk în $u $brk pe $u $brk -că $u +că $u+ ca $u -ce $u +ce $u+ la $u $brk de $u (de la) dela $u @@ -475,15 +494,27 @@ puteţi $u+ $verbf trebui t@-*ebw'i // to have to +//ordinal numerals +doilea d'oIlea +treilea t@-*'eIlea +patrulea $1 +cincilea $1 +şăselea $1 +şaptelea $1 +optulea $1 +nouălea n'ou@lea +zecelea $1 // Final "i" is stressed absolvi $4 adăposti $4 +adormi $3 afurisi $4 agonisi $4 amăgi $3 ameţi $3 +aminti $3 amuţi $3 arcui arku'i @@ -501,6 +532,7 @@ cârmi $2 căzni $2 catadicsi $4 +cerea $2 cerşi $2 citi $2 cloci $2 @@ -508,6 +540,7 @@ cuceri $3 cutremura $4 cuveni $3 dărui d@*w'i +defini $3 deosebi $3 depăşi $3 descoperi $4 @@ -537,12 +570,14 @@ hohoti $3 încreţi $3 îndeplini $4 îndrăzni $3 +înflori $3 înghionti $3 înghiţi $3 îngriji $3 înlocui ynloku'i împleti $3 înşela $3 +însemna $3 înregistra $4 înroşi $3 întâlni $3 @@ -550,13 +585,12 @@ hohoti $3 învârti $3 înveli $3 învrednici $4 - +istovi $3 ivi $2 izbuti $3 izbi $2 izgoni $3 linguşi $3 - lipi $2 lovi $2 mânji $2 @@ -565,16 +599,15 @@ mirosi $3 moleşi $3 mulţumi $3 muri mur'i - năpusti $3 necăji $3 numi $2 - +ocoli $3 ocroti $3 odihni $3 oferi $3 opri $2 - +ostoi osto'i pândi $2 păşi $2 părăsi $3 @@ -587,9 +620,9 @@ prăbuşi $3 prăji $2 pregăti $3 preveni $3 +proveni $3 primi $2 porni $2 - răci $2 râfni $2 rânji $2 @@ -640,6 +673,7 @@ vieţui vjetsu'i vorbi $2 zugrăvi $3 zădărnii $4 +zâmbi $2 // final "a" or "ea" is stressed(verbs) @@ -655,14 +689,16 @@ aburea $2 aduna $3 afla afl'a accelera $4 +accentua $3 abona $3 acumula $4 adera $3 +administra $4 afirma $3 agăţa $3 agita $3 aglomera $4 - +alimenta $4 apărea $3 aprecia ap@-*etSj'a apropia ap@-*opi'a @@ -670,7 +706,9 @@ arăta $3 amuţea $3 ardea $2 apleca $3 +apuca $3 asculta $3 +ascundea $3 asigura $4 aşeza $3 aştepta $3 @@ -682,15 +720,18 @@ ajungea $3 alătura $4 alerga $3 ameninţa $4 +angaja $3 anunţa $3 apăra $3 apăsa $3 apela $3 ataca $3 atârna $3 +atribuia $4 auzea $2 balansa $3 băga $2 +binecuvânta $5 blestema $3 bloca $3 bucura $3 @@ -706,8 +747,11 @@ căşuna $3 căsători $4 căuta k@ut'a ceda $2 +cerea $2 +cerceta $3 cerşea $2 chema $2 +clătina $3 clasifica $4 claxona $3 clinti $2 @@ -719,13 +763,14 @@ comunica $4 concentra $3 concretiza $4 concura $3 +conducea $3 conecta $3 confunda $3 consta $2 constata $3 conta $2 continua kontinw'a - +controla $3 conţinea $3 coordona $4 costa kost'a @@ -733,10 +778,13 @@ crea k@-*e'a credea $3 creştea $2 croi kro'i +cumpăra $3 cunoştea $3 cutreiera $4 +cuvânta $3 dansa $2 dădea $2 +dăuna $3 debuta $3 demonstra $3 depăşea $3 @@ -744,6 +792,8 @@ desemna $3 deţinea $3 derula $3 decelera $4 +decidea $3 +decola $3 deconecta $4 dedica $3 degenera $4 @@ -754,18 +804,21 @@ depista $3 desconsidera $5 descurca $3 desfunda $3 - desprindea $3 devenea $3 +devia devi'a determina $4 digera $3 discuta $3 +diseca $3 dispărea $3 dispera $3 +dispreţuia $4 distra $2 domina $3 dorea $2 dormea $2 +dovedea $3 ducea $2 duhnea $2 dura $2 @@ -777,6 +830,7 @@ eficientiza $5 elibera $4 elimina $4 enumera $4 +estima $3 evita $3 evoca $3 evolua evolw'a @@ -787,11 +841,12 @@ exaspera $4 executa $4 experimenta $5 explica $3 +explora $3 facilita $4 făcea $2 ferea $2 fluiera $3 - +furniza $3 folosea $3 fredona $3 fremăta $3 @@ -800,13 +855,10 @@ fulgera $3 furişa $3 gândea $2 gâdila $3 -gâtuia gytu'ja -găzduia g@zdu'ja găsea $2 genera $3 germina $3 gonea $2 -hăcuia $3 holba $2 îmbâcsea $3 îngreuna $4 @@ -816,7 +868,10 @@ holba $2 încăiera $4 îndurera $4 înfiera $3 +//imagina $3 însera $3 +intersecta $4 +înţelegea $4 îmbrăca $3 încălzea $3 încărca $3 @@ -826,7 +881,6 @@ holba $2 îndrepta $3 înfăşura $4 înfunda $3 - înghiontea $3 încuraja $4 întâmpina $4 @@ -834,19 +888,24 @@ ieşea $2 insera $3 interesa $4 interfera $4 +interzicea $4 iubea $2 îmbulzea $3 împuşca $3 încheia ynke'ja încurca $3 îndesea $3 + identifica $5 îngrozi $3 întâmpla $3 înteţea $3 incinera $4 +îndoia $3 instala $3 înainta $3 înălţa $3 +înfigea $3 +irita $3 întreba $3 învârtea $3 învingea $3 @@ -854,8 +913,10 @@ invita $3 juca $2 lăsa $2 lărgea $2 +lansa $2 legifera $4 lingea $2 +localiza $4 lucea $2 mânca $2 mângâia $3 @@ -864,22 +925,28 @@ memora $3 mergea $2 merita $3 mira $2 +mişca $2 mişuna $3 +modela $3 modera $3 modifica $4 -mulţumea $3murea $2 +mulţumea $3 +murea $2 murmura $3 năştea $2 năpustea $3 numea $2 negocia negotSi'a nimerea $3 +nimicea $3 obiecta $3 +obliga $3 observa $3 ocupa $3 oferea $3 ofta $2 +ordona $3 paraliza $4 participa $4 @@ -899,17 +966,23 @@ ploua $2 pornea $2 potrivea $3 preda $2 +predea $2 +prefăcea $3 prefera $3 pregătea $3 prepara $3 +preocupa $3 prelungea $3 +presupunea $4 prezenta $3 +prezicea $3 privea $2 producea $3 promova $3 pronunţa $3 prospera $3 protesta $3 +proteja $3 provoca $3 purta $2 răbda $2 @@ -921,9 +994,11 @@ răsturna $3 răsucea $3 rătăci $3 râdea $2 +reacţiona $3 realiza $4 recupera $4 referea $3 +refuza $3 regenera $4 regiza $3 relaxa $3 @@ -932,18 +1007,21 @@ renunţa $3 repara $3 repera $3 repeta $3 +replica $3 +reprezenta $4 respecta $3 respira $3 reuşea $3 revenea $3 reverbera $4 rezema $3 +rezista $3 ridica $3 risca $2 rostea $2 +rula $2 salva $2 săpa $2 - sărea $2 sângera $3 scăpa $2 @@ -955,33 +1033,44 @@ scotea $2 sfărâma $3 sfârteca $3 simţea $2 +sista $2 specializa $4 speria spe*'ja spulbera $3 sosea $2 spăla $2 spera $2 - spumega $4 stagna stagn'a stăpânea $3 - stârnea $2 stătea $2 ştia St'ja stoca $2 străfulgera $4 strica $2 +subestima $4 sucea $2 +suspecta $3 +susţinea $3 strălucea $3 +strecura $3 sugea $2 sugera $3 suda $2 +suferea $3 supăra $3 +supraestima $5 şuiera $3 +suna $2 +superviza $4 +supunea $3 +surprindea $3 +tampona $3 temea $2 tempera $3 termina $3 +testa $2 tolera $3 topi $2 transfera $4 @@ -997,22 +1086,27 @@ urla $2 utiliza $4 valora $3 vâna $2 +vântura $3 vâslea $2 vedea $2 +venea $2 venera $3 vibra $2 visa $2 vira $2 - +voia $2 +vroia $2 vizualiza $4 vocifera $4 vorbea $2 vota $2 +trecea $2 zăcea $2 zugrăvea $3 zbiera $2 zbura $2 zgâria $3 +zicea $2 // hyphenated contractions @@ -1121,6 +1215,7 @@ agentu $3 agricultu $4 ahaa ah'a aha ah'a +ahile $2 aici a'itSI^ ajungem $2 ajungeţi $2 @@ -1133,6 +1228,7 @@ alegem $2 alegeţi $2 alergă $2 alergătu $4 +aleşi $2 alex $1 alintătu $4 altceva $3 @@ -1153,13 +1249,16 @@ amice $2 amici $2 amicii $2 amicilor $2 +amsterdam $1 andrei $2 - +apărării $3 aplecă $3 apoi $2 aprig $1 aprige $1 aprigi $1 +apropo $3 +apropos ap@-*op'o apucătu $4 apus ap'us arăt ar'@t @@ -1181,35 +1280,40 @@ asigur $2 astăzi $1 aşeză $3 ating $2 -aud a'ud -aude a'ude -aur 'aur -austria a'ustrja -auster aust'er +aur $1 +auriu au*'iU aventu $3 avicultu $4 avocatu $4 avu $2 +banner b'en@r +bannere b'en@*e bacterie $2 bacteriei $2 bacterii $2 badjocu $3 balint $1 băgă $2 +backup b'ekap barman $1 bătătu $3 batem $1 bateţi $1 +bătăi $2 bău b@'u băutu $3 belgia $1 biseric $2 bivol $1 bivoli $1 +blitzkrieg bl'itskrig +blogger bl'og@r bombăne $1 borătu $3 bordei $2 +broker b@-*'ok@r +brio b@-*'io broşu $2 bubuitu $4 bucur $1 @@ -1233,19 +1337,23 @@ cândva $2 cânepă $1 cântec $1 cântece $1 +cale $1 căută $3 capăt $1 capete $1 +capeţi $1 capitol $2 captu $2 caractere $3 caracterele $3 caracterelelor $3 +caracal $2 cărăruie $4 căzu $2 careva $3 caricatu $4 cârpitu $3 +caută kaUt@ cartele $2 câteva $3 câtorva $3 @@ -1253,13 +1361,15 @@ câtuşi $1 căzătu $3 ceainic tS'eajnik ceai tS'eaj +ceauşescu tSeauS'esku +ceauşu tSea'uSu centu $2 cenzu $2 cerbice $2 - -cerem $1 -cereţi $1 +$1 +cercetă $3 cetăţuie $3 +ceru $2 ceva $2 chelălăitu $5 chelner $1 @@ -1273,12 +1383,16 @@ cineva $3 civile $2 clănţăne $1 clatin $1 +clătină $3 +claudiu kla'udju +claudia kla'udja claviatu $3 clocot $1 clocote $1 cocin $1 cocine $1 confişte $2 +controlă $3 cocos $1 colaborăm $4 color kol'o* @@ -1311,10 +1425,14 @@ cratime $1 creatu $3 credem $1 credeţi $1 +crezu $2 +credit $1 +credite $1 creier $1 crescu $2 creştem $1 creşteţi $1 +cristi k@-*'isti crivăţ $1 cuget $1 cugeţi $1 @@ -1322,6 +1440,7 @@ cuib k'uIb cuiva $2 cultu $2 cusu $2 +cuvântă $3 cumpărăm $3 cumpărătu $3 $stem cumva $2 @@ -1337,12 +1456,18 @@ dantu $2 dădu $2 dărâmătu $4 dărăt $2 +dăună $3 david $1 +datorie dato@-*'ie +decolă $3 +deducem $2 +deduceţi $2 dedus ded'us degeratu $4 deget $1 degete $1 deja $2 +demon $1 denzic $2 denzice $2 depozit $2 @@ -1359,6 +1484,7 @@ desigur $2 desktop $1 despărţitu $4 $stem determin $2 +deţii $2 deunăzi $4 dezordine $2 diavol $1 @@ -1367,6 +1493,7 @@ dinăuntru din@'unt@-*u dincolo $1 dinînăuntrul dinyn@'unt@-*ul director $2 +display displ'ej dispus disp'us distingem $2 distingeţi $2 @@ -1379,9 +1506,11 @@ domină $1 domine $1 domniţă $2 dori $2 +două d'ou@ dradus t@-*ad'us dragoş $1 dragoste $1 +dragostea $1 drum dr'um ducem $1 duceţi $1 @@ -1392,10 +1521,10 @@ durerea $2 dureri $2 durerii $2 durerilor $2 - echilibrăm $4 edit $1 efeme $3 +einstein 'aInStaIn egale $2 eliberă $4 elice $2 @@ -1405,9 +1534,10 @@ enter ent@r $1 episcop $2 epoc $1 epoci $1 +eroilor err'oilor examen $2 exclus exkl'us -exe ekse +exerciţiu egzertS'itsju exista $3 exotic egz'otik ex'otice egzotitSe @@ -1423,7 +1553,9 @@ factice $2 factor $1 factori $1 factu $2 +fanatici $2 farfurie farfu*'ie +farmacie fa@-*matS'ie fasole $2 făcu $2 febrile $2 @@ -1446,12 +1578,15 @@ flăcăruie $3 flamură $1 fluier $1 fluiere $1 +fonetică $2 folosi $3 +folder f'old@r forfotă $1 fotbal $1 fractu $2 fraged $1 fragede $1 +frankenstein fr'ankenStaIn frântu $2 frigăruie $3 friptu $2 @@ -1459,9 +1594,11 @@ frizu $2 fulger $1 fulgere $1 fumeg $1 +furniză $3 gâdilă $1 gâgâlice $3 +găgăuţă g@g@'uts@ galben $1 galbene $1 galbeni $1 @@ -1477,20 +1614,25 @@ geamăt $1 gemu $2 gemeni $1 gemete $1 +gerard $1 +gerald $1 ghilimele $3 gimnastic $2 gimnaziu dZimn'azju gizor $1 gizori $1 glazu $2 +google g'ug@l gravu $2 guler $1 gulere $1 gutuie $2 - +gratis $1 +greoi g@-*e'oj hahale $3 haidem $1 haideţi $1 +hamster $1 hârtie hyrt'ie hârtii $2 hărnicie h@rnitS'ie @@ -1499,6 +1641,8 @@ hindus ind'us hohot $1 hohote $1 hoit h'oIt +holbă $2 +hunor $1 hurducătu $4 idile $2 @@ -1533,6 +1677,7 @@ inamicilor $3 încingeţi $2 înfăşurăm $4 inclus inkl'us +ilfov $1 ipsos $1 încercă $3 încrengătu $4 @@ -1543,6 +1688,7 @@ incultu $3 îndărăt $3 îndepărtă $4 indic $2 +iei 'jeI îndoitu $4 înfăşurătu $5 înfloritu $4 @@ -1552,6 +1698,7 @@ isterie $3 înghiţitu $4 ingine $3 îngrăditu $4 +ilie il'ie inima $1 inimă $1 inimi $1 @@ -1562,6 +1709,8 @@ indigo $3 inspector $2 instructor $2 insul $1 $stem +implică $2 +imagină $3 întâi $2 întâmpină $2 întăritu $4 @@ -1572,6 +1721,7 @@ insul $1 $stem întindeţi $2 interpus inte@-*p'us interzice $3 +intersectă $3 intim $1 intime $1 întrebă $3 @@ -1580,6 +1730,8 @@ intime $1 întoarceţi $2 întorsătu $4 întotdeauna yntotdea'una +dintotdeauna dintotdea'una +învăţă $3 intrăm $2 întredeschizătu $6 intriga $1 @@ -1588,9 +1740,17 @@ intrigi $1 introdus introd'us învătătu $4 invers $1 +iPhone aif'@Un +ipocrizii $4 istambul $3 izbitu $3 +kelemen $1 +kovesi k'oveSi + +japonia $2 +japoniei $2 + lacom $1 lacomi $1 lacrim $1 @@ -1601,13 +1761,16 @@ laser $1 latice $2 latură $1 latex $1 +lauzi l'auzI^ lazăr $1 lăsă $2 lefter $1 legătu $3 +lg eldZ'i liber $1 lider $1 lideri $1 +lili l'ili limit $1 limite $1 limpede $1 @@ -1615,16 +1778,20 @@ lingură $1 lipsi $2 linux $1 literatu $4 +liviu l'ivju logic $1 lovitu $3 lucrăm $2 lucrătu $3 - +ludovic $1 maculatu $4 magistratu $4 +mami m'ami manager m'enedZ@r -manager menedZ@r -mâneci $1 +manole $2 +mânec $1 +mânecă $1 +mânecii $2 manta $2 margini $1 marginii $1 @@ -1632,15 +1799,20 @@ mării $1 maritim $2 marius $1 marker m'ark@r +maro $2 martor $1 martore $1 martori $1 măsu $2 +matei $2 matrice $2 mătură $1 măturătu $4 maxim $1 +mediu m'edju menaje $3 +menţinem $2 +menţineţi $2 mergem $1 mergeţi $1 merit $1 @@ -1652,24 +1824,34 @@ metafore $2 metaforic $3 mia m'ia micul $1 +microsoft m'aIc@-*osoft mie m'ie mijloace $1 mijloc $1 +mimi m'imi minim $1 mişto $2 mişună $1 -moisei moIs'eI +modele $2 +modifică $2 +moisei mois'eI molim $1 +monica $2 molime $1 moscova $1 muget $1 mugete $1 mugur $1 +muia m'uja +muie m'uje murdărie murd@*'ie murmură $1 muzica $1 muzik $1 - +naturii $3 +năvăli $3 +neregulă $2 +nereguli $2 neted $1 netede $1 netezi $1 @@ -1678,13 +1860,18 @@ nevoi nev'oI nicicum nitSI^k'um nicidecum nitSI^dek'um nimic $2 +nimica $2 nistor $1 nivele $2 +nouă n'ou@ +nostim $1 +nostime $1 +nostimilor $1 +nostimelor $1 novice $2 numai $1 // only număr $1 numărătu $4 - oameni $1 oamenii $1 oareşice oa*eStSe $4 @@ -1692,15 +1879,21 @@ oaspete $1 oaspeţi $1 obicei $3 obiceiu $3 +obţii $2 +obţinu $3 ocol $2 oferă $2 ofere $2 oftă $2 ok ok'eI omăt om'@t +onofrei $3 operăm $3 optim $1 opus op'us +orange 'o@-*indZI^ +oră 'or@ +orban $1 ordin $1 ordine $1 oscar $1 @@ -1724,9 +1917,11 @@ părere $2 părerea $2 păreri $2 părerii $2 +păstră $2 parfum $2 parodii $3 parodi pa*od'i +parole $2 partene $3 partener $3 partenere $3 @@ -1761,6 +1956,7 @@ permitem $2 permiteţi $2 petrecem $2 petreceţi $2 +philips $1 picătu $3 pictor $1 pictori $1 @@ -1794,14 +1990,19 @@ prefacem $2 prefaceţi $2 preling $2 pretutindeni $3 +preşedinţie p@-*eSedints'ie pricepem $2 pricepeţi $2 pricin $1 prietenie p@-*jeten'ie prieten p@-*j'eten prietenului p@-*j'etenuluI +preocupă $4 +prezentă $3 privi $3 +proaspăt $1 proaspeţi $1 +proaspete $1 procedu $3 produs p*od'us profesor $2 @@ -1812,17 +2013,26 @@ promiteţi $2 propice $2 propui $2 propus prop'us -protocol $4 +prostie p@-*ost'ie + +protocol $3 +protocoale $3 +protejă $3 punem $1 puneţi $1 putere $2 puterea $2 puteri $2 puterii $2 +puternici $2 +putu $2 răcnet $1 răcnete $1 radar $1 +rahova $1 +rds 'erde'es +real re'al răget $1 răgete $1 rămâi $2 @@ -1836,6 +2046,7 @@ râsete $1 răsputeri $3 recepţione $4 reci $1 +recunoscu $3 recuperăm $4 regelui $1 regizor $2 @@ -1844,6 +2055,7 @@ reguli $1 reparăm $3 repede $1 repezi $1 +replică $1 rest $1 restu $1 reţinem $2 @@ -1853,12 +2065,15 @@ ridic $2 ridică $2 ridice $2 robert $1 +roberta $2 romînia $3 rotocol $3 - +ronald $1 +rulă $2 sadea $2 sadic $1 saltea $2 +samsung $1 sâmbăta $1 sarcin $1 sarcini $1 @@ -1867,6 +2082,7 @@ scăderea $2 scăderii $2 scăderile $2 scăderilor $2 +scanner sk'en@r scoatem $1 scoateţi $1 scrâşnet $1 @@ -1880,19 +2096,19 @@ sedus sed'us semene $1 semiprodus semip*od'us şenile $2 -sergiu s'ergju +senzor $1 +sergiu s'erdZju servicii $2 -serviciile $2 -serviciile $2 -serviciilor $2 -serviciul $2 -serviciului $2 +serviciul serv'itSjul +//serviciului $2 serviciu serv'itS'ju +server $1 sigur $1 simbolic $2 sincer $1 singur $1 singure $1 +şefia Sef'ia şmecher $1 şniţel $1 şoarece $1 @@ -1914,6 +2130,7 @@ standard $1 standarde $1 staroste $1 statuie $2 +stătu $2 ştergem $1 ştergeţi $1 ştie St'ie @@ -1923,24 +2140,28 @@ strecurăm $3 strigăt $1 strigăte $1 structu $2 - studie $2 +subordine $2 şubred $1 şubrede $1 sufăr $1 suflet $1 suflete $1 şuier $1 +suit su'it sunet $1 sunete $1 super $1 suprapus sup@-*ap'us +supremaţie sup@-*emats'ie supus sup'us +nesupus nesup'us surplus su*pl'us suspus susp'us susţinem $2 susţineţi $2 şedere $2 +stocă $2 tabache $3 tăcere $2 @@ -1949,6 +2170,7 @@ tăceri $2 tăcerii $2 tăcu $2 tânăr $1 +tabăra $1 ţandăra $1 ţăndări $1 tango $2 @@ -1958,8 +2180,10 @@ tăviţă $2 ţanţoş $1 târcol $2 tării $1 +tăviţe $2 târziu tyrz'iu tastatu $3 +tati t'ati ] tatăl $1 taxi t'aksi ţeapăn $1 @@ -1973,22 +2197,25 @@ terapii $3 termen $1 termeni $1 termin $1 +termine $1 ţinem $1 ţineţi $1 +ţinu $2 ţipete $1 totdeauna totdea'una tovarăş $2 tovarăşi $2 -tradus trad'us +tradus t@-*ad'us tragem $1 trageţi $1 +trăi t@-*@'i trăsătu $3 treacăt $1 -trebuia $3 trecem $1 treceţi $1 trecu $2 tremură $1 +trio t@-*'io trimitem $2 trimiteţi $2 trosnet $1 @@ -1999,18 +2226,25 @@ tunete $1 turele $2 turnă $2 +ţării $1 + ucidem $2 ucideţi $2 uitătu $3 ulei $2 ultim $1 ultime $1 +umbli 'umbli +umpli 'umpli +umplem $1 +umpleţi $1 umăr $1 umed $1 umede $1 umezi $1 umflătu $3 undeva $3 +upc upetS'e urăm $2 urătu $3 urlet $1 @@ -2018,16 +2252,23 @@ urlete $1 urzicătu $4 uscătu $3 usturătu $4 +utile $2 +unghiul 'ungjul +tri'unghiul t*iungjul +weber $1 windows 'wind@Us văduvă $1 văduve $1 văietătu $4 vâlvătăi $3 +vânătăi $3 +vântură $3 vărsătu $3 vărul $1 văzu $2 +valencia val'ensja vasile $2 vătămătu $4 veder $2 @@ -2043,6 +2284,7 @@ victime $1 victor $1 victorii $2 vie v'ie +view v'ju viitu $2 vindem $1 vindeţi $1 @@ -2056,6 +2298,8 @@ vitrege $1 vitregi $1 vizavi $3 vizită $1 +vodafone v'odafon +voila vual'a volum vol'um vopsea $2 voucher v'aUtS@r @@ -2065,6 +2309,7 @@ vultur $1 vulturi $1 vulturii $1 +yahoo jah'u zâmbet $1 zâmbete $1 zahăr $1 diff --git a/dictsource/ro_rules b/dictsource/ro_rules index b971f44f..92b3f79d 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -1,9 +1,10 @@ + // translation rules for Romanian // This file is UTF-8 encoded -// replace s-comma, t-comma by s-cedilla, t-cedilla +// replace s-comma, t-comma by s-cedilla, t-cedilla .replace ș ş ț ţ @@ -11,113 +12,123 @@ Ț ţ .group a - a a - ai aI - ai (a aj - ai (_ 'aI - au aU // ?? only at end of word ?? - c) au (t au - au (_ 'aU - a (AAA a - &) a (_S1q a + a a + ai aI + ai (a aj + ai (_ 'aI + n) ai ((v ai + au aU // ?? only at end of word ?? + c) au (t au + au (d au + au (z au + au (r au + au (st au + _l) au (d 'au + au (_ 'aU + a (AAA a + &) a (_S1q a - gi) a (_S1q a - V@) a (N_ 'a - ăi) a (_ 'a - @) abil (_ 'abil + gi) a (_S1q a + V@) a (N_ 'a + ăi) a (_ 'a + @) abil (_ 'abil _) anti (@P4 anti - @) ale (_ 'ale - @ion) a (_ 'a + @) ale (_ 'ale + @ion) a (_ 'a .group ă - ă @ - ăi (_ @I - ău @U // ?? only at end of word ?? - c) ău (t @u - ău (_ '@U - @) ăte (_S3t @te - @) ătă (_S3t @t@ + ă @ + ăi (_ @I + ău @U // ?? only at end of word ?? + c) ău (t @u + _b) ău (t @u + _l) ău (d @u + _d) ău (n @u + ău (_ '@U + @) ăte (_S3t @te + @) ătă (_S3t @t@ @) ătul (_S4t @tul @) ătele (_S5t @tele @) ătului (_S6t @tuluI @) ătelor (_S6t @telor - &) ă (_S1 @ - &ec) ă (_ @ - @ăC) ă (_ @ - @er) ă (_ @ - @iţ) ă (_ @ - @) ă (Că_ =@ - ări (A_ @*'i - ării (_ @*'iI - ări (AA_ @*'i - @) ăie (_ =@Ie + &) ă (_S1q @ + &ec) ă (_ @ + @ăC) ă (_ @ + @er) ă (_ @ + @iţ) ă (_ @ + @) ă (Că_ =@ + ări (A_ @*'i + ării (_ @*'iI + ări (AA_ @*'i + @) ăie (_ =@Ie .group â - â y - âi yI - âu yU - @) âie (_ =yIe + â y + âi yI + âu yU + @) âie (_ =yIe .group b - b b - bb b + b b + bb b - @) b (i_ b; - @) b (il_ =b - @) b (ila_ =b - @) b (ili_ =b - @) b (ilii_ =b + @) b (i_ b; + @) b (il_ =b + @) b (ila_ =b + @) b (ili_ =b + @) b (ilii_ =b @) b (ilului_ =b @) b (ililor_ =b - @) b (ilile_ =b - mo) bil (_ b'il + @) b (ilile_ =b + mo) bil (_ b'il .group c - c k - c (e tS - c (i tS - ci (o tS - cii tSiI - ch k - @@) col (_ =kol - @@) coli (_S1t =I^ - @@) cole (_S1t e - @) cni (_ kn'i - @) cnea (_ kne'a + c k + c (e tS + c (i tS + ci (o tS + cii tSiI + ch k + @@) col (_ =kol + @@) coli (_S1t =I^ + @@) cole (_S1t e + @) cni (_ kn'i + @) cnea (_ kne'a .group d - d d - dd d - @) d (i_ d; + d d + dd d + @) d (i_ d; .group e - e e - _) ei eI - ei (_ eI + e e + _) ei eI + ei (_ eI // eu eU // only at end of word ?? // eu e[u // ?? - @) eu (l_ 'eu - @) eu (_ eu - @) eu (_N 'eU - ea ea - &) ea (_S2q ea - &) eSi eaj - eau eaw - eo eo - e (AAA e - @) eş (_ =eS + @) eu (l_ 'eu + @) eu (_ eu + @) eu (_N 'eU + ea ea + &) ea (_S2q ea + &) eSi eaj + eau eaw + eo eo + d) eo (seb e|o + e (AAA e + @) eş (_ =eS - @) eşul (_ =eSul - @) eşi (_ =eSI^ - @) eşului (_ =eSuluI - @) eşilor (_ =eSilor + @) eşul (_ =eSul + @) eşi (_ =eSI^ + @) eşului (_ =eSuluI + @) eşilor (_ =eSilor //@) ec (a_ =ek //@) ec (ă_ =ek @@ -126,355 +137,361 @@ //@) ec (ilor_ =etS //@At) ec (i@_ etS //@At) ec (A_ ek - @At) ec (ii_ etS + @At) ec (ii_ etS // &) es (_S1q e - &C) e (re_ %e - _ac) ee (a eI + &C) e (re_ %e + _ac) ee (a eI - r) ei (er_ 'eI - @) e (re_ =e - @) e (ri_ =e - @) e (rea_ =e - @) e (rii_ =e - @) e (rei_ =e - i) e (re_ e - i) e (ri_ e - i) e (rii_ e - i) e (rea_ e - @) e (ra_ =e - @) e (ră_ =e - @f) e (ra_ e - @f) e (ra_ e - i) e (ră_ e - i) e (ra_ e - eoa eO'a + r) ei (er_ 'eI + @) e (re_ =e + @) e (ri_ =e + @) e (rea_ =e + @) e (rii_ =e + @) e (rei_ =e + i) e (re_ e + i) e (ri_ e + i) e (rii_ e + i) e (rea_ e + @) e (ra_ =e + @) e (ră_ =e + @f) e (ra_ e + @f) e (ra_ e + i) e (ră_ e + i) e (ra_ e + eoa eo'a .group f - f f - ff f - @) f (i_ f; + f f + ff f + @) f (i_ f; .group g - g g - g (e dZ - g (i dZ - gii dZiI - gh g - &) gii (_ dZ'iI -&) gi (A_ dZi + g g + g (e dZ + g (i dZ + gii dZiI + gh g + &) gii (_ dZ'iI + &) gi (A_ dZi .group h - h h - @) h (i_ C + h h + @) h (i_ C .group i - i i - i (A j + i i + i (A j + @) i (e_ j + &C) i (_NS1q i/ + &) i (_NS1q i + &) i (-NS1q i // don't reduce to [I^] if a hyphen follows + ţ) i (-Că i + ţ) i (-Ci i + ţ) i (-l i + ţ) i (-ne i + &') i (_ i + ţi-) i (_ _ // combined with previous word as [iI] + Cr) i (_+++ i + V&) i (N_ 'i // verb + ăC) ia (_ 'ia + âC) ia (_ 'ia + ăC) ie (_ 'ie + âC) ie (_ 'ie - @) i (e_ j - &C) i (_NS1q i/ - &) i (_NS1q i - &) i (-NS1q i // don't reduce to [I^] if a hyphen follows - ţ) i (-Că i - ţ) i (-Ci i - - ţ) i (-l i - ţ) i (-ne i - &') i (_ i - ţi-) i (_ _ // combined with previous word as [iI] - Cr) i (_ i - V&) i (N_ 'i // verb - ăC) ia (_ 'ia - âC) ia (_ 'ia - ăC) ie (_ 'ie - âC) ie (_ 'ie - - g) i (ne_ =i - g) i (nea_ =i + g) i (ne_ =i + g) i (nea_ =i c) i (uC - cţ) ie (_ =ie - cţ) iei (_ =ieI - cţ) ia (_ =ja - graf) ie (_ 'ie - graf) ia (_ 'ia - graf) iei (_ 'ieI - graf) ii (_ 'iI - scop) ie (_ 'ie - scop) ia (_ 'ia - scop) iei (_ ieI - scop) ii (_ 'iI - er) ia (_ 'ia - er) iei (_ 'ieI - on) ie (_ 'ie - on) ia (_ 'ia - on) iei (_ 'ieI - uş) ie (_ 'ie - uş) ia (_ 'ia - uş) iei (_ 'ieI + cţ) ie (_ =ie + cţ) iei (_ =ieI + cţ) ia (_ =ja + graf) ie (_ 'ie + graf) ia (_ 'ia + graf) iei (_ 'ieI + graf) ii (_ 'iI + nom) ie (_ 'ie + nom) ia (_ 'ia + nom) iei (_ 'ei + scop) ie (_ 'ie + scop) ia (_ 'ia + scop) iei (_ ieI + scop) ii (_ 'iI + fil) ie (_ 'ie + fil) ia (_ 'ia + fil) iei (_ 'ei + er) ia (_ 'ia + er) iei (_ 'ieI + on) ie (_ 'ie + on) ia (_ 'ia + on) iei (_ 'ieI + uş) ie (_ 'ie + uş) ia (_ 'ia + uş) iei (_ 'ieI // @) ie (_S1q ie + iei (_ 'ieI + ii iI + &) ii (_S2q iI + iii iji + iu (_ iU + iu ju - iei (_ 'ieI - ii iI - &) ii (_S2q iI - iii iji - iu (_ iU - iu ju + &) ic (_ =ik + &) ica (_ =ika + &) ice (_ =itSe + &) icile (_ =itSile + &) icilor (_ =itSilor + @) icii (_ =itSiI + @) icei (_ =itSeI - &) ic (_ =ik - &) ica (_ =ika - &) ice (_ =itSe - &) icile (_ =itSile - &) icilor (_ =itSilor - @) icii (_ =itSiI - @) icei (_ =itSeI + scr) i (e 'i + &) ing (_ %iNg // foreign words - scr) i (e 'i - &) ing (_ %iNg // foreign words + i (t_ 'i + ioa jO'a - i (t_ 'i - ioa iO'a - - @) işte (_ =iSte - @) iştea (_ =iStea + @) işte (_ =iSte + @) iştea (_ =iStea @) i (ţă_++++++++ =i - @) i (ţe_ =i - @) i (ţei_ =i - @) i (ţelor_ =i - -) i (_ j - @) i (ţele_ =i + @) i (ţe_ =i + @) i (ţei_ =i + @) i (ţelor_ =i + -) i (_ j + @) i (ţele_ =i .group î - î y - @) î (_ 'y + î y + @) î (_ 'y .group j - j Z - @) j (i_ Z; + j Z + @) j (i_ Z; .group k - k k + k k .group l - l l - ll l - @) l (i_ l; - _) l (_ le - -) l (_ l // -l + l l + ll l + @) l (i_ l; + _) l (_ le + -) l (_ l // -l - iu) l (_S1t l - &) le (_S2t le - &) lor (_S3t lor - &) lui (_S3t luI + iu) l (_S1t l + &) le (_S2t le + &) lor (_S3t lor + &) lui (_S3t luI .group m - _) m (_ me - m m - mm m - @) m (i_ m; - _) m (-a m + _) m (_ me + m m + mm m + @) m (i_ m; + _) m (-a m - -) mi (_ mi/ + -) mi (_ mi/ .group n - _) n (_ ne - n n - @) n (i_ n; - n (g N - n (k N - @) n (tic_ =n - @) n (ic_ =n - _) n (-a n - -) n (_ n + _) n (_ ne + n n + @) n (i_ n; + n (g N + n (k N + @) n (tic_ =n + @) n (ic_ =n + _) n (-a n + -) n (_ n -@itudi) ne (_S2t ne -@itudi) nea (_S3t nea -@itudi) nii (_S3t niI -@itudi) ni (_S2t ni +@itudi) ne (_S2t ne +@itudi) nea (_S3t nea +@itudi) nii (_S3t niI +@itudi) ni (_S2t ni @itudi) nile (_S4t nile @itudi) nilor (_S5t nilor .group o - o o - oa Oa - oai Oaj - _) oi oI - oi (_ 'oI - ou oU - ou (_N 'oU - ou (_ ou - o (AAA o + o o + oa Oa + oai Oaj + _) oi oj + oi (_ 'oj + ou oU + ou (_N 'oU + ou (_ ou + o (AAA o .group p - p p - pp p - @) p (i_ p; - + p p + pp p + @) p (i_ p; + ph f .group q - q k - qu kw + q k + qu kw .group r - r r - rr r - A) r (A * - C) r (A @-* - rr *r - A) r (i_ *; - - _) re (@P2T re - _) re (gul re + r r + rr r + A) r (A * + C) r (A @-* + rr *r + A) r (i_ *; + r (ă_ * + _) re (@P2T re + _) re (gul re @u) ri (_NS2t rI^ - C) ri (_ @-*i - @u) rii (_S3t riI + C) ri (_ @-*i + @u) rii (_S3t riI @u) rile (_S4t rile @u) rilor (_S5t rilor - @) răm (_S1t m + @) răm (_S1t m @) răţi (_S4t *@tsI^ - @u) re (_S2t *e + @u) re (_S2t *e .group s - _) s (_ se - _) s (-a s - s s - -) s (_ s - sh S - ss s + _) s (_ se + _) s (-a s + s s + -) s (_ s + sh S + ss s &) sprezece (_S8t sp@-*ez,etSe - @) sem (_S1t m - @) seră (_S2t *@ + @) sem (_S1t m + @) seră (_S2t *@ @) serăm (_S3t *@m @) serăţi (_S4t *@tsI^ - @) seşi (_S2t SI^ - @) sni (_ sn'i + @) seşi (_S2t SI^ + @) sni (_ sn'i .group ş - ş S - @) ş (i_ S; + ş S + @) ş (i_ S; - @) şni (_ Sn'i - -) şi (_ SI^ + @) şni (_ Sn'i + -) şi (_ SI^ .group t - t t - tt (_ t - @) t (i_ t; + t t + tt (_ t + @) t (i_ t; - ts ts - tz ts - tt t + ts ts + tz ts + tt t .group ţ - ţ ts - @) ţ (i_ ts; + ţ ts + @) ţ (i_ ts; // @) ţi (-mă ts;'i // @) ţi (-vă ts;'i // @) ţi (-le ts;'i // @) ţi (-i ts;'iI // @) ţi (-l ts;'i - -) ţi (_ ts;i/ + -) ţi (_ ts;i/ .group u - u u - u (A w - _) ui uI - ui (_ 'uI - r) ui (n ui - ui (e wi - V&) ui (_N u'i + u u + u (A w + uia (_ uj'a + _) ui uI + ui (_ 'uI + r) ui (n ui + ui (e wi + V&) ui (_N u'i - dest) ul ul - &) ul (_S2t ul - @ic) ul (_S2t ul - @ic) ule (_S3t ule + dest) ul ul + &) ul (_S2t ul + @ic) ul (_S2t ul + @ic) ule (_S3t ule @ic) ului (_S4t uluI - @ic) uri (_S3 urI^ + @ic) uri (_S3 urI^ @ic) urile (_S5 urile &) ului (_S4t uluI - @) us (_S2t us + @) us (_S2t us @) usul (_S4t usul @) usuri (_S5t usuri @) usului (_S6t usuluI @) usurile (_SS´7t usurile @) usurilor (_S8t usurilor - @ăC) u (N_ 'u - @) um (_S2t um + @ăC) u (N_ 'u + @) um (_S2q um @) umul (_S4t umul @) umului (_S6t umuluI @) umuri (_S5t umuri @) umurile (_S7t umurile @) umurilor (_S8t umurilor - c) um (_ um - @) uie (_ =wie + c) um (_ um + @) uie (_ =wie .group v - v v - @) v (i_ v; + v v + @) v (i_ v; .group w - w w + w w .group x - x ks - e) x (a gz - e) x (e gz - e) x (i gz - me) x (ic ks - e) x (iA_ ks - e) x (iu ks - e) x (Ag ks - le) x ks + x ks + e) x (a gz + e) x (e gz + e) x (i gz + ) x (e_ ks + _ale) x ks + me) x (ic ks + e) x (iA_ ks + e) x (iu ks + e) x (Ag ks + le) x (+ ks .group y - y i - y (A j + y i + y (A j .group z - z z - zz z - @) z (i_ z; + z z + zz z + @) z (i_ z; .group - ö Y - D_) % la_sut@ - % p@-*otSent - $ dolar + ö Y + D_) % la_sut@ + % p@-*otSent + $ dolar - , (D v'irgul@ + , (D v'irgul@ - __) - (_D m'inus - A_) - (_D _ - C_) - (_D _ + __) - (_D m'inus + A_) - (_D _ + C_) - (_D _ diff --git a/dictsource/ta_list b/dictsource/ta_list index 0e0fdcab..1b5e225c 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -196,7 +196,6 @@ tamil தமிழ் $text பாகவதம் $alt பகவத் $alt பங்கம் $alt -பீடி $alt பீதி $alt பேகம் $alt பார்லி $alt @@ -210,6 +209,29 @@ tamil தமிழ் $text பாக்கி $alt பலி $alt போதி $alt +பலத்த $alt +புத்தி $alt +படா $alt +பால $alt +பாம்ப் $alt +பீராமண $alt +பிரதர் $alt +பால்ய $alt +பலு $alt +பில் $alt +பந்த் $alt +பில்லி $alt +பம்பளிமாஸ் $alt +பட்டர் $alt +பட்டரால் $alt +பைக்கை $alt +பெட்டின் $alt +பெட்டில் $alt +படவா $alt +பாக்கிப் $alt +பாக்கித் $alt +பாக்கிச் $alt +(பி . ஏ) bije: // initial த as [d] @@ -220,8 +242,6 @@ tamil தமிழ் $text தயாநிதி $alt தயாளு $alt துந்துவி $alt -தயவு $alt -தடால் $alt திக் $alt தடக் $alt தீக்ஷை $alt @@ -234,16 +254,32 @@ tamil தமிழ் $text திக்கற்ற $alt தானு $alt திட $alt +தேவ $alt +தோ $alt +தினசரி $alt +தரும $alt +தொப் $alt +தொப்பென்று $alt +தொப்னு $alt +திக்கெட்டும் $alt +தேவா $alt + + + // initial ட +டார்ச் t.a:rtS // initial ச as [tS] -சீ tSi: -சே tSe: +சீ $alt +சே $alt +சீசீ tSi:tSi: +சீச்சீ $alt +சிட்டாய் $alt +சேச்சே $alt கக $alt // initial க as [g] கனம் $alt -கணம் $alt கிலி $alt கில்லி $alt காந்தி $alt @@ -251,8 +287,6 @@ tamil தமிழ் $text கோமதி $alt கயா $alt காயத்ரி $alt -கங்கை $alt -கங்கா $alt கட $alt கோ $alt கதி $alt @@ -260,7 +294,38 @@ tamil தமிழ் $text கச்சாமி $alt குரு $alt கோர $alt +கும் $alt +கும்மென்று $alt +கும்முனு $alt +குருவுக்கு $alt +குருன்னு $alt +குருவே $alt +கண்டம் $alt +கோலி $alt +குப் $alt +கம்னு $alt +கம்மென்று $alt + + +// p as [f] +போன் fo:n +போனில் fo:nil +பைல் faIl +பைலை faIlaI +பாதர் fa:dVr +பாதரிடம் fa:dVrid.Vm +பாதருடன் fa:dVrUd.Vn +பாதரில்லாமல் fa:dVrilla:mVl +காபி ka:fi +பேனில் fe:nil +பேன்ல fe:nlV +போன்ல fo:nlV பப pVpV தீப் di:p +டிரேயின் t.re:jn +பைக் baIk +பைக்கில் baIkkIl +தாங்ஸ் Ta:Nks // thanks +டிபுடி d.EpjUt.i // deputy diff --git a/dictsource/ta_rules b/dictsource/ta_rules index 262bfad0..ca14e1ca 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -26,6 +26,9 @@ // க is k when preceded by these .L01 ஷ் ஸ் ட் +// ப is p when preceded by these +.L02 ட் ற் ல் ஷ் ஸ் + // consonants @@ -38,7 +41,7 @@ _) க kV _) க (B k _) க (T gV // if word has $alt attribute in ta_list - _) க (BT g // $alt + _) க (BT+ g // $alt க்க kkV க்க (B kk ற்) க _kV @@ -47,6 +50,7 @@ L01) க (B k க (ிரு k க (ூட k + ங்) க (ொ k க (ீத g க (ஜ gV @@ -63,7 +67,6 @@ _) க (ாண்டாமிருக g _) க (ோந்து g _) க (ாந்த g - _) க (ுண்ட g _) க (ோபுர g _) க (ுகன g _) க (ணபதி gV @@ -71,7 +74,6 @@ _) க (ோதுமை g _) க (ுகை g _) க (ோஷ g - _) க (ுண g _) க (தியில் gV _) க (டிகார gV வி) க்ட (ோரியா kt. // victoria @@ -110,6 +112,39 @@ _) க (ாண்டீப g _) க (ர்வ gV _) க (ுருவா g + _) க (னம gV + _) க (னத் gV + _) க (ுண்டு g + _) க (ுண்டன g + _) க (ுண்டர g + _) க (ுண்டடி g + _) க (ுண்டாக g + _) க (ுண்டாய g + _) க (ுணம g + _) க (ுணங் g + _) க (ுணத் g + _) க (ண்டங் gV + _) க (ுண்டம்மா g + _) க (டப்பாரை gV + _) க (ோலிக g + _) க (ோலிய g + _) க (ானம g + _) க (ானங் g + _) க (ானத்த g + _) க (திகலங் gV + _) க (ுப்பென்ற g + _) க (ுபீர g + _) க (ும்பல g + _) க (ும்மிருட்ட g + _) க (ப்பென்ர gV + _) க (ங்கை gV + _) க (ங்கா gV + _) க (ுபுக் g + _) க (லாட்டா gV + _) குண்டாந்த (டி gun.d.a:ntV + _) க (லீர gV + _) க (ோல்மால g + _) க (வாஸ்கர gV _கல்) க (ி k _கல்) க (ண்ட kV @@ -117,8 +152,20 @@ கொல்) க (த்தா kV கோயில்) க (ாளை k _) குல்க (ந்த gulkV - _ராஜ) க (ும k - _ராஜ) க (ுல k + க (வி kV + க (ுல k + க (ுமார k + தின) க (ர kV + பிரபா) க (ர kV + சுதா) க (ர்_ kV + சுதா) க (ரிட kV + சுதா) க (ரின kV + மது) க (ர kV + திவா) க (ர kV + + _) கி (ராம g + _) கி (ரகண g + நற்) க (ுண g .group ங @@ -131,6 +178,8 @@ ச (B s _) ச sV _) ச (B s + _) ச (T tSV + _) ச (BT tS ச்ச tS:V ச்ச (B tS: ட்) ச tSV @@ -139,14 +188,19 @@ ற்) ச (B tS ஞ்) ச dZV ஞ்) ச (B dZ - ச் (_ tS + ச் (_N tS ச்_) ச tSV // previous word ends in ச் ச்_) ச (B tS _) ச (ெண்ட tS + _) சாம்ப (ியன tSa:mp - _) ச (ிட் tS _) ச (ின் tS + _) ச (ிட்டு tS + _) ச (ிட்டாட்ட tS + _) ச (ிட்டி tS + _) ச (ிட்ல tS _) ச (ேரி tS + _) ச (ெஸ் tS _) ச (ப்பாத்தி tSV _) ச (ெட்டியார tS @@ -160,14 +214,21 @@ _) ச (ித்ரா tS _) ச (ெல்லம tS _) ச (துர் tSV + ச (ந்திர tSV வி) ச (ித்திர tS + சு) சித (்ரா tSit + _) ச (ிட்டாக tS _) சிரு (ஷ்டி sri + சீ (னிவாச sri: ச (ாந்தி s. ச (ண்மு s.V சங்க (ர s.VNkV ச (ண்பக s.V ச (ெண்பக s. + சு (வாரஸ்ய s + சு (வாமி s + சி (ரம s .group ஜ @@ -193,6 +254,17 @@ ிங்) ட (ன் t.V // -ington _) ட (ாக்க t. // talkies _) டிராக்ட (ர t.ira:gt.V + _) ட (யர t.V + _) ட (ைம்_ t. + டெலிப (ோன t.elif + _) ட (ம்ப்ளர t.V + _) ட (ிக்க t. + _) ட (ிராம t. + _) ட (வுன t.V + _) டென்டுல்க (ர t.ent.UlkV + + _) டிரேயின (ை t.re:jn + .group ண ண n.V @@ -205,13 +277,15 @@ _) த tV _) த (B t _) த (T dV // if word has $alt attribute in ta_list - _) த (BT d // if word has $alt + _) த (BT+ d // if word has $alt த்த ttV த்த (B tt க்) த tV க்) த (B t ஸ்) த tV ஸ்) த (B t + ப்) த tV + ப்) த (B t // exceptions, த as [d] _) த (ர்ம dV @@ -220,8 +294,10 @@ _) த (ெய்வ d _) த (ுஷ் d _) த (க்ஷிணா dV - _) த (ண்ட dV - _) த (ண்டவாள tV + _) த (ண்டன dV + _) த (ண்டம dV + _) த (ண்டத் dV + _) த (ண்டக் dV _) த (ருமி dV _) த (ர்பை dV _) த (ாவா d @@ -243,6 +319,7 @@ _) த (ிரவிய d _) த (ூப d _) த (ீப d + _) த (ீப்ப t _) த (ைரிய d _) த (ிடீர d _) த (ிடப d @@ -251,9 +328,11 @@ _) த (ிரவ d _) த (ிடீ d _) த (ிவச d - _) த (ியான d + _) தி (யான dj _) த (ானிய d _) த (ுக்க d + _) த (ுக்கிரி t + _) த (ுக்கடா t _) த (ிகில d _) த (ூம d _) த (ாவணி d @@ -275,6 +354,7 @@ _) த (டியர dV _) த (ிக்கு d _) த (ிக்கு_வாய t + _) த (ிக்கு_முக்க t _) த (ிக்கில d _) த (னபால dV _) த (னசேகரன dV @@ -292,7 +372,9 @@ _) த (ட்சிண dV _) த (ன்ராஜ dV _) த (ாராபுர d - _) த (டி_மாட dV + _) த (டிJ_மாட dV + _) த (டிJ_புத்தக dV + _) த (டிJ_பயல dV _) த (ேவன d _) த (ேவி d _) த (ேவர்க d @@ -314,8 +396,36 @@ _) த (ேவேந் d _) த (ரிசி dV _) த (ுரை d - _) த (ேவ d _) த (ூசி d + _) த (ம்பதி dV + _) த (ிவான d + _) த (ினேஷ d + _) த (ாராள d + _) து (வேச d // dv + _) து (வேஷ d // dv + _) த (ருமன dV + _) த (ருமர dV + _) த (ண்டபாணி dV + _) த (ண்டாயுதபாணி dV + _) த (ண்டித் dV + _) த (ரிசனங் dV + _) த (ேவகி d + _) த (கி dV + _) த (ாயாதி d + _) த (ுட்ட d + _) த (ொம் d + _) த (டபுடல dV + _) த (டால dV + _) த (ம்பிடி dV + _) த (ிக்கை d + _) த (ிக்கே d + _) த (ேவாமிருத d + _) த (ுச்சம d + _) த (ொபுக் d + _) த (ினந் d + _) த (யவ dV + _) த (ிவாகர d + யு) த்த ddV யு) த்த(B dd @@ -323,6 +433,7 @@ பு) த்த (ியி dd பு) த்த (ர ddV பு) த்த (ன ddV + சமு) த்த (ிர dd _சாந்) த (ி t _சும) த (ி t @@ -339,6 +450,9 @@ பிரபாவ) த (ி t _கோம) த (ி t _பிர) த (ீ t + பவி) த (்ரா t + நி) த (்ய t + சி) த (்ரா t _) திரு (ஷ்டி dri _) திரு (திரா dri @@ -364,14 +478,13 @@ _கோம) த (ி t ப (B b _) ப pV _) ப (B p - _) ப (T bV // if word has $alt attribute in ta_list - _) ப (BT b // if word has $alt + _) ப (T+ bV // if word has $alt attribute in ta_list + _) ப (BT+ b // if word has $alt ப்ப ppV ப்ப (B pp - ட்) ப pV - ட்) ப (B p - ற்) ப pV - ற்) ப (B p + L02) ப pV + L02) ப (B p + குஷ்) ப (ு b று) ப _pV று) ப(B _p @@ -383,22 +496,21 @@ _கோம) த (ி t த) ப (B b @) பத (ி pVt + ன்) பத (ி bVd ப (ுர p ப (ால p ப (ாள p ம்) ப (ா b + ப (ூர p - -// _) ப (ால b _) ப (ால் p _) ப (ாலின் p _) ப (ாலை p -// _) ப (ாலில் p _) ப (ாலுடன் p -// _) ப (ாலினுடைய p _) ப (ாலாபிஷேக p _) ப (ாலு b + _) ப (ாலும்_ p _) ப (ானு b _) ப (ீம b _) ப (காசுர bV @@ -414,7 +526,6 @@ _கோம) த (ி t _) பக் (த bVk _) ப (லம bV _) ப (லவான bV - _) ப (ிராமண b _) ப (ிரம்ம b _) ப (ம்பர bV _) ப (லூன bV @@ -493,7 +604,50 @@ _கோம) த (ி t _) ப (லிய bV _) ப (ோதித் b _) ப (ோதன b - + _) ப (ூட்ஸ b + _) ப (ுத்திய b + _) ப (ுத்திக் b + _) ப (ுத்திசாலி b + _) ப (ேஜார b + _) ப (ேதி b + _) ப (த்திரமா bV + _) ப (ேலன்ஸ b + _) ப (ந்தோபஸ்த bV + _) ப (ெல் b + _) ப (ாதகம b + _) ப (ீராமணர b + _) ப (ிரித்தானி b + _) ப (ாதிப்ப b + _) ப (ாதிக்க b + _) ப (லகீன bV + _) ப (லஹீன bV + _) ப (ட்சண bV + _) ப (ீடி b + _) ப (ீடிகை p + _) ப (ீடித்த p + _) ப (ெட்ரூம b + _) ப (ாத்ரூம b + _) ப (ாபுவ b + _) ப (யபக்தி bV + _) ப (ாவனை b + _) ப (ேஷ b + _) ப (ாத்யதை b + _) ப (ில்டிங் b + _) ப (ால்ய b + _) ப (ாவனா b + _) ப (லங் bV + _) ப (ட்டரி bV + _) ப (ட்டரு bV + _) ப (ட்டன bV + _) ப (லப்படு bV + _) ப (ாரத்த b + _) ப (ந்துக்கள bV + _) ப (ந்துவ bV + _) பலாத்க (ார bVla:dk + _) ப (லராம bV + _) ப (ங்கார bV + _) ப (லசாலி bV + _) ப (ூதாகார b கோ) ப (ி p முரன்) ப (ாட p @@ -501,6 +655,27 @@ _கோம) த (ி t முன்) ப (கல pV நன்) ப (கல pV பின்) ப (கல pV + கல்) ப (னா pV + ப (ாதை p + ப (டி pV + ம்) ப (ுரா b + இன்ஸ்) ப (ெக்டர p + எதிர்) ப (ார p + ப (ோது p + ப (ோதிலும் p + ப (ோதும் p + எழும்) ப (ூர b + நாலா) ப (ுற p + ப (ோதும்_+ p + ப (ோதே_+ p + ப (ோல்_ p + + // If ப+ appearing in the middle of a word is followed by ட+ + // and not preceded by ம், then ப should sound as 'pa'. + ப (ட pV + ப (Bட p + ம்) ப (ட bV + ம்) ப (Bட b _) பி (ரம்மன b _) பி (ராமணன b @@ -539,7 +714,32 @@ _கோம) த (ி t _) பி (ரதேச p _) பி (ரசித்தி p _) பி (ரம்ம b - + _) பி (ரமிப்ப b + _) பீ (ராமண b + _) பி (ரித்தானி b + _) பி (ரதர்_ b + _) பி (ராப் p + _) பி (ரத p + _) பி (ரவேசி p + _) பி (ரசவ p + _) பி (ரசங் p + _) பி (ரளய p + _) பி (ராமண b + _) பி (ரார்தி p + _) பி (ரோகிதர p + _) பி (ரஸ்தா p + _) பி (ரஜ p + _) பி (ரமை b + _) பி (ரமுகர p + _) பி (ரயோசன p + _) பி (ரவாக p + _) பி (ரமித் b + _) பிரச (்னை prVtS + _) பி (ரியர p + _) பி (ரவேச p + _) பி (ரயோக p + _) பி (ரக்ஞை p + _) பி (ரயத்தன p // musical notes சா) ப (ா p @@ -574,8 +774,21 @@ _கோம) த (ி t _த) ப (ால b _க) ப (ால b _கா) ப (ந்து bV + சு) ப்ப bbV + சு) ப்ப(B bb + _) ப (ோனை f + _) ப (ோட்டோ f + _) ப (ைல்கள f + _) ப (ோனிலும் f + _சோ) ப (ா f // sofa + _ஆ) ப (ீஸ f // office + _ஆ) ப (ீச f // office + _ஆ) ப (ிஸ f // office + _ஆ) ப (ிச f // office + கிராம) ப (ோன f // gramaphone + _கா) ப (ியை f .group ம ம mV @@ -617,6 +830,7 @@ _கோம) த (ி t .group வ வ vV வ (B v + _) வி (யாபார v .group ஶ @@ -660,6 +874,9 @@ _கோம) த (ி t இ i _) இ (ரா // silent before 'raa' + _) இ (ராக i + _) இ (ரான i + _) இ (லட்சிய // silent ஈ i: diff --git a/phsource/compile_report b/phsource/compile_report index 320ee1d7..8801c780 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,4 +1,4 @@ -58 phoneme tables +59 phoneme tables new total base 99 99 consonants 9 107 @@ -15,12 +15,13 @@ consonants 9 107 de 32 126 eo 13 111 jbo 2 111 + nci 3 120 fi 40 130 - fr 56 138 + fr 55 138 fr_ca 11 138 hi 58 145 ta 20 148 - hu 23 115 + hu 24 116 lv 29 122 nl 24 119 pl 20 113 @@ -45,7 +46,7 @@ consonants 9 107 ru 39 130 vi 41 136 zhy 41 133 - zh 62 150 + zh 64 150 sw 12 108 tr 18 123 ku 18 124 @@ -81,6 +82,7 @@ d/d [d] base [d] base2 [d] fi [d] fr + [d] hu [d] pl [d;] pl [d] hr @@ -91,6 +93,7 @@ d/d_ [d] base [d] fi [d] fr [d.] hi + [d] hu [d] pl [d;] pl [d] hr @@ -103,6 +106,7 @@ d/dr [*] base [d] fr [d.] hi [dh.] hi + [d] hu [d] pl [d;] pl [d] hr @@ -122,6 +126,7 @@ d/xd [d] base [d.] hi [dh] hi [dh.] hi + [d] hu [d] pl [d] hr [d] sr @@ -238,23 +243,32 @@ j2/j2o [;] base j2/j2u [;] base j2/xj2 [;] base j/_j [j] base + [j] zh j/j_ [j] base [j] de + [j] zh j/j@ [j] base [j] de + [j] zh j/ja [j] base [j] de + [j] zh j/je [j] base [j] de + [j] zh j/ji [j] base [j] de + [j] zh j/jo [j] base [j] de + [j] zh j/_j_short [j] de j/ju [j] base [j] de + [j] zh j/xj [j] base [j] de + [j] zh klatt/b [b] base klatt/bh [B] base klatt/dz_pzd [J] base @@ -299,6 +313,7 @@ l/_l [l] base [l] fr [l/] fr [l] hu + [l] zh l/l_ [l/] base [l/3] base [l/] fr @@ -306,7 +321,7 @@ l/l_@ [l/3] base [W] fr [Y] fr [l/] fr -l/l@ [] base +l/l@ [] base [L] base [W] fr [Y] fr @@ -333,14 +348,14 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [] base +l/la [] base [L] base [a] fr [l] fr l/l_a [l/3] base [l/] fr [wA] fr -l/le [] base +l/le [] base [L] base [l] fr l/l_e [l/3] base @@ -349,22 +364,23 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [] base +l/li [] base [L] base [l] fr + [l] zh l/l_i [l/3] base [l/] fr [i] sq l/l_long [l] base [l] fr -l/lo [] base +l/lo [] base [L] base [l] fr l/l_o [l/3] base [l/] fr [o2] fr l^/l_rfx [l.] base -l/lu [] base +l/lu [] base [L] base [l] fr [w^i] fr @@ -495,12 +511,12 @@ r3/r_trill.wav [R2] base [r*] sr [x] pt r3/r_uvl [r"] base - [r] fr - [r/2] fr r3/r_uvl.wav [r"] base r3/rx [*] base [r/] base [r/] af + [r] fr + [r/2] fr [R] fr_ca [x] pt_pt [*;] ro @@ -1407,6 +1423,7 @@ vowel/e_mid2 [E] af [E2] de [E:] de [e] jbo + [e] nci [e] fi [E] nl [e] sk @@ -1486,7 +1503,8 @@ vowel/i_en [i:] en vowel/i_fnt [i:] en_wi [i:] hi [i] pa -vowel/ii [I] en_n +vowel/ii [I] en + [I] en_n [I2] en_n [I] en_rp [I2] en_rp @@ -1855,24 +1873,21 @@ vwl_fr/r@ [r] fr vwl_fr/@R [x] pt_pt vwl_fr/_r2 [r] fr vwl_fr/@R2 [R] fr_ca -vwl_fr/ra [r] fr +vwl_fr/ra [a] fr vwl_fr/r_a [r/2] fr vwl_fr/r_a~ [A~] fr vwl_fr/rA~ [A~] fr vwl_fr/re [r] fr vwl_fr/r_e [r/2] fr -vwl_fr/ri [i] fr - [r] fr +vwl_fr/ri [r] fr vwl_fr/r_i [r/2] fr vwl_fr/ro [r] fr vwl_fr/r_o [o] fr [o2] fr [r/2] fr vwl_fr/ru [r] fr - [u] fr vwl_fr/r_u [r/2] fr -vwl_fr/ry [y] fr - [w^i] fr +vwl_fr/ry [w^i] fr vwl_fr/r_y [y] fr vwl_fr/tr [r] fr vwl_fr/w_a [wA] fr @@ -1984,6 +1999,7 @@ x/d_ [d] base x/d_dnt [d[] base [d] base2 [d] fi + [d] hu [d] pl x/d_pzd [d;] pl x/dzh [J] base diff --git a/phsource/d/xd b/phsource/d/xd index 7ad0392a..a2b1a0d8 100644 Binary files a/phsource/d/xd and b/phsource/d/xd differ diff --git a/phsource/d/xdz b/phsource/d/xdz index d08e3c39..f0ab986b 100644 Binary files a/phsource/d/xdz and b/phsource/d/xdz differ diff --git a/phsource/m/m_ b/phsource/m/m_ index 52cfb80b..565c8996 100644 Binary files a/phsource/m/m_ and b/phsource/m/m_ differ diff --git a/phsource/mbrola/id1 b/phsource/mbrola/id1 index 784cc440..0833d0c8 100644 --- a/phsource/mbrola/id1 +++ b/phsource/mbrola/id1 @@ -17,12 +17,13 @@ volume 32 0 l- NULL 0 l 0 w/ NULL 0 w 0 j/ NULL 0 j +0 a/ NULL 0 V 2 ; i 0 NULL 0 ; NULL 0 NULL 0 - NULL 0 NULL 0 g- NULL 0 NULL 0 @- NULL 0 NULL -0 * NULL 0 r +0 * NULL 0 NULL 0 R2 NULL 0 r 0 R NULL 0 r @@ -40,4 +41,3 @@ volume 32 0 R NULL 0 r 0 x NULL 0 h - diff --git a/phsource/n^/n^@ b/phsource/n^/n^@ index 59ca9722..771f8266 100644 Binary files a/phsource/n^/n^@ and b/phsource/n^/n^@ differ diff --git a/phsource/n^/n^a b/phsource/n^/n^a index c66e6f11..501515c1 100644 Binary files a/phsource/n^/n^a and b/phsource/n^/n^a differ diff --git a/phsource/n^/n^e b/phsource/n^/n^e index 9eb97247..f99e003a 100644 Binary files a/phsource/n^/n^e and b/phsource/n^/n^e differ diff --git a/phsource/n^/n^i b/phsource/n^/n^i index 38dc32ea..a8e5c022 100644 Binary files a/phsource/n^/n^i and b/phsource/n^/n^i differ diff --git a/phsource/n^/n^o b/phsource/n^/n^o index c1ac32a1..e5491001 100644 Binary files a/phsource/n^/n^o and b/phsource/n^/n^o differ diff --git a/phsource/n^/n^u b/phsource/n^/n^u index e4a261b9..8d437ce2 100644 Binary files a/phsource/n^/n^u and b/phsource/n^/n^u differ diff --git a/phsource/ph_english b/phsource/ph_english index 60c8825f..90b45b2f 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -164,6 +164,9 @@ phoneme I vowel starttype #i endtype #i length 130 IfNextVowelAppend(;) + IF nextPhW(isVel) THEN + FMT(vowel/ii) + ENDIF FMT(vowel/ii_2) endphoneme diff --git a/phsource/ph_french b/phsource/ph_french index cf20ace6..9e2976a2 100644 --- a/phsource/ph_french +++ b/phsource/ph_french @@ -1,7 +1,7 @@ //==================================================== // French //==================================================== -// Updated 2009-10-13 Michel Such +// Updated 2010-02-09 Michel Such phoneme #l virtual // Used for l and l/ @@ -31,7 +31,7 @@ phoneme r NextVowelStarts VowelStart(vwl_fr/r@) - VowelStart(vwl_fr/ra) + VowelStart(NULL) VowelStart(vwl_fr/re) VowelStart(vwl_fr/ri) VowelStart(vwl_fr/ro) @@ -43,23 +43,17 @@ phoneme r ELIF prevPhW(p) OR prevPhW(k) THEN FMT(vwl_fr/tr) ELIF prevPhW(t) THEN - FMT(vwl_fr/tr) addWav(r3/r_uvl,30) + FMT(vwl_fr/tr) addWav(r3/rx,30) ENDIF IF thisPh(isWordStart) THEN IF prevPh(isVowel) OR prevPh(isPause) OR prevPh(#l) OR prevPh(r/2) THEN FMT(vwl_fr/_r) ENDIF - FMT(vwl_fr/_r2) addWav(r3/r_uvl, 25) + FMT(vwl_fr/_r2) addWav(r3/rx, 15) ENDIF - FMT(vwl_fr/r) addWav(r3/r_uvl,25) -endphoneme - - -phoneme R // First letter of a word - import_phoneme fr/r - lengthmod 0 + FMT(vwl_fr/r) addWav(r3/rx,25) endphoneme @@ -94,7 +88,7 @@ phoneme r/2 // variant of [r] when not preceding a vowel EndSwitch IF prevPh(isVowel) THEN - FMT(vwl_fr/r_) addWav(r3/r_uvl, 30) + FMT(vwl_fr/r_) addWav(r3/rx, 30) ELIF prevPh(m) OR prevPh(n) THEN FMT(r3/r_n) ENDIF @@ -193,6 +187,9 @@ phoneme a VowelStart(l/la, -15) ENDIF + IF prevPh(#r) THEN + VowelStart(vwl_fr/ra) + ENDIF FMT(vowel/a_6) endphoneme @@ -231,10 +228,6 @@ phoneme i IfNextVowelAppend(;) - IF prevPh(#r) THEN - VowelStart(vwl_fr/ri, -30) - ENDIF - FMT(vowel/i_2) endphoneme @@ -318,11 +311,7 @@ phoneme u length 170 IF nextPh(i) THEN - Length 50 - ENDIF - - IF prevPh(R) THEN - VowelStart(vwl_fr/ru, -10) + Length 50 ENDIF FMT(vowel/u_bck2) @@ -340,10 +329,6 @@ phoneme y vowel starttype #u endtype #u length 170 - IF prevPh(#r) THEN - VowelStart(vwl_fr/ry) - ENDIF - IF nextPh(l/) THEN VowelEnding(l/l_y, -30) ENDIF @@ -425,13 +410,12 @@ endphoneme phoneme A~ vowel starttype #a endtype #a length 190 - - IF prevPh(#r) THEN - VowelStart(vwl_fr/rA~) - ENDIF IF nextPh(r/2) THEN VowelEnding(vwl_fr/r_a~) ENDIF + IF prevPh(#r) THEN + VowelStart(vwl_fr/rA~) + ENDIF FMT(vnasal/aa_n4) endphoneme @@ -553,7 +537,7 @@ phoneme g FMT(g/g_) addWav(x/g_) ENDIF - FMT(g/g) addWav(x/g, 20) + FMT(g/g) addWav(x/g, 20) endphoneme @@ -721,7 +705,7 @@ phoneme z vcd alv frc sibilant voicingswitch s lengthmod 6 - Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 + Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 IF nextPh(isPause2) THEN FMT(voc/z_) addWav(ufric/s_, 45) diff --git a/phsource/ph_hungarian b/phsource/ph_hungarian index dab87b2b..ad4f0e8e 100644 --- a/phsource/ph_hungarian +++ b/phsource/ph_hungarian @@ -104,6 +104,12 @@ phoneme ts endphoneme +phoneme dz + import_phoneme consonants/dz + voicingswitch ts +endphoneme + + phoneme t // dental variant of /t/ vls dnt stop lengthmod 2 @@ -117,12 +123,29 @@ phoneme t // dental variant of /t/ endphoneme -phoneme d // dental variant of /d/ - import_phoneme base/d[ +phoneme d + vcd dnt stop voicingswitch t + lengthmod 5 + Vowelin f1=2 f2=1500 -300 300 f3=-150 80 + Vowelout f1=2 f2=1500 -300 300 f3=-150 80 + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(d/d_) addWav(x/d_dnt) + ELIF nextPh(r) THEN + FMT(d/dr) addWav(x/d_dnt, 110) + ENDIF + + FMT(d/d) addWav(x/d_dnt, 110) endphoneme + + phoneme c import_phoneme consonants/c2 voicingswitch J diff --git a/phsource/ph_romanian b/phsource/ph_romanian index 8a9d053a..b1c0c8a1 100644 --- a/phsource/ph_romanian +++ b/phsource/ph_romanian @@ -1,6 +1,6 @@ //==================================================== -// Romanian - based on Italian +// Romanian //==================================================== // Vowels diff --git a/phsource/ph_tamil b/phsource/ph_tamil index 541ef9b3..f6272d8e 100644 --- a/phsource/ph_tamil +++ b/phsource/ph_tamil @@ -71,7 +71,10 @@ endphoneme phoneme u vowel starttype #u endtype #u length 110 - ChangeIfNotStressed(U) + IF prevPhW(isVel) THEN + ELSE + ChangeIfNotStressed(U) + ENDIF FMT(vowel/u_6) endphoneme @@ -84,7 +87,10 @@ endphoneme phoneme u: vowel starttype #u endtype #u length 260 - ChangeIfNotStressed(U:) + IF prevPhW(isVel) THEN + ELSE + ChangeIfNotStressed(U:) + ENDIF FMT(vowel/u_6) endphoneme diff --git a/phsource/ph_zh b/phsource/ph_zh index 6771b94a..9fdeb198 100644 --- a/phsource/ph_zh +++ b/phsource/ph_zh @@ -1,4 +1,4 @@ -//based on "phonemes" + //==================================================== // Tone Numbers //==================================================== @@ -101,6 +101,45 @@ phoneme N endphoneme +phoneme l + liquid + lengthmod 2 + + CALL vowelstart_l + + IF nextPhW(#i) THEN + VowelStart(l/li) + ENDIF + FMT(l/_l) +endphoneme + + +phoneme j + liquid palatal + lengthmod 1 + + IF nextPh(isVowel) THEN + NextVowelStarts + VowelStart(j/j@) + VowelStart(j/ja) + VowelStart(j/je) + VowelStart(j/ji) + VowelStart(j/jo) + VowelStart(j/ju) + EndSwitch + + VowelEnding(j/xj, -30) + + FMT(j/_j) + ELSE + // no vowel follows + Vowelout len=70 + FMT(j/j_) + ENDIF +endphoneme + + + phoneme p vls blb stop diff --git a/phsource/phonemes b/phsource/phonemes index 08dc29f8..b6994187 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -567,7 +567,7 @@ phoneme m VowelStart(m/mu) EndSwitch - IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN FMT(m/mj) ELIF prevPh(isPause) THEN FMT(m/_m) @@ -596,7 +596,7 @@ phoneme n VowelStart(n/nu) EndSwitch - IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN FMT(n/nj) ELIF prevPh(isPause) OR prevPh(n) THEN FMT(n/_n) @@ -626,7 +626,7 @@ phoneme n. VowelStart(n/nu) EndSwitch - IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN FMT(n/nj) ELIF prevPh(isPause) OR prevPh(n.) THEN FMT(n/_nr) @@ -658,6 +658,11 @@ phoneme n^ IF prevPh(isPause) THEN FMT(n^/_n^) ELIF nextPh(isNotVowel) THEN + IF nextPhW(n^) THEN + Length 75 + ELIF prevPhW(n^) THEN + Length 100 + ENDIF FMT(n^/n^_) ENDIF endphoneme @@ -686,7 +691,7 @@ phoneme N VowelEnding(nn/inn, -40) ENDIF - IF thisPh(isNotVowel) AND nextPhW(isLiquid) THEN + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN FMT(nn/nnj) ELIF prevPh(isPause) THEN FMT(nn/_nn) @@ -1521,6 +1526,9 @@ include ph_esperanto phonemetable jbo eo include ph_lojban +phonemetable nci base2 +include ph_nahuatl + phonemetable fi base include ph_finnish diff --git a/phsource/vdiph2/eo b/phsource/vdiph2/eo index db531e27..a5b00896 100644 Binary files a/phsource/vdiph2/eo and b/phsource/vdiph2/eo differ diff --git a/phsource/vwl_fr/@R3 b/phsource/vwl_fr/@R3 deleted file mode 100755 index 45bea114..00000000 Binary files a/phsource/vwl_fr/@R3 and /dev/null differ diff --git a/phsource/vwl_fr/@R4 b/phsource/vwl_fr/@R4 deleted file mode 100755 index eb1e998f..00000000 Binary files a/phsource/vwl_fr/@R4 and /dev/null differ diff --git a/phsource/vwl_fr/@R5 b/phsource/vwl_fr/@R5 deleted file mode 100755 index 6832edf0..00000000 Binary files a/phsource/vwl_fr/@R5 and /dev/null differ diff --git a/phsource/vwl_fr/_r b/phsource/vwl_fr/_r index 6a598414..4e1a2e44 100755 Binary files a/phsource/vwl_fr/_r and b/phsource/vwl_fr/_r differ diff --git a/phsource/vwl_fr/_r2 b/phsource/vwl_fr/_r2 new file mode 100755 index 00000000..661310ba Binary files /dev/null and b/phsource/vwl_fr/_r2 differ diff --git a/phsource/vwl_fr/r@ b/phsource/vwl_fr/r@ new file mode 100755 index 00000000..836dceda Binary files /dev/null and b/phsource/vwl_fr/r@ differ diff --git a/phsource/vwl_fr/ra b/phsource/vwl_fr/ra index 31388310..3cd20956 100755 Binary files a/phsource/vwl_fr/ra and b/phsource/vwl_fr/ra differ diff --git a/phsource/vwl_fr/re b/phsource/vwl_fr/re index ef0c2e1d..a480b323 100755 Binary files a/phsource/vwl_fr/re and b/phsource/vwl_fr/re differ diff --git a/phsource/vwl_fr/ri b/phsource/vwl_fr/ri index 81cd020d..44beae32 100755 Binary files a/phsource/vwl_fr/ri and b/phsource/vwl_fr/ri differ diff --git a/phsource/vwl_fr/ro b/phsource/vwl_fr/ro index 25e4f26d..51547277 100755 Binary files a/phsource/vwl_fr/ro and b/phsource/vwl_fr/ro differ diff --git a/phsource/vwl_fr/ru b/phsource/vwl_fr/ru index 2609a3d7..9ae0e92d 100755 Binary files a/phsource/vwl_fr/ru and b/phsource/vwl_fr/ru differ diff --git a/phsource/vwl_fr/xr b/phsource/vwl_fr/xr index 8747020f..651d57b7 100755 Binary files a/phsource/vwl_fr/xr and b/phsource/vwl_fr/xr differ diff --git a/platforms/big_endian/README b/platforms/big_endian/README index 0e655e95..5f5d4381 100644 --- a/platforms/big_endian/README +++ b/platforms/big_endian/README @@ -14,7 +14,7 @@ The 'phondata-manifest' file is produced by espeakedit when it compiles the phoneme data. If it is not present here, find it in the espeak-data directory. NOTE: -The format of espeak-data/phondata changed in eSpeak version 1.41. The utility +The format of espeak-data/phondata changed in eSpeak version 1.43. The utility has been modified for this. [jonsd] --- diff --git a/platforms/big_endian/espeak-phoneme-data.c b/platforms/big_endian/espeak-phoneme-data.c index 98b7721e..890075b3 100644 --- a/platforms/big_endian/espeak-phoneme-data.c +++ b/platforms/big_endian/espeak-phoneme-data.c @@ -1,3 +1,12 @@ + + + + + + +// 13.02.10 JSD: Changed for eSpeak version 1.43 + + #include #include #include @@ -33,26 +42,21 @@ #define N_PHONEME_TAB_NAME 32 +// This is a new format for eSpeak 1.43 typedef struct { - unsigned int mnemonic; - unsigned int phflags; - - unsigned short std_length; - unsigned short spect; - unsigned short before; - unsigned short after; - - unsigned char code; - unsigned char type; - unsigned char start_type; - unsigned char end_type; - - unsigned char length_mod; - unsigned char reduce_to; - unsigned char alternative_ph; - unsigned char link_out; + unsigned int mnemonic; // 1st char is in the l.s.byte + unsigned int phflags; // bits 16-19 place of articulation + unsigned short program; + unsigned char code; // the phoneme number + unsigned char type; // phVOWEL, phPAUSE, phSTOP etc + unsigned char start_type; + unsigned char end_type; + unsigned char std_length; // for vowels, in mS/2; for phSTRESS, the stress/tone type + unsigned char length_mod; // a length_mod group number, used to access length_mod_tab + } PHONEME_TAB; + // This is a new format for eSpeak 1.41 typedef struct { // 44 bytes short frflags; @@ -102,15 +106,13 @@ void usage (const char *program_name); -int -main (int argc, char *argv[]) -{ +int main (int argc, char *argv[]) +{//============================== const char *indir = "/usr/share/espeak-data"; const char *outdir = "."; const char *manifest = "phondata-manifest"; char *f1, *f2; - if (argc > 4) usage (argv[0]); @@ -175,12 +177,12 @@ main (int argc, char *argv[]) printf ("Done.\n"); return 0; -} +} // end of main -void -swap_phondata (const char *infile, const char *outfile, + +void swap_phondata (const char *infile, const char *outfile, const char *manifest) -{ +{//========================================================== FILE *in, *mfest, *out; char line[1024]; unsigned char buf_4[4]; @@ -282,12 +284,13 @@ swap_phondata (const char *infile, const char *outfile, fclose (in); fclose (out); fclose (mfest); -} +} // end of swap_phondata -void -swap_phonindex (const char *infile, const char *outfile) -{ + +void swap_phonindex (const char *infile, const char *outfile) +{//========================================================== FILE *in, *out; + char buf_4[4]; unsigned int val; in = fopen (infile, "rb"); @@ -302,24 +305,27 @@ swap_phonindex (const char *infile, const char *outfile) exit (1); } + fread (buf_4, 4, 1, in); // skip first 4 bytes + fwrite(buf_4, 4, 1, out); + while (! feof (in)) { size_t n; - n = fread (&val, 4, 1, in); + n = fread (&val, 2, 1, in); if (n != 1) break; - val = SWAP_UINT (val); - fwrite (&val, 4, 1, out); + val = SWAP_USHORT (val); + fwrite (&val, 2, 1, out); } fclose (in); fclose (out); -} +} // end of swap_phonindex -void -swap_phontab (const char *infile, const char *outfile) -{ + +void swap_phontab (const char *infile, const char *outfile) +{//======================================================== FILE *in, *out; char buf_4[4]; int i, n_phoneme_tables; @@ -359,11 +365,7 @@ swap_phontab (const char *infile, const char *outfile) table.mnemonic = SWAP_UINT (table.mnemonic); table.phflags = SWAP_UINT (table.phflags); - - table.std_length = SWAP_USHORT (table.std_length); - table.spect = SWAP_USHORT (table.spect); - table.before = SWAP_USHORT (table.before); - table.after = SWAP_USHORT (table.after); + table.program = SWAP_USHORT (table.program); fwrite (&table, sizeof (PHONEME_TAB), 1, out); } @@ -371,7 +373,8 @@ swap_phontab (const char *infile, const char *outfile) fclose (in); fclose (out); -} +} // end of swap_phontab + void usage (const char *program_name) diff --git a/src/compiledata.cpp b/src/compiledata.cpp index fe513b43..9c97ce86 100755 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2009 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -102,6 +102,10 @@ static keywtab_t k_conditions[] = { {NULL, 0, 0} }; + +// place of articulation +#define i_isVel 0x28 + static keywtab_t k_properties[] = { {"isPause", 0, phPAUSE}, {"isVowel", 0, phVOWEL}, @@ -112,6 +116,8 @@ static keywtab_t k_properties[] = { {"isPalatal", 0, i_isPalatal}, {"isRhotic", 0, i_isRhotic}, + {"isVel", 0, i_isVel}, + {"isDiminished", 0, i_isDiminished}, {"isUnstressed", 0, i_isUnstressed}, {"isNotStressed",0, i_isNotStressed}, @@ -269,7 +275,7 @@ static keywtab_t keywords[] = { {"vcd", tPHONEME_FLAG, phVOICED}, {"vls", tPHONEME_FLAG, phFORTIS}, - // place of articulation + // place of articulation, set bits 16-19 of phflags {"blb", tPLACE, 1}, {"lbd", tPLACE, 2}, {"dnt", tPLACE, 3}, @@ -347,7 +353,7 @@ static void DecompilePhoneme(FILE *f_out, PHONEME_TAB *ph, int compile_phoneme) int any; const char *name; - static char *INV = "Invalid"; + static const char *INV = "Invalid"; static const char *instn_category_string[16] = { "", "", "IF", "IF OR", diff --git a/src/compiledict.cpp b/src/compiledict.cpp index 7d637ff6..5aeec4c8 100755 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -91,6 +91,7 @@ MNEM_TAB mnem_flags[] = { {"$alt", 20}, // use alternative pronunciation {"$alt2", 21}, {"$combine", 22}, // Combine with the next word + {"$alt3", 23}, {"$dot", 24}, // ignore '.' after this word (abbreviation) {"$hasdot", 25}, // use this pronunciation if there is a dot after the word diff --git a/src/dictionary.cpp b/src/dictionary.cpp index a4e62738..659799ca 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -3499,38 +3499,46 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) if(end_type & SUFX_E) { - // add 'e' to end of stem - if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1)) + if(tr->translator_name == L('e','n')) { - // vowel(incl.'y') + hard.consonant - - for(i=0; (p = add_e_exceptions[i]) != NULL; i++) + // add 'e' to end of stem + if(IsLetter(tr, word_end[-1],LETTERGP_VOWEL2) && IsLetter(tr, word_end[0],1)) { - len = strlen(p); - if(memcmp(p,&word_end[1-len],len)==0) + // vowel(incl.'y') + hard.consonant + + for(i=0; (p = add_e_exceptions[i]) != NULL; i++) { - break; + len = strlen(p); + if(memcmp(p,&word_end[1-len],len)==0) + { + break; + } + } + if(p == NULL) + end_flags |= FLAG_SUFX_E_ADDED; // no exception found + } + else + { + for(i=0; (p = add_e_additions[i]) != NULL; i++) + { + len = strlen(p); + if(memcmp(p,&word_end[1-len],len)==0) + { + end_flags |= FLAG_SUFX_E_ADDED; + break; + } } } - if(p == NULL) - end_flags |= FLAG_SUFX_E_ADDED; // no exception found } else + if(tr->langopts.suffix_add_e != 0) { - for(i=0; (p = add_e_additions[i]) != NULL; i++) - { - len = strlen(p); - if(memcmp(p,&word_end[1-len],len)==0) - { - end_flags |= FLAG_SUFX_E_ADDED; - break; - } - } + end_flags |= FLAG_SUFX_E_ADDED; } if(end_flags & FLAG_SUFX_E_ADDED) { - word_end[1] = 'e'; + utf8_out(tr->langopts.suffix_add_e, &word_end[1]); #ifdef LOG_TRANSLATE if(option_phonemes == 2) { diff --git a/src/numbers.cpp b/src/numbers.cpp index 35acc1ca..7e757253 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -68,6 +68,7 @@ static int n_digit_lookup; static char *digit_lookup; static int speak_missing_thousands; +static int number_control; typedef struct { @@ -762,16 +763,18 @@ static int CheckDotOrdinal(Translator *tr, char *word, WORD_TAB *wtab, int roman int ordinal = 0; int c2; + int nextflags; if((tr->langopts.numbers & NUM_ORDINAL_DOT) && ((word[0] == '.') || (wtab[0].flags & FLAG_HAS_DOT)) && !(wtab[1].flags & FLAG_NOSPACE)) { if(roman || !(wtab[1].flags & FLAG_FIRST_UPPER)) { utf8_in(&c2, &word[2]); - if((word[1] != 0) && IsAlpha(c2)) + if((word[1] != 0) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || IsAlpha(c2))) { // ordinal number is indicated by dot after the number // but not if the next word starts with an upper-case letter + // (c2 == 0) is for cases such as, "2.," ordinal = 2; if(word[0] == '.') word[0] = ' '; @@ -779,8 +782,19 @@ static int CheckDotOrdinal(Translator *tr, char *word, WORD_TAB *wtab, int roman if((roman==0) && (tr->translator_name == L('h','u'))) { // lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt). It may have a suffix. - if(TranslateWord(tr, &word[2], 0, NULL) & FLAG_ALT_TRANS) + nextflags = 0; + if(IsAlpha(c2)) + { + nextflags = TranslateWord(tr, &word[2], 0, NULL); + } + +if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2))) + ordinal = 0; // TEST 09.02.10 + + if(nextflags & FLAG_ALT_TRANS) ordinal = 0; + if((tr->prev_dict_flags & (FLAG_ALT_TRANS | FLAG_ALT3_TRANS)) && (nextflags & FLAG_ALT3_TRANS)) + ordinal = 0x22; } } } @@ -941,6 +955,12 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, int thou sprintf(string,"_%dM%do",value,thousandplex); found_value = Lookup(tr, string, ph_thousands); } + if(!found_value & (number_control & 1)) + { + // look for the 'e' variant + sprintf(string,"_%dM%de",value,thousandplex); + found_value = Lookup(tr, string, ph_thousands); + } if(!found_value) { // is there a different pronunciation if there are no hundreds,tens,or units ? (LANG=ta) @@ -970,6 +990,12 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, int thou sprintf(string,"_%s%do",M_Variant(value), thousandplex); found = Lookup(tr, string, ph_thousands); } + if(!found && (number_control & 1)) + { + // look for the 'e' variant + sprintf(string,"_%s%de",M_Variant(value), thousandplex); + found = Lookup(tr, string, ph_thousands); + } if(!found) { // is there a different pronunciation if there are no hundreds,tens,or units ? @@ -1013,10 +1039,11 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) {//======================================================================== // Lookup a 2 digit number // control bit 0: ordinal number -// control bit 1: tens and units (use special form of '1', LANG=de "eins") +// control bit 1: final tens and units (not number of thousands) (use special form of '1', LANG=de "eins") // control bit 2: tens and units only, no higher digits // control bit 3: use feminine form of '2' (for thousands // control bit 4: speak zero tens +// control bit 5: variant of ordinal number (lang=hu) int found; int ix; @@ -1025,6 +1052,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) int used_and=0; int found_ordinal = 0; int next_phtype; + int ord_type = 'o'; char string[12]; // for looking up entries in *_list char ph_ordinal[20]; char ph_tens[50]; @@ -1040,6 +1068,11 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) ph_digits[0] = 0; ph_and[0] = 0; + if(control & 0x20) + { + ord_type = 'q'; + } + if((control & 2) && (n_digit_lookup == 2)) { // pronunciation of the final 2 digits has already been found @@ -1062,12 +1095,12 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) if(control & 4) { - sprintf(string,"_%dox",value); // LANG=hu, special word for 1. 2. when there are no higher digits + sprintf(string,"_%d%cx",value,ord_type); // LANG=hu, special word for 1. 2. when there are no higher digits found = Lookup(tr, string, ph_digits); } if(found == 0) { - sprintf(string,"_%do",value); + sprintf(string,"_%d%c",value,ord_type); found = Lookup(tr, string, ph_digits); } found_ordinal = found; @@ -1075,13 +1108,28 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) if(found == 0) { - if((value == 1) && (control & 2)) + if(control & 2) { - if(Lookup(tr, "_1a", ph_out) != 0) // LANG=de, "eins" - return(0); + // the final tens and units of a number + if(number_control & 1) + { + // look for 'e' variant + sprintf(string,"_%de",value); + found = Lookup(tr, string, ph_digits); + } + } + else + { + // followed by hundreds or thousands etc + sprintf(string,"_%da",value); + found = Lookup(tr, string, ph_digits); + } + + if(!found) + { + sprintf(string,"_%d",value); + found = Lookup(tr, string, ph_digits); } - sprintf(string,"_%d",value); - found = Lookup(tr, string, ph_digits); } } @@ -1103,7 +1151,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) if((control & 1) && ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS))) { - sprintf(string,"_%dXo", tens); + sprintf(string,"_%dX%c", tens, ord_type); if(Lookup(tr, string, ph_tens) != 0) { found_ordinal = 1; @@ -1146,13 +1194,29 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) if((control & 1) && ((tr->langopts.numbers & NUM_SWAP_TENS) == 0)) { // ordinal - sprintf(string,"_%do",units); + sprintf(string,"_%d%c",units,ord_type); if((found = Lookup(tr, string, ph_digits)) != 0) { found_ordinal = 1; } } if(found == 0) + { + if((number_control & 1) && (control & 2)) + { + // look for 'e' variant + sprintf(string,"_%de",units); + found = Lookup(tr, string, ph_digits); + } + else + if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0)) + { + // followed by hundreds or thousands (or tens) + sprintf(string,"_%da",units); + found = Lookup(tr, string, ph_digits); + } + } + if(found == 0) { sprintf(string,"_%d",units); Lookup(tr, string, ph_digits); @@ -1221,6 +1285,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null // Translate a 3 digit number // control bit 0, previous thousands // bit 1, ordinal number +// bit 5 variant form of ordinal number int found; int hundreds; int tensunits; @@ -1237,7 +1302,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null char ph_hundred_and[12]; char ph_thousand_and[12]; - ordinal = control & 2; + ordinal = control & 0x22; hundreds = value / 100; tensunits = value % 100; buf1[0] = 0; @@ -1281,9 +1346,9 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } if(tr->langopts.numbers2 & 0x200) - sprintf(ph_thousands,"%s%s%c",ph_10T,ph_digits,phonPAUSE_NOLINK); // say "thousands" before its number, not after + sprintf(ph_thousands,"%s%s",ph_10T,ph_digits); // say "thousands" before its number, not after else - sprintf(ph_thousands,"%s%s%c",ph_digits,ph_10T,phonPAUSE_NOLINK); + sprintf(ph_thousands,"%s%s",ph_digits,ph_10T); hundreds %= 10; if(hundreds == 0) @@ -1362,6 +1427,8 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null x = 3; // ordinal number if((value < 100) && !(control & 1)) x |= 4; // tens and units only, no higher digits + if(ordinal & 0x20) + x |= 0x20; // variant form of ordinal number } else { @@ -1391,6 +1458,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int n_digits; int value; int ix; + int digix; unsigned char c; int suppress_null = 0; int decimal_point = 0; @@ -1404,6 +1472,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int max_decimal_count; int decimal_mode; int hyphen; + int suffix_ix; char *p; char string[20]; // for looking up entries in **_list char buf1[100]; @@ -1420,6 +1489,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned n_digit_lookup = 0; buf_digit_lookup[0] = 0; digit_lookup = buf_digit_lookup; + number_control = 0; for(ix=0; isdigit(word[ix]); ix++) ; n_digits = ix; @@ -1444,7 +1514,6 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned speak_missing_thousands = 0; } - ph_ordinal2[0] = 0; ph_zeros[0] = 0; @@ -1478,9 +1547,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } *p = 0; - if(suffix[0] != 0) + if((suffix[0] != 0) && (!isdigit(suffix[0]))) // not _#9 (tab) { - sprintf(string,"_0%s",suffix); + sprintf(string,"_#%s",suffix); if(Lookup(tr, string, ph_ordinal2)) { // this is an ordinal suffix @@ -1526,20 +1595,26 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if(word[n_digits] == tr->langopts.thousands_sep) thousands_inc = 2; + suffix_ix = n_digits+2; if(thousands_inc > 0) { // if the following "words" are three-digit groups, count them and add // a "thousand"/"million" suffix to this one + digix = n_digits + thousands_inc; - ix = n_digits + thousands_inc; - while(isdigit(word[ix]) && isdigit(word[ix+1]) && isdigit(word[ix+2])) + while(((wtab[thousandplex+1].flags & FLAG_MULTIPLE_SPACES) == 0) && + isdigit(word[digix]) && isdigit(word[digix+1]) && isdigit(word[digix+2]) && !isdigit(word[digix+3]) && !isdigit(word[digix-1])) { - if((word[ix] != '0') || (word[ix+1] != '0') || (word[ix+2] != '0')) + if((word[digix] != '0') || (word[digix+1] != '0') || (word[digix+2] != '0')) thousands_exact = 0; thousandplex++; - if(word[ix+3] == tr->langopts.thousands_sep) - ix += (3 + thousands_inc); + digix += 3; + if((word[digix] == tr->langopts.thousands_sep) || ((tr->langopts.numbers & NUM_ALLOW_SPACE) && (word[digix] == ' '))) + { + suffix_ix = digix+2; + digix += thousands_inc; + } else break; } @@ -1550,6 +1625,15 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned suppress_null = 1; } + if(tr->translator_name == L('h','u')) + { + // variant form of numbers when followed by hyphen and a suffix starting with 'a' or 'e' + if((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact==1) && ((word[suffix_ix] == 'a') || (word[suffix_ix] == 'e'))) + { + number_control |= 1; // use _1e variant of number + } + } + if((word[n_digits] == tr->langopts.decimal_sep) && isdigit(word[n_digits+1])) { // this "word" ends with a decimal point @@ -1713,7 +1797,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) utf8_in(&next_char,p); - if(!iswalpha(next_char) && !(wtab[0].flags & FLAG_HYPHEN_AFTER)) + if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. } diff --git a/src/phoneme.h b/src/phoneme.h index 6ecb4dee..da14a9eb 100755 --- a/src/phoneme.h +++ b/src/phoneme.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/readclause.cpp b/src/readclause.cpp index d41296ec..14b842c9 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -1543,12 +1543,12 @@ static int ReplaceKeyName(char *outbuf, int index, int &outix) int letter; char *p; - p = &outbuf[index+1]; + p = &outbuf[index]; if((letter = LookupMnem(keynames, p)) != 0) { ix = utf8_out(letter, p); - outix = index + ix + 1; + outix = index + ix; return(letter); } return(0); @@ -1636,16 +1636,26 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb if(tag_name[0] == '/') { - tag_type = LookupMnem(ssmltags,&tag_name[1]) + SSML_CLOSE; // closing tag + // closing tag + if((tag_type = LookupMnem(ssmltags,&tag_name[1])) != 0) + { + outbuf[outix++] = ' '; + } + tag_type += SSML_CLOSE; } else { - tag_type = LookupMnem(ssmltags,tag_name); + if((tag_type = LookupMnem(ssmltags,tag_name)) != 0) + { + // separate SSML tags from the previous word (but not unknown HMTL tags such as which can occur inside a word) + outbuf[outix++] = ' '; + } if(self_closing && ignore_if_self_closing[tag_type]) return(0); } + voice_change_flag = 0; terminator = CLAUSE_NONE; ssml_sp = &ssml_stack[n_ssml_stack-1]; @@ -2178,9 +2188,7 @@ f_input = f_in; // for GetC etc } xml_buf[n_xml_buf] = 0; c2 = ' '; - - buf[ix++] = ' '; - + self_closing = 0; if(xml_buf[n_xml_buf-1] == '/') { @@ -2211,6 +2219,7 @@ f_input = f_in; // for GetC etc } return(terminator); } + c2 = GetC(); continue; } } @@ -2510,6 +2519,13 @@ if(option_ssml) parag=1; if(nl_count==0) { + if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next)))) + { + // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number + c1 = CHAR_COMMA_BREAK; + is_end_clause = 0; + } + if(c1 == '.') { if((tr->langopts.numbers & NUM_ORDINAL_DOT) && @@ -2522,7 +2538,7 @@ if(option_ssml) parag=1; } else { - if (iswlower(c_next)) + if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) } } @@ -2565,7 +2581,7 @@ if(option_ssml) parag=1; buf[ix] = ' '; buf[ix+1] = 0; - if(!IsAlpha(c_next)) + if(iswdigit(cprev) && !IsAlpha(c_next)) // ???? { punct_data &= ~CLAUSE_DOT; } diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index 0fb8b287..c36ce354 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -174,7 +174,7 @@ static int create_events(short* outbuf, int length, espeak_EVENT* event, uint32_ } -int sync_espeak_terminated_msg( uint unique_identifier, void* user_data) +int sync_espeak_terminated_msg( uint32_t unique_identifier, void* user_data) {//===================================================================== ENTER("sync_espeak_terminated_msg"); diff --git a/src/speak_lib.h b/src/speak_lib.h index 087aa98e..245f18f4 100644 --- a/src/speak_lib.h +++ b/src/speak_lib.h @@ -1,7 +1,7 @@ #ifndef SPEAK_LIB_H #define SPEAK_LIB_H /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -26,6 +26,7 @@ /*************************************************************/ #include +#include #define ESPEAK_API_REVISION 5 /* diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 48cbb3b3..e0d32eda 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.42.21 19.Dec.09"; +const char *version_string = "1.42.42 12.Feb.10"; const int version_phdata = 0x014220; int option_device_number = -1; @@ -942,13 +942,14 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ case 9: data = ((instn & 0xf) << 16) + prog[1]; + prog++; switch(instn2) { case 1: // call a procedure or another phoneme if(n_return < N_RETURN) { - return_addr[n_return++] = prog+1; + return_addr[n_return++] = prog; prog = &phoneme_index[data] - 1; } break; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index f71aa229..3abeb75b 100755 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -1458,7 +1458,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) } } - if((next->type==phVOWEL) || ((next->type==phLIQUID)) && (next->newword==0)) // ?? test 14.Aug.2007 + if((next->type==phVOWEL) || ((next->type==phLIQUID) && (next->newword==0))) // ?? test 14.Aug.2007 { StartSyllable(); } diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 921ef42a..28cae2ee 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -235,6 +235,7 @@ void SetIndicLetters(Translator *tr) SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words + tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama } void SetupTranslator(Translator *tr, const short *lengths, const unsigned char *amps) @@ -361,6 +362,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900; tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word + tr->langopts.suffix_add_e = 'e'; } break; @@ -793,7 +795,7 @@ SetLengthMods(tr,3); // all equal case L('n','o'): // Norwegian { - static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,210}; + static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,230}; SetupTranslator(tr,stress_lengths_no,NULL); tr->langopts.stress_rule = STRESSPOSN_1L; diff --git a/src/translate.cpp b/src/translate.cpp index 8917d9b4..e54fa5eb 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -1763,6 +1763,12 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa first_phoneme = 0; } } + + if(word_flags & FLAG_COMMA_AFTER) + { + SetPlist2(&ph_list2[n_ph_list2++],phonPAUSE_CLAUSE); + } + // don't set new-word if there is a hyphen before it if((word_flags & FLAG_HYPHEN) == 0) { @@ -2018,6 +2024,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t int prev_out=' '; int prev_out2; int prev_in2=0; + int prev_in_save=0; int next_in; int next_in_nbytes; int char_inserted=0; @@ -2166,14 +2173,15 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t prev_out = 'a'; } - if(prev_in2 != 0) + if(prev_in_save != 0) { - prev_in = prev_in2; - prev_in2 = 0; + prev_in = prev_in_save; + prev_in_save = 0; } else if(source_index > 0) { + prev_in2 = prev_in; utf8_in2(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1]; } @@ -2199,13 +2207,13 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t if(prev_in != ' ') { c = ' '; - prev_in2 = c; + prev_in_save = c; source_index--; } else { embedded_count += EmbeddedCommand(source_index); - prev_in2 = prev_in; + prev_in_save = prev_in; // replace the embedded command by spaces memset(&source[srcix],' ',source_index-srcix); source_index = srcix; @@ -2285,6 +2293,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre word_flags |= FLAG_FOCUS; } + if(c == CHAR_COMMA_BREAK) + { + c = ' '; + word_flags |= FLAG_COMMA_AFTER; + } + c = TranslateChar(tr, &source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function if(c == 8) continue; // ignore this character @@ -2311,7 +2325,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre if(iswdigit(prev_out)) { - if(!iswdigit(c) && (c != '.') && (c != ',')) + if(!iswdigit(c) && (c != '.') && (c != ',') && (c != ' ')) { c = ' '; // terminate digit string with a space space_inserted = 1; @@ -2350,7 +2364,11 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre // start of word, insert space if not one there already c = ' '; space_inserted = 1; - next_word_flags |= FLAG_NOSPACE; + + if(!IsBracket(prev_out)) // ?? perhaps only set FLAG_NOSPACE for . - / (hyphenated words, URLs, etc) + { + next_word_flags |= FLAG_NOSPACE; + } } else { @@ -2388,7 +2406,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre { c = ' '; // lower case followed by upper case, treat as new word space_inserted = 1; - prev_in2 = c; + prev_in_save = c; } else if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) @@ -2400,7 +2418,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre // changing from upper to lower case, start new word at the last uppercase, if 3 or more letters c = ' '; space_inserted = 1; - prev_in2 = c; + prev_in_save = c; next_word_flags |= FLAG_NOSPACE; } } @@ -2563,9 +2581,15 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre { if(prev_out == ' ') { + word_flags |= FLAG_MULTIPLE_SPACES; continue; // multiple spaces } + if((cc == 0x09) || (cc == 0x0a)) + { + next_word_flags |= FLAG_MULTIPLE_SPACES; // tab or newline, not a simple space + } + if(space_inserted) { words[word_count].length = source_index - words[word_count].sourceix; @@ -2653,6 +2677,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre if(word_count > 0) { words[word_count-1].flags |= FLAG_LAST_WORD; + // FLAG_NOSPACE check to avoid recognizing .mr -mr if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE)) words[word_count-1].flags |= FLAG_HAS_DOT; } @@ -2665,7 +2690,9 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre int c_temp; char *pn; char *pw; - char number_buf[80]; + int nw; + char number_buf[60]; + WORD_TAB num_wtab[15]; // copy of 'words', when splitting numbers into parts // start speaking at a specified word position in the text? count_words++; @@ -2718,6 +2745,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre number_buf[0] = ' '; pn = &number_buf[1]; nx = n_digits; + nw = 0; while(pn < &number_buf[sizeof(number_buf)-3]) { @@ -2727,6 +2755,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre *pn++ = c; if((--nx > 0) && (tr->langopts.break_numbers & (1 << nx))) { + memcpy(&num_wtab[nw++], &words[ix], sizeof(WORD_TAB)); // copy the 'words' entry for each word of numbers + if(tr->langopts.thousands_sep != ' ') { *pn++ = tr->langopts.thousands_sep; @@ -2746,15 +2776,17 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre } } pw--; + memcpy(&num_wtab[nw], &words[ix], sizeof(WORD_TAB)*2); // the original number word, and the word after it // include the next few characters, in case there are an ordinal indicator or other suffix memcpy(pn, pw, 16); pn[16] = 0; + nw = 0; for(pw = &number_buf[1]; pw < pn;) { // keep wflags for each part, for FLAG_HYPHEN_AFTER - dict_flags = TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 ); + dict_flags = TranslateWord2(tr, pw, &num_wtab[nw++], words[ix].pre_pause,0 ); while(*pw++ != ' '); words[ix].pre_pause = 0; } diff --git a/src/translate.h b/src/translate.h index db5f56c5..575fd36e 100755 --- a/src/translate.h +++ b/src/translate.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -55,6 +55,7 @@ #define FLAG_ALT_TRANS 0x100000 // language specific #define FLAG_ALT2_TRANS 0x200000 // language specific #define FLAG_COMBINE 0x400000 // combine with the next word +#define FLAG_ALT3_TRANS 0x800000 // language specific #define FLAG_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation) #define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot @@ -103,6 +104,8 @@ #define FLAG_HYPHEN_AFTER 0x4000 #define FLAG_ORDINAL 0x8000 // passed to TranslateNumber() to indicate an ordinal number #define FLAG_HAS_DOT 0x10000 // dot after this word +#define FLAG_COMMA_AFTER 0x20000 // comma after this word +#define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout #define FLAG_NO_PREFIX 0x20000000 @@ -203,6 +206,7 @@ #define SAYAS_DIGITS1 0xc1 #define CHAR_EMPHASIS 0x0530 // this is an unused character code +#define CHAR_COMMA_BREAK 0x0557 // unused character code // Rule: // [4] [match] [1 pre] [2 post] [3 phonemes] 0 @@ -437,6 +441,7 @@ typedef struct { const unsigned int *replace_chars; // characters to be substitutes const char *ascii_language; // switch to this language for Latin characters int max_lengthmod; + int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character } LANGUAGE_OPTIONS; diff --git a/src/voices.cpp b/src/voices.cpp index 44dc918f..bd780e9e 100755 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2010 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify *