diff --git a/dictsource/af_list b/dictsource/af_list index 88134f3f..388d96b5 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -91,21 +91,26 @@ bethlehem bEt_liEm brittanje $2 ceylon s@lOn china S'ina +(graaff reinet) x2rA:f||r@n'Et +italië it'A:li;@ jerusalem j@r'ysalEm kanada kanad%a +knysna neIsna kongo kONgu mesopotamië mEsuput'A:mi@ mosambiek musamb'ik -potchefstroom pOtSIfstr'o@m (thaba nchu) tab'A:||ntSu europa Y@r'o@pa +outeniekwa @Ut@n'ikwa portugal $1 +potchefstroom pOtSIfstr'o@m pretoria prit'o@ria stellenbosch st%&l@mbOs +tunisië $2 +turkye $2 upington apiNt@n worcester v'ust@r -zimbabwe zI:mb'ab_wE - +zimbabwe zI:mb'ab_wE @@ -124,16 +129,19 @@ bester b'Est@r botha bo@ta breytenbach breIt@nbax2 carl kA:r@L +cecilia s@si:lia charles _^_EN charlie tSA:li chopin S%OpA~ chris krIs christo krIstu christian krIstian +christelle kr@st&l christine kr@st'i:n coetzee kuts'e@ cronjé krOnj'e@ debora d@bo@ra +debussy d@bus'i: der d@r deventer d'e@v@nt@r du $u @@ -187,6 +195,7 @@ martha marta martin m'A:rt@n michelle miS'&l michiel $2 +miriam mIri@m mostert m'Ost@rt mozart mo@tsart naomi na_'o@mi @@ -195,11 +204,14 @@ naudé nOd'e@ paul p@Ul paulus p@UlWs philip fIl@p +phillips fIl@ps pierre p'e@r petrus pe@trWs phoebe fi:bi rachmaninoff rax2m'aninOf rebekka r@bEka +renée r@neI +retief r@tif ronel run'&l rousseau r@s@U roux r'u @@ -216,6 +228,7 @@ theron tr'On viljoen $2 villiers vIli@rs violet _^_EN $capital +william _^_EN marais mar'E: mandela mand'E:la celliers sIlj'e@ @@ -292,7 +305,7 @@ alhoewel alhuv'&l $pause tensy $2 $pause aangesien $pause wie $pause -wanneer $pause +wanneer $1 $pause waar $pause waarom $pause waarheen $pause @@ -376,7 +389,6 @@ bv beIf'o@rbe@lt $dot // main word list -aanbid $2 aanstaande $2 adagio ad'A:dZi;%@U algaande $2 @@ -468,7 +480,6 @@ hokaai hOkAI hoofsaaklik $2 idee $2 -ietwat itvat ignoreer ix2no@r'e@r inagneming @nax2ne@m@N inkluis $2 @@ -476,16 +487,16 @@ intens @nt'Ens intensiteit $4 jawoord jA:vo@rt - +jupiter jupit@r kafee kaf'e@ -kapitaal kapit'A:l +kaviaar kavi'A:r komaan kOmA:n komberse kOmb'&rs@ kombers kOmb'&rs kopiereg kup'ir&x2 kritiek krIt'ik -kultuur $2 +kulture $2 kunsmatige kWnsm'A:t@x2@ kwansuis $2 @@ -497,6 +508,7 @@ lekkerste l&k@rst@ macaroni makar'o@ni madame mad'A:m makabere m%ak'A:b@r@ +maskering mask'e@r@N $only meegee me@x2e@ memoriam mEm'o@riam merlot m&rl'o@ @@ -608,6 +620,8 @@ uiteindelik $2 uiteraard Yyt@r_'A:rt vaarwel fA:rv'&l +vakant f%ak'ant +vakante f%ak'ant@ vanaf fanaf vandat $1 vanne fan@ @@ -619,7 +633,6 @@ vererger f@r&rg@r ver f'&:r verg f&rx2 vergete f@rx2e@t@ -vergewe f@rx2e@v@ vermy $2 verre f&:r@ verregaande f&r@x2'A:nd@ diff --git a/dictsource/af_rules b/dictsource/af_rules index aa011d96..311dd65f 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -38,12 +38,19 @@ agter (dogt %ax2t@r // move default stress: agterdogtig and derivitives agter (oor %ax2t@r_ // move default stress: agteroor/-buig/-druk/-val, etc. &) agtig 'ax2t@x2 // this string almost always carries stress on a + ara (bi %arA: // fix 1st a sound and stress: Arabië/Arabies/-e + ara (bier %ar%a // Stress and a sounds: Arabier/-e + C) are (CA A:r@ // e sound: amptenaredom/blaredak/garebiltong/haredos/jarelange a (riA 'A: // akwarium/barium/estuarium/herbarium/seminaria + a (ristokr %a // shorten 1st a: aristokrasie/-kraat/-krate/-kraties @C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc. C) asie 'A:si + Cst) asie A:si // restore default stress: brandweer/spoorwegstasie and similar + AAst) asie A:si // default stress: polisie/radio/televisie/uitsaaistasie, etc. a (CAA %a d) a (goggen %a //saterdagoggend and friends + ah (C A: // lengthen a and drop h: Ahmed/Dahl/Mahler, etc. a (Cie A: // apies/middagslapie a (Cy %a a (CA A: @@ -102,6 +109,7 @@ afrikaner %afr%ikA:n@r // move stress to end: Afrikaner and compounds afrika A:frika //Stress and 1st a sound: Afrika and compounds: Afrikatale/-state... af (skuw %af // move default stress: afskuwelik and derivitives vs afsku + afsonderl %afsOn@rl // stress, avoid af_ prefix and -lik suffix: afsonderlik/-e/-heid afstootl %afsto@tl // move default stress: afstootlik/-e/-heid/-ste af (sydig %af // fix stress: afsydig/-e/-heid afwesig %afve@s@x2 // to steer clear of pre- and suffixes @@ -141,6 +149,8 @@ amandel am'and@l // amandel/s/-poeding/-tert... ambu (l %amb%y // fix stress: ambulans and compounds/ambulant, etc. _) am (A %am // amorfe/amok/amortisasie/amalgamasie + ambass (ade %amb%as // move default stress: ambassade and compounds + ambassa (deu %amb%as%a // move default stress: ambassadeur and compounds amer (ik %ame@r // Amerika/Amerikaner _) am (nA %am // amnestie/amnesie _) amper amp@r // fix e sound in words like: amperbroekie/amperse/ampertjies @@ -148,7 +158,7 @@ amus (e %am%ys // shorten a and move stress anoniem anun'im _) ar (gi %ar // argief and compounds/argiewe - _) ar (giC %ar% // argitek and compounds + argitek %arx2%itEk // argitek and compounds/argitektuur _) arkad %arkA:d // arkade/arkadia _) armes ar?m@s // fix e sound: armes/armesorg _) ar (om %ar // aroma/aromaties @@ -161,10 +171,15 @@ artille (rie %art@l@ // stress and vowel sounds: artillerie and compounds asem A:s@m // asemgehaal/asemhaling/asemteug/ontwaseming _) as (ke %as // move default stress: askeet/askete/asketies/askese + a (spersie %a // move default stress: aspersie and compounds assist %as@st // assistent/e/assisteer assiste (_ %as'Ist@ // rassiste stress and last e sound + atel (jee %at@L // fix vowel sounds and stress: ateljee and compounds + C) athe (rina %at@ // Catherina/Katherina atten (C at'En // attent/heid/onattent/attensies + a (tomA %a // fix stress and a sound: atome/(sub)atomies @) ator (K 'A:tOr // katalisator/diktatorskap and many similar + @) atories %at'o@ris // stress on -ories: diktatories/organisatories/resperatories, etc. augustus Ox2'WstWs avokado %af%ukA:du // stress and o sounds avokade %af%ukA:d@ // variant form of avokado @@ -176,6 +191,7 @@ .group aa aa A: aai AI + aan (bid %A:n // move default stress: aanbid/-ding aangee (+ 'A:nx2e@ // see rule: _) aange (@P5 A:nx@ _) aange (@P5 'A:nx2@ // added stress mark to ensure stress on aan aandoenlik %A:ndunl@k // move default stress: aandoenlik and derivitives, vs. aandoen @@ -191,11 +207,13 @@ aan (sien %A:n // stress on 2nd slb aan (sien_N 'A:n // stress on 1st slb aan (skou A:n' // stress aanskou/lik - aansteekl %A:nste@kl // move default stress: aansteeklik/-e, vs. aansteek + aan (spreek %A:n // stress on 2nd slb.: aanspreeklik + aan (spreek_N A:n // stress on 1st slb.: aanspreek aanste (llerig A:nst'& // aanstellerig/-e|-heid aansterk 'A:nst&rk // aansterk/ing - aan (stoot %A:n // stress on 2nd slb.: aanstootlik - aan (stoot_N A:n // stress on 1st slb.: aanstoot + 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 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 @@ -216,9 +234,11 @@ ange (lier %aN@ // angelier/-e and compounds an (gina %aN // move default stress, fix n/g sounds: angina angl (A %A~Nx2l% // anglikaans/anglisisme/anglofiel + angleer aNle@r // hangleer/slangleer and compounds angola A~Nx2'o@la //Angola, Angolabos etc. angol (e %A~Nx2%ul //Angolese etc. C) anette (_ %anEt // Janette/Sanette + ansjovi anS''o@f@ // fix stress and o sound: ansjovis/-se/-smeer an (tjie aIN _) ana ,ana // words starting with ana starts destressed // The following are experimental nasalisation of ans @@ -235,12 +255,14 @@ b (b b (_N p b (eentjie++ b // exception to "bee" rule: beentjie/-s and compounds + bagasie b@x2A:si // shorten 1st a: bagasie and compounds @) baarlik b'A:rl@k // move default stress: wonderbaarlik/-e/-heid/-ste band (A bant // fix t sound: bandomslag/-ontwerp/-opname band (e band // fix d sound: bandeverkoper moterbande etc. @) ba (ren b'A: // onrusbarend/opsienbarend and derivitives ba (ret b%a // move default stress and shorten a sound: baret/-te ba (riton ba // shorten a sound: bariton and compounds + ba (rok b%a // fix stress and a sound: barok and compounds basi (s bA:s@ // basis and compounds batal (jon b%at%al // shorten 1st a sound, moved stress: bataljon and compounds bobbe (j b%Ob@ //fix stress for bobbejaan and friends @@ -280,9 +302,10 @@ batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur... bibli (oC b@bl%i:% // biblioteek and compounds/biblioteke/bibliofiel/bibliografie... - bidd b'Id // biddag/aanbidding + bidd bId // biddag/aanbidding bid bIt_ // biduur/aanbid binne bIn@ // binnekom/binnelandse + bisan (tyn b%is%an // move default stress: Bisantyns/-e bi (sar b%i // move default stress: bisar/-re bla (tant bl%a // shorten 1st a and move default stress: blatant/-e/-heid @) ble (_ _^_EN // words ending in ble is English @@ -302,11 +325,14 @@ bo (tanie b%o@ // stress on 2nd slb.: botanies/-e bota (nie_N b%o@t%a // stress on 3rd slb.: botanie _) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon + bru (ta br%y // move default stress: brutaal/brutale/brutaliteit buiten (ge b'Yyt@n // buitengewoon/s/buitengewone/buitengemeen buiten (ste bYyt@n // restore default stress: buitenste/-s buiten (t bYyt@n // restore default stress: buitentoe/buitentyds buiten bYyt@n' // buitendien/buitensporig buite b'Yyt@ // buitelandse/buitestander/buitew�eld + bul (ga b%ul // fix stress and u sound: Bulgaarse/Bulgare + bulle (tin b%ul@ // fix stress and u sound: bulletin and compounds bybel beIb@l // to correct pronunc. of e in compounds byder (C@ b%eId@r // byderhand/-s/byderwets by (een b%eI_ // move default stress: byeen/byeenkoms/-te, etc. @@ -338,6 +364,7 @@ bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd @) bed (_ bEt // bruidsbed/dubbelbed; many compounds ending in bed be (de_ be@ // bede/gebede + bedes (_ be@d@s // bedes/seënbedes, etc. bedel be@d@l // bedel/gebedel/bedelaar bedeling b@de@l@N //bedeling and compounds bedev be@d@f // bedevaart and compounds @@ -352,6 +379,7 @@ bell (+ b&l // inbeller/oorbelle/seepbelle _) bel (C b&l // Belgies/belhamel bere (_ be@r@ //tediebere pandabere etc. + _) ber (t b&r // fix e sound: Bert/Berta/Bertie/Bertus beste (_ bEst@ // fix e sound: beste/allerbeste/naasbeste/-s be (weging b@ // draaibeweging/swaaibeweging bewende be@v@nd@ // first e pronounced long @@ -372,6 +400,7 @@ beu (C bY@ // beur/beuke/beul besig be@s@x2 + besig (tig b@sIx2 // fix stress and e sound: besigtig/-ing bessie bEsi berg b&rx2 berge b&rg@ @@ -391,6 +420,7 @@ ch x2 _) ch x2 chalet S%aleI // chalet/-s/bergchalet + chau (C S%@U // chauffeer/chauffeur/-s/chauvinis/-me/-ties ch (ol k //cholera, cholestrol etc. ch (l k // chloor and compounds ch (ro k @@ -421,6 +451,7 @@ dekade (s dEk'A:d@ dekant (_ d@kant //try fix suidekant _) deli (ka d%El%i // delikaat/delikate + delika (tess d%El%ik%a // move default stress: delikatesse/-s @) dend (er d@nd // beduidender/behoudender @) dend (ste d@nt // beduidendste/behoudendste @@ -445,8 +476,10 @@ diaken d%iA:k@n // diaken and compounds dia (lo d%i_%a // move default stress: dialoog/dialoë and compounds dia (m d%i%a // diamant and compounds + digi (ta d%ix2%i // move default stress: digitaal/digitale di (gK dI // force default stress: GEDIG/-TE/digbundel/digvorm, etc. dilemma d@lEma // dilemma and compounds + di (mensie d@ // fix stress and 1st i sound: (ontwikkelings)dimensie, etc. di (namie d%i // move default stress: dinamies/-e dina (miet d%in%a // stress to 3rd slb.: dinamiet and compounds direk d%irEk // direk/-sie/-te/-theid/indirek... @@ -477,10 +510,11 @@ di (ssi d@ // move default stress: dissipel/-s dissi (pl d@s@ // fix stress: dissipline/-s and compounds distri (bu d@str@ // distribusie/distribueer and compounds - dis (trik d@s // stress: distrik/-te and compounds + dis (t d@s // stress: distrik/-te and compounds/distansie/distinksie/distorsie/distraksie + distel dIst@l // restore default stress: distel and compounds _) dode d'o@d@ //dodelik dodemars etc. doel (tref d%ul // move default stress: doeltreffend/-e/-ste - doktor (_ dOkt@r // make last o schwa + doktor (K dOkt@r // make 2nd o schwa: doktor/doktorsgraad doku dOky dominee (_ d'o@m@ni domin (A dOmin' // domineer/dominering @@ -517,7 +551,10 @@ e (C E CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette + kod) e (C @ // fix e sound: kodenommer/kodetaal/kodewoord, etc. + Cond) e (CA @ // blondekop/geskondenes/hondebelasting and many compounds/sondebok/sondelas CAC) e (rkK & // fix e sound: deurgewerk; exception to: CAC) e (CC + Cien) e (rC@ @ // fix e sound: opsienersamp/tienerstatus and many similar compounds @p) e (rtjie @ // fix e sound: helpertjies/wegkruipertjie C) e (mm++ E // geelkoperemmer/wateremmer CAnn) e (CA @ // banneling/sinnebeeld/spinnekop/-rak @@ -525,6 +562,7 @@ @C) e (bo @ // compounds with boek/boer/boog/boom/bol/bord/borsel/bos/ grondbonebotter/kamdebo... @C) e (bu @ // briewebus/ereburger/novellebundel/urinebuis/woedebui @C) e (by @ // fix e sound: statebybel/-s + _) edel e@d@l // fix 2nd e sound: edelgas/-steen/-stene/-metaal and many similar _) epi (C %Ep%i //episode and others halw) e (K @ // fix e sound: halwemaan/halwerweë/halwes liefd) e (C @ // fix e in compounds starting with liefde: -blyk/-daad/-diens/-gawe/-groete/-werk, etc. @@ -535,9 +573,11 @@ mp) e (lde_ @ // fix e sound: gemompelde/oorrompelde/verskrompelde and similar @C) e (lk_ & // fix e sound: many compounds ending in kelk/melk @C) e (lke_ & // fix e sound: many compounds ending in -elke: blomkelke, etc. - uiC) e (l @ // fix e sound in wrds like: buideldier/druipeling/skuifelpassie/struikelend/tuimelaar + uiC) e (K @ // fix e sound in wrds like: bruidegom/druipeling/duinebesie/duisendpoot/kruisement... + yd) e (l @ //ydel e sound in compounds verydeling ng) e (nd @ // fix e sound: dringends/dwingends/deurdringender enge (l EN@ // Engeland/Engelsman/Engelssprekend/hengelklub/mengeldrankie/-moes + ensiklope %Ens%ikl%up@ // fix stress and vowel sounds: ensiklopedie and compounds C) e (pan @ //fix e sound: instrumentepaneel/kolepan/liefdepand @k) e (tt@+ E // menseketting/etikette sp) e (lonk @ // spelonk/rowerspelonk/spelonkagtig etc. @@ -557,7 +597,6 @@ toek) e (n E // but: toekenning and compounds C) e (rj @' // fieterjasies/kerjakker/kaperjolle aw) e (C@ @ // aweregs/dawerend and compounds of dawer/drawertjie/hawer and compounds/hawe and comp. - uim) e (C @ // pruimedant/sluimeraar/sluimerend e (CA e@ CCan) e (CA @ // swanepoel/swanesang/tranedal XCier) e (@ @ // dieresorg/-lewe..., many compounds/PIEREWAAI/-ER @@ -574,6 +613,7 @@ @d) e (kr @ // fix e sound: vriendekring/-e e (kono@ %E // 1st e: ekonome/ekonomie/ekonomies/ekonoom e (mosi %i // emosie/emosioneel, etc. + eun) e (rC @ // fix e sound: ondersteunerskorps/sigeunermusiek and similar hal) e (rC@ @ // uithalerperd/-skut/-speler and similar C) e (ndh =@ //asemrowendheid/beduidendheid/doeltreffendheid/dringendheid/voortvarendheid... u) eel 'e@l // words ending in ueel take stress on last slb @@ -582,16 +622,22 @@ gel) eer e@r // words containing geleer take default stress: regsgeleerde @k) eer e@r // words containing keer take default stress, except for: ik) eer 'e@r // abdikeer/kommunikeer, etc. + 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 sf) eer e@r // sfeer at end of compounds does not take stress: atmosfeer, etc. sk) eer e@r // words kontaining skeer take default stress: af/glad/kort/raakgeskeer + sl) eer e@r // words containing sleer take default stress: seemsleer/volstruisleer Cs) eer e@r // words containing seer (meaning pain) take default stress + ss) eer 'e@r // but many words cont. sseer take stress: adresseer, etc. + Cv) eer e@r // stress: (hoender/volstruisveer/dryfveer w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer u) eer 'e@r // aktueer/konstrueer/salueer, etc. effek %e@fEk // move default stress and fix e sound: effek/-te/-tief eienaardig %eI@nA:rd@x2 // move default stress: eienaardig/-ste @) ein (dig 'eIn // nimmereindige/nimmereindigend + eind (eks eInt_ // fix d sound and make short pause: eindeksamen/-s and compounds sirk) e (l @ // compounds: sirkelgang/sirkelvormig - nk) e (lb @ // onwankelbaar/skenkelbeen/sprinkelbesproeiing + nk) e (lC @ // onwankelbaar/skenkelbeen/sprinkelbesproeiing/kinkeldraai/kronkelpad/seunsenkelspel u) ele (+ 'e@l@ // words ending in uele take stress on penultimate slb _) erde (C &rd@ // fix connecting e in compounds: erdekruik/-ware and similar _) ere e@r@ // ereamp/erediens/ererol/erevoorsitter @@ -600,8 +646,9 @@ C) ersyds @rseIts // fix d and e sounds: enersyds/wedersyds, etc. ele (gant ,e@l@ // elegant/onelegant C) e (k & // + C) e (kk@+ & // fix e sound: luilekker/-lewe C) e (kA+ e@ - C) e (ks E + C) e (ks+ E C) e (kt E ekstase Ekst'A:s@ // stress ekstase/s wink) e (l @ // winkelvensters/-sentrum/-personeel/winkelier/winkelhaak @@ -621,7 +668,7 @@ ee e@ eetjie e@ici // tweetjies/hanetreetjie eedjie e@ici // kleedjie/tafelkleedjie/altaarkleedjie - eeu iu + eeu iu: ei eI ey eI eu Y@ @@ -633,13 +680,14 @@ m) e (nis @ // geheimenis(vol)/verdoemenis C) e (toe_ @ // binnetoe/buitetoe e (gK & - _) e (gal %e@ // stress: egalig/-e + _) ega (l %e@x2A: // stress: egalig/-e _) e (gipt %e@ // move default stress: Egipte/Egiptenaar/Egipties C) ektomie 'Ektumi // histerektomie/vasektomie &) elik (ing @l@k // verduideliking/s/vergoddeliking/verstedeliking app) elkoos @lk'o@s // stress shifts to koos appelkooskonfeit &) e (l_ @ + eiers) e (l & // fix e sound: eiersel/-le/-letjie/-s @sk) e (l & // kwyt(ge)skeld(ing) Cdd) e (le_ e@ Csd) e (le_ e@ @@ -659,7 +707,6 @@ blind) e (ling @ ind) e (ling e@ nd) e (ling @ - uiw) e (l@ @ // duiwelskind/suiwelprodukte and similar compounds _) eike 'eIk@ // many compounds with eike &) e (lC_ @ @m) e (ld & // aanmeld/voormeld @@ -685,7 +732,7 @@ _) ellende e@l'End@ _) ellendig e@l'End@x2 emalje %e@malj@ // fix stress and e sounds: emalje and compounds - enig (ma %EnIx2 // stress and e sound: enigma/-ties/-e + _) enig (ma %EnIx2 // stress and e sound: enigma/-ties/-e lei) er (s @r // leierskap/leiersgroep/leierskursus/leiersposisie... in) er (A 'e@r // kombinering/verkleinering... ff) er (@ @r // keffertjie/koffersleutel/offerande/opoffering @@ -710,7 +757,7 @@ &) erei (_ @reI e (r & Ank) e (r@ @ // ankerpaal/kankerlyer/donkerbril - uik) e (rC @ // fix e sound: many compounds with duiker/gebruiker/suiker + rp) e (rCC @ // fix e sound: ontwerpersbaadjie/purperkleurig, etc. lew) e (ns @ &d) e (r@ @ // not initial or final syllable @@ -721,6 +768,7 @@ een (drag@ %e@n // eendrag has stress on 1st slb, but eendragtig and similar on 2nd eenge 'e@nx2@ _) een (stemm %e@n // move default stress: eenstemmig/-e/-heid + _) een (sy %e@n // move default stress: eensydig/-e/-heid _) een (ton %e@n // move default stress: eentonig een (Cjie e@:iN // eendjie/Leentjie/steentjies _) een (voud@ %e@n // stress on 2nd slb: eenvoudig, but on 1st: eenvoud @@ -756,10 +804,12 @@ C) ewy (C @veI // alewyn/compounds of brandewyn/sekondewyser _op) e (n @ C) ensie (_ 'Ensi // many words ending in stressed ensie(s) + m) ensie (K e~ns%i // words ending in -mensie/-s mostly take default stress: ontwikkelingsdimensies C) ensies 'Ensis // forensiese @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaardig @C) ent (K 'Ent // orent/student/presidentsrede en) ent (_ Ent // restore default stress: koppenent/voetenent + @s) ent (rA Ent // winkelsentrum/studentesentrum, etc. @C) ent (e_ 'Ent // plurals of some of the above C) er (tyd @r // tegelykertyd/kindertyd/indertyd _) etens 'e@t@ns // etenstyd/klok/tafel/uur @@ -772,7 +822,7 @@ r) e (digering E som) e (r @ //someraand and others. _ew) e (++ @ //ewewig, ewekansig etc. - C) e (sk_ 'E // grotesk/burlesk/humoresk + C) e (sk_++ 'E // grotesk/humoresk _w) e (skus E // fix stress and e sound: (suid)weskus and compounds C) e (ske_ 'E // burleske/groteske C) e (sk@ @ // hondeskou/modeskou/erdeskottel/geleideskip/hardeskyf @@ -795,7 +845,6 @@ _mens) e @ //mense at start of compounds _mens) e (k @ //force correct behaviour before k @kom) e (ns_ @ //fix words ending in komens - suid) e @ //suidekant, suidewind etc. @C) e (wa_ @ // goederewa/kolewa/ossewa/troepewa Ab) e (wa @ //bewaking/bewaring in compounds polisiebewaking @C) e (waen @ // plurals and diminutives of some of the above @@ -814,7 +863,6 @@ interpr) e (teer @' //stress and e sound interpreteer _) e (ks %E //move default stress in words starting with eks _C) e (on_ 'i //Leon, Deon etc. - uik) e (rs @ //fix e in words containing uikers CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others orr) e (l @ //fix e in borrel, orrel, korrel in compounds intell) e (k %E //intellek, and friends @@ -828,11 +876,12 @@ werk) e (rs @ //fix werkers in compounds werkershuis etc. Ceuw) e (l @ //gesneuwelde heuwelhang etc. v) e (nno @ //vennoot and friends + _) euro (pe %Y@r%o@ // stress: Europees/Europese + _) ewe (red %e@v@ // move default stress: (on)eweredig/-e/-heid ex (+ _^_EN // words containing ex are English al) ex (and %Ekz //alexanderbaai, alexandria etc. m) exik Eks%ik //mexiko mexikaans etc. t) exas Eks@s //Texaskoors and may be others - yd) e (l @ //ydel e sound in compounds verydeling .group f @@ -850,9 +899,11 @@ fessor fEs@r // fix last o sound: professor and compounds like universiteitsprofessor fessor (a@ f%Es@r // stress: professoraal/-ale/-aat/-ate fessore (_ f@so@r@ // stress: plural: professore and compounds + fi (sant f%i // move default stress: fisant/-e and compounds fi (siek f@ // correct 1st i sound and move default stress: filistyn f@l@st'eIn // filistyn/e _) fi (na@ f%i // finaal/finale/finansies + fla (mi fl%a // move default stress: flamink/-e and compounds fla (grant fl%a // shorten 1st a and move default stress: flagrant/-e flambo (jant fl%amb%u // move default stress: flambojant/-e/-heid flo (re fl%u // move default stress, correct o sound: florerend @@ -861,6 +912,7 @@ @) fonie fun'i // kakofonie/simfonieorkes/telefonie fon (tein f%On // move default stress: fontein/fonteinwater, etc. _) for (C f%Or // formeel/formele/forseer/fortuin + fore (l f%ur& // fix stress and e sound: forel/-e and compounds formi (da f%Orm%i // move default stress: formidabel/-e _) for (se_ f'Or // stress back to 1st slb; se rule: _) for (C fos (fa f%Os // move default stress: fosfaat/fosfate @@ -878,8 +930,11 @@ g x2 g (g gala (si x2%alA: // move default stress: Galasiër/-s + gala (_ gA:l%a // fix g sound: gala/swemgala/gala-aand ga (lAC x2%a // galant/galery/galon/galop gal (joen x2%al // move default stress: galjoen/-e and compounds + gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds + @C) garye x2%ar'eI@ // Fix stress: Bulgarye/Hongarye _) gh g gh (_ k @) gheid x2eIt // traagheid/leegheid/droogheid/stugheid @@ -902,6 +957,9 @@ _) graadse (s x2r%A:tsE // fix stress and e sound: graadsesse/-sessies/-sesklas _) graad (vyf x2r%A:t // move default stress: graadvyfs/graadvyfklas, etc. gra (niet x2r%a // move default stress and fix a sound: graniet and compounds + gra (sieu x2r%a // fix stress and shorten a sound: grasieus/-e + _) gras (A x2ras_ // fix stress and a sound: graseter/grasoppervlakte/grasuie + gra (sie x2rA: // but restore default stress and long a: grasie _) gri (mA x2r@ // grimas/grimeer/-middel and other compounds/grimering grotere x2ro@t@r@ // fix vowel sounds and stress: grotere/-s guerrilla g@r'Ila @@ -910,6 +968,7 @@ .group ge ge x2@ C) ge (_ g@ + _) gebede x2@be@d@ // fix stress and vowel sounds: gebedeboek/-e/-tafel/-s gems x2Ems // fix e sound: (baster)gemsbok/-bul/-ooi, etc. gene (_ x2e@n@ // gene/diegene gene (rA x2@n@ // generaal/generasie/-s/genereer @@ -987,7 +1046,6 @@ hard (heid hart // restore default stress: (ge)hardheid hard (lo hart // restore default stress: hardloop/hardloper hard (ste hart // restore default stress: (ge)hardste/-s - _) hare (C hA:r@ // fix e sound: haredos/haregroei/harekam/harewasmiddel @) hartig h'art@x2 // barmhartig/lighartigheid/lighartig... hart (stogte_ h%art // move default stress: hartstogtelik hart (stogte_N hart // restore default stress: hartstogte @@ -997,7 +1055,7 @@ hekse (C hEks@ // fix 2nd e sound in compounds starting with hekse: heksebrousel, etc. _) hele (K he@l@ // hele/helend/heler heli (kop h%&l%i // move default stress: helikopter and compounds - hemde hEmd@ // naghemde/onderhemde/frokkiehemde + hem (C hEm // naghemde/onderhemde/frokkiehemde/syhemp hemel he@m@l // hemelblou/hemelhoog and many compounds with hemel _) her (@P3 h%&r her (berg h&r // restore default stress: herberg/-e @@ -1006,6 +1064,7 @@ her (eK he@r // here/herehuis/heretjie her (eni h%&r? // fix e sound and stress: herenig her (eva h&r? // fix e sound: herevalueer... + herfs h&rfs // restore default stress: herfsskaduwees/herfsverhaal, etc. hersen h&rs@n // restore default stress and fix 2nd e sound: hersenskim/-me/-mig/hersenskudding hertog (in h%&rt%Ox2 // fix stress and o sound: (aarts/groot)hertogin/-ne and similar hertzog h&rtsOx2 // fix stress and o sound: hertzog/-isme/-koekies @@ -1024,6 +1083,8 @@ histor h%isto@r histri (on h%istr%i // 1st i sound and stress: histrionies/-e/histrionisme/-isties hitler hitl@r // Hitler in compounds like Hitlersnorretjie + hong (a h%ONx2 // Hongaar/Hongare/Hongaarse + ho (nneur h%O // move default stress: honneurs/-graad, etc. hoog (dra h%o@x2 // stress: hoogdrawend and derivitives hor (los h%Or // horlosie and compounds hor (mo h%Or // move default stress: hormoon/hormone and compounds @@ -1091,6 +1152,7 @@ _em) i (r @ ië e@:@- // i followed by "deelteken e" iën i'En //i deelteken e n + or) iën i;En // default stress: (beroeps)georiënteerd, etc. iëteit %i@t'eIt // fix stress: (imk)piëteit/variëteit iee (C i'e@ // distansieer/finansieer/finansieel/prieel @@ -1148,7 +1210,7 @@ en) is (K @s // stress: beduidenis/bekentenis/gevangenis, etc. kris) is @s // fix stress: krisis and compounds pol) is (_ @s // polis and compounds - ar) is (K =@s // but sekretaris/argivaris/kommissaris/inventarislys/sekretarisvoël + @Car) is (K =@s // but sekretaris/argivaris/kommissaris/inventarislys/sekretarisvoël litar) is 'Is // but militaris vuil) is @s // stress: vuilis/tuinvuilis AC) iste (_ 'Ist@ // aktiviste/humaniste/kommuniste/pianiste/soliste/violiste @@ -1160,6 +1222,7 @@ @n) iek (e_ 'ik // unieke/compounds @kn) iek (_ ik // but piekniek @t) iek (_ 'ik // antiek/etiek/taktiek + krit) iek ik // restore default stress where -kritiek last in compounds: kunskritiek, etc. @t) iek (e_ 'ik // antieke... @tr) iek (_ 'ik // eksentriek/metriek @tr) iek (e_ 'ik // eksentrieke/metrieke @@ -1172,9 +1235,11 @@ C) isie 'isi // ambisie/ammunisie/komposisie/ammunisiekis C) isieus isi'Y@s // ambisieus/suspisieuse C) isk (_ 'Isk // asterisk/tamarisk + _) islam islam // fix i sound: Islam/Islamiseer/Islamisme C) ispel Isp@l // lispeling/kwispeling/kwispelstert @) isme (_ 'Ism@ // isme always takes stress w) it (A It // fix i sound: eiwitafskeiding/witagtig/kwiteer/grondserwituut + itali (a %it%al%i // move default stress: Italianer/-s and compounds item itEm // fix e sound in item and compounds @) iteit it'eIt // stress on iteit endings @C) itis (_ 'it@s // stress: many diseases ending in -itis @@ -1197,7 +1262,7 @@ jellie dZ'Eli jesus ji:sWs // Jesus also used as part of compounds: Jesusbaard/Jesusklong joer (na j%ur // move default stress: joernaal/joernale/ compounds: joernaalinskrywing, etc. - johan juh'an + joha (n j%uha // Johan/Johanna/Johannie johannes juh'an@s jonge jON@ // jongeling/jongeres jong (etjie jON // fix e sound: jongetjie/-s @@ -1220,6 +1285,8 @@ kelende (_ k@l@nd@ kkelend (_ k@l@nt kkelende (_ k@l@nd@ + kelner k&ln@r // fix 2nd e sound in compounds like kelnerbaadjie, etc. + kelner (in k%&ln@r // move default stress: kelnerin/-ne/-netjie kera (miek k%&r%a // move default stress: keramiek and compounds n) kerend (_ k@r@nt //hunkerend and others n) kerende (_ k@r@nd@ //hunkerende and others @@ -1239,6 +1306,7 @@ @) keurig k'Y@r@x2 // kieskeurig/noukeurig/(on)willekeurig and derivitives _) ki (ta k%i // move default stress: kitaar and compounds klere kle@r@ + kli (maat kl@ // move default stress: klimaat and compounds kli (niek kl@ // fix stress and i sound: kliniek and compounds kklere =kl'e@r@ knip (A knIp? // knipogie/geknipoog/ @@ -1248,7 +1316,7 @@ kri (oel kr%i // move default stress: krioel and derivitives kristal kr@stal // move default stress: kristal and many compounds krit (A kr@t // kriteria/-ium/kritiseer and derivitives - krit (ies kr'it //krities and compounds + krit (ies kr'it //krities and compounds krieket krik@t //krieket e sound and stress krieketw krik@tv //krieket followed by w in compounds always v @@ -1260,7 +1328,9 @@ @) kundi (g k'Wnd@ // wiskundige/onoordeelkundigheid and many similar i) kus k'Ws // chemikus/historikus/politikus, etc. kwali (C@ kw%al%i // kwaliteit/kwalifiseer + kwaran (t kw%ar@n // kwarantyn and compounds _) kwar (tA kw%ar // move default stress: kwartaal/kwartier + kwartel kwart@l_ // restore default stress: kwartel/-eier/-s and similar kwi (tans kw@ // move default stress: kwitansie and compounds @@ -1273,11 +1343,13 @@ kabinet k%ab%inEt // kabinet/drankkabinet/kabinetsvergadering ka (dawer k%a // move default stress: kadawer and compounds kade (t k%adE // shorten 1st a and move default stress: kadet and compounds + kafe (te k%af@ // fix stress and vowel sounds: kafeteria and compounds kake (C kA:k@ // kakebeen/skakelaar/skakelbord/skakelfunksie kalahari kalah'A:ri // stress: Kalahari/-sand/-woestyn ka (lAnC k%a // kalender and compounds/kalant/kalander and compounds kalender k%alEnd@r // fix stress and vowel sounds: kalender/-s and compounds kali (b k%ali // kaliber/kalibrasie/kalibreer + kal (koen k%al // move default stress: kalkoen and compounds kalmeer kalm'e@r // kalmeer/gekalmeer kalmer (A kalm'e@r // kalmerend/e/kalmering kamer kA:m@r // compounds: kamerindeling/kamerorkes, etc. @@ -1288,9 +1360,11 @@ kandi (dA k%an%i // kandidaat/kandidate and compounds @A) kaner (_ k'A:n@r // Afrikaner/Amerikaner _) kan (to@ k%an move default stress: kantoor/kantore and compounds + kant (onder kant_ // kantonderklere/-onderrok, etc. ka (pabel k%a // move default stress and shorten 1st a sound: kapabel/-e kape (l k%ap& // move default stress and fix e sound: kapel and compounds kape (la@ k%ap@ // fix e sound: kapelaan/kapelane and compounds + kapi (ta k%ap%i // fix stress and 1st a sound: kapitaal and compounds/kapitalis/-me/-ties ka (pok k%a // move default stress and shorten a: kapok and compounds kap (tein k%ap // kaptein/kapteinskap/skeepskaptein kapsule k%apsyl@ // stress and e sound: kapsule/-fabriek/-vorm, etc. @@ -1312,9 +1386,10 @@ .group ko + kode (ring k%o@de@ // fix stress and vowel sounds: kodering and compounds ko (kon k%u // fix 1st o sound and move default stress: kokon and compounds kommando k%umandu // move stress, fix o sounds: kommando and compounds - kommissie k%umis%i //kommissie alone and in compounds + kommissie k%umis%i //kommissie alone and in compounds ko (pie@ k%u // kopiereg/kopie koe (rA k%u // koerier/koerasie/koerant and compounds korrek k%urEk //korrek and derivitives @@ -1336,6 +1411,7 @@ kommen (ta k%Om@n // kommentaar/kommentator _) ko (mmo k%u // move default stress and fix 1st o sound: kommosie/-s/kommoditeit/-e kompan (jie k%Omp%an // move default stress: kompanjie/-stuin + konse (kwen k%Ons@ // fix e sound: konsekwensies/konsekwent konserv k%Ons@rv // fix stress and v sound: konservasie/konservatorium and compounds kom (plA k%Om // komplot/kompleet _) kon (C k%On @@ -1348,6 +1424,8 @@ konnekteer kOnEkt'e@r // (ge)konnekteer konnek k%unEk // fix stress and vowel sounds: konneksie/-s and compounds konkel kONk@l // restore default stress and fix [N] sound: konkelaar/konkelwerk, etc. + konsen (tr k%Ons@n // fix stress and e sound: konsentreer/konsentrerend/konsentrasie + konsen (trie k%OnsEn // fix stress and e sound: konsentries/-e konside (rA k%Ons@d@ // fix vowel sounds: konsiderasie/konsidereer konsist k%Ons@st // konsistorie and compounds/konsistensie konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr @@ -1373,6 +1451,7 @@ _) la (kon l%a // lakoniek/lakonies/lakonisme lam (len l%am // move default stress: lamlendeling/lamlendig/-e/-heid _) lang (d l%aN // langdradig/langdurig and their derivitivs + _) lange (CA laN@ // e sound: langelaas/Langeberge lang (werp l%aN // move default stress: langwerpig/-e/-heid lank (moe l%aNk // move default stress: lankmoedig/-e/-heid _) lapel l%ap'&l //lapelwapen etc. @@ -1411,6 +1490,7 @@ linker lINk@r // blinkertjies/many compounds with linker and klinker lino (leum l@no@ // fix stress and i sound: linoleum and compounds, e.g. linoleumvloere @) ll (_N _^_EN // Words ending in -ll are English + lo (kalA l%u // fix stress and o sound: lokale/ontvangslokale, etc. _) losge (@P5 l'Osx2@ _) losies l%us'is //losies at start always means "to stay" &) lm (K l@-m @@ -1443,6 +1523,7 @@ man (da m%an //mandaat and compounds mane (wale m%an@ // fix stress and shorten a sound: manewale/-s and compounds manier m@ni:r //manier and compounds + manipu m%an%ip%y // fix stress and a sound: manipuleer/manipulering/manipulasie manu (sk ,many _) ma (rA m%a // short, unstressed a: Marietjie/Marina/Marinda/Marita/Maree/marog marine m%arin@ // marine and compounds @@ -1453,8 +1534,10 @@ mar (sje m%ar // move default stress: marsjeer and derivitives mas (biek m%as // move default stress: masbieker/-s masjien m@Sin // masjien and many compounds + masker mask@r // fix e sound: maskerafdruk/-agtig/ontmaskering maso (chis m%as%u // fix vowel sounds: masochis/-te/-ties/-e/-isme materi (A@ m%at%e@r%i // materiaal/materiale/materiële/materieel + materie (+ m%ate@r%i // stress and vowel sounds: materie and many compounds maties m'A:tis //tamaties, outomaties etc. ma (tr m%a // matriek and many compounds with matriek/MATRAS/MATROOS/MATROSE @) matig m'A:t@x2 // doelmatig/gelykmatig/regmatig; matig takes stress in compounds @@ -1491,7 +1574,7 @@ mis (tiek m@s mis (troos m@s // mistroostig mis (vorm m@s // stress on 2nd slb - mode m''o@d@ // fix e sound: modeontwerper/-maker, etc. + _) mode m''o@d@ // fix e sound: modeontwerper/-maker, etc. modee m@d'e@ //akkommodeer mode (l m%o@d& // fix stress and e sound: model/-le and compounds mode (lle@ m%Od@ // fix stress and e sound: modelleer/modellering @@ -1503,6 +1586,8 @@ moles (tA mOl@s' // molesteer/der moles (_ m%ulEs // fix stress and e sound: moles/huismoles moles (te_ m%ulEs // fix stress and e sound: moleste and compounds + mo (narg m%o@ // move default stress: monarg/monargies + monargie (_N m%o@n%arx2i // move stress to end: monargie monder (A m%Onde@r // move default stress and lengthen 1st e sound monu (ment m%On%y // monument/e/vrouemonument/monumenteel _) mor (C@ m%Or // move default stress: morbied/morfien/mortier @@ -1513,7 +1598,7 @@ musiek m%Wsik musi (C mysi' // musikant/musikus/musici muske (tier m%Wsk@ // move default stress: musketier/-s - môre (@ mO:r@' // move default stress: môreaand/-middag/-oggend + môre (@ mO:r@ // HAT: all compounds starting with môre- take stress on 1st slb. .group me medalje m@dalj@ // medalje/bronsmedalje/medaljewenner @@ -1529,6 +1614,8 @@ meganies m@x2'A:nis _) meege (@P5 m'e@x2@ me (juf m@ // move default stress and shorten e sound + melancholie (_N m%El%aNk%o@li // fix stress and 1st e sound: melankolie + melanch m%El%aNk // stress and 1st e sound: melancholies/melancholiek/-e/melancholikus/-ci memo (ran m%Em%u // fix stress and vowel sounds: memorandum/memoranda and compounds meneer m@n'e@r // meneer/meneertjie menere m@n'e@r@ // menere/beroepsmenere @@ -1551,11 +1638,12 @@ mentjie m'EiNci // monumentjie/dokumentjies AAs) mes (_ mEs // fix last e sound in compounds like kombuismes Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes - metaal m@t'A:l + metaal m@tA:l metale m@t'A:l@ _) meta (C m%Et%a // metabolies/-e/metafoor/metafories meteen mEt_'e@n // meteen/meteens/almeteens mete (o m%it%i // fix stress and e sounds: meteoor and compounds/meteore/meteories/-e + meteo (riet m%it%i%u // fix stress and vowel sounds: meteoriet/-e and compounds metode m@t'o@d@ // metode/s me (tod m@ // metodies/metodiek @@ -1628,8 +1716,10 @@ nese (_ n'e@s@ //japannese soedannese stres and e sound netel ne@t@l // netelig and derivitives/netel and compounds nogal nOx2al // fix o sound: nogal/-s + nok (turn n%Ok // move default stress: nokturne/-s no (minA n%O // fix 1st o sound: (ge)nomineer/nominasie nommer (een n%Om@r? // stress: nommereen in compounds like nommereenspeler + noncha (la n%OnS%a // fix stress and ch sound: nonchalant/-e/-heid nood (saak n%o@t // move default stress: noodsaaklik/-e/-heid, vs. noodsaak nood (saak_N no@t // restore default stress: (ge)noodsaak normaal nOrm'A:l // normaal/normaalweg/abnormaal @@ -1672,6 +1762,7 @@ oranje %o@ranj@ // fix stress and e sound in compounds: oranjeagtig/oranjekleur _) ordent %OrdEnt // move default stress: ordentlik/-e/-er/-ste/-heid orent (K %o@rEnt // fix stress of orent in compounds: kiertsorent/orentspring, etc. + orgi (de %Orx2@ // move default stress: orgidee/orgideë and compounds orie o@ri oriu 'o@riW _) or (ka %Or // move default stress: orkaan/orkane/orkaanwaarskuwing... @@ -1753,10 +1844,11 @@ _) op (@P2 'Op // opeet/opeis/optredes/opoffering open (+ o@p@n // open/opening/e/s open (b %o@p@n openbaar/openbare/openbaring - _) oper (A %o@p@r // operasie/operateur/opereer - &) opera (sie %o@p@rA: // default stress when operasie 2nd part of compound: hartoperasie, etc. - opera (_ 'o@p@ra // stress: opera/operas + _) oper (A %o@p@r // operateur/opereer + operasie %o@p@rA:si // fix stress operasie/hartoperasie, etc. + opera (K o@p@r%a // stress: opera/operas/operamusiek/-sanger opinie o@p'ini // opinie/-s + opium o@piWm // fix vowel sounds: opium and compounds op (nuut %Op // move default stress: opnuut op (offer Op // fix o sound: selfopperende, etc. oppon (A %Op@n // opponent/opponeer @@ -1769,7 +1861,7 @@ opti (mA %Opt%i // optimis/-me/-te/-ties/optimaal op (winde %Op // move default stress: opwindend and derivitives _) or (ga %Or // move default stress: orgaan/organe - organisasie Orx2anis'A:si + organi (sA %Orx2%ani ose (a %o@S%i // fix stress and s and e sounds: oseaan/oseane and compounds @) oties 'o@tis // antibioties/eksoties/eroties/neuroties ower (@ o@v@r // lowergroen/betowerend/dowerig/compounds of owerheid @@ -1809,6 +1901,7 @@ _) onnie Oni // onnie/-s; not on- prefix onreg (K Onr&x2 // stress: onreg/te/onregmatig on (regv++ %On // stress: onregverdig/e/heid + on (sin_N On // restore default stress: onsin on (skuld_N 'On // restore default stress: onskuld _) ont (@P3 %Ont ont (d@ %On // remove t sound: ontdaan/belastingontduiking/ontdooi @@ -1834,9 +1927,10 @@ ongeriefli (k Onx2@r'ifl@ // to avoid "-lik" suffix retranslation onder On@r onder (bre %On@r // move default stress: onderbreek/onderbreking + onder (danig %On@r // move default stress: onderdanig/-e/-heid onder (druk %On@r // exception to default stress rule onder (duim %On@r // exception to default stress rule - onder (enC ''On@r_ // default stress: onderent + _) onder (enC ''On@r_ // default stress: onderent onder (hande %On@r // move default stress: onderhandel and derivitives onder (hor %On@r // exception to default stress rule: onder (hou %On@r // move default stress: onderhou/-dend/-e @@ -1848,6 +1942,8 @@ onder (steu %On@r // exception to default stress rule: ondersteun/-ing/-ers onder (vin %On@r // exception to default stress rule: ondervind/ondervinding onder (vra %On@r // move default stress: ondervra/-ging + onder (werping %On@r // move default stress: onderwerping/-sklousule + onder (worp %On@r // move default stress: onderworpene/onderworpenheid, etc. _) onderge (@P7 'On@rx2@ _) on (kant On // stress on 1st slb.: onkant and compounds on (langs On // stress on 1st slb.: onlangs/-e @@ -1864,6 +1960,7 @@ oontjie oINki oondjie oINki oombliklik o@mbl'Ikl@k // stress: oombliklik/e + _) oopge (@P5 'o@px2@ // oopgesper, etc. oorbluf o@rbl'Wf // stress: oorbluf/te oor (blyw %o@r // move default stress: oorblywend/-e oorbodig o@rb'o@d@x2 // stress: oorbodig/-e/-heid @@ -1879,6 +1976,7 @@ oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling _) oorlede o@rl'e@d@ // stress oorlede/ne/s oorle (wing o@rl''e@ // stress on 2nd slb.: oorlewing/-sekuriteit/-situasie + oor (meester %o@r // move default stress: oormeester oor (reed %o@r // move default stress oor (redA %o@r // move default stress: oorredingskrag oor (rompel %o@r // move default stress @@ -1887,6 +1985,7 @@ oor (spronk %o@r // move default stress: (on)oorspronklik and compounds oor (stur %o@r // move default stress: oorsturig/-e/-heid oor (tr %o@r // oortree/oortreding/oortref + oor (trek o@r // restore default stress: oortreksel/oortrekpapier/oortrektrui oor (tuig %o@r // oortuig/oortuiging/oortuigende _) oor (vleuel %o@r // move default stress: oorvleuel/-ing _) oor (vloedig %o@r // move default stress: oorvloedig/-e vs. oorvloed @@ -1914,6 +2013,7 @@ pantser pants@r // fix e sound in compounds starting with pantser pa (pier p%a // papier and compounds parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg. + parme (saan p%arm@ // move default stress: parmesaan(kaas) and compounds parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds pa (tat p@ // patat/warmpatat/wurgpatat patie (K p%at'i //words ending in patie has stress at end + a sound/simpatiek @@ -1930,9 +2030,9 @@ pa (Ciljoe p%a% // fix stress: pawiljoen/paviljoen/-e and compounds polio po@li;u // polio and compounds _) peli (ka p%El%i // move default stress: pelikaan/pelikane -// @) pene (_ p@n@ // geroepene/ontslapene/uitgeworpene pen (dule p%En // move defaul;t stress: pendule/-s pene (_ p@n@ // geroepenes/ontslapenes/uitgeworpenes + pene (trA p%En@ // fix e sounds: penetrasie/(ge)penetreer pensi (oen p%EnS%i; // move default stress: pensioen and compounds _) perde p'&:rd@ @) perde (_ p&:rd@ // compounds ending with perde @@ -1944,6 +2044,7 @@ skam) pere (_ p@r@ ?? shorten 1st e in ending perfek p@rfEk // perfek/-te/-sie/-sionis peri (o p%e@r%i; // stress: periode/-s and compounds + perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds pe (rron p@ // move default stress and fix e sound: perron and derivitives r) peling (_ p@l@N //verwerpeling etc. peloton pEl@t'On @@ -1953,7 +2054,10 @@ perso (neel p%&rs%u // personeel and compounds pervers p@rf&rs // pervers/perversie _) pe (trA_ pe@ // lengthen e sound: Petro/Petra + petrol pEtr@l_ // o = schwa: petrol and compounds + petrol (eum p@tro@l // move default stress and soften e: petroleum and compounds pe (tunia p@ // fix stress and e sound: petunia/-s + phi (lippA_ f@ // fix stress and 1st i sound: Philippa/Philippi _) pi (la p%i // move default stress: pilaar/pilare/pilatus pi (sto p@ // pistool/pistole and compounds pizza pitsa // fix zz sound: pizza and compounds @@ -1976,6 +2080,9 @@ _) pos (a pOs //posadres/posadministrasie _) post (K p'@Ust- //post where it means after _) post (u p%Ost // move default stress: postuur/posture/postuum and compounds of postuur + poten (sia p%o@t%En // fix e sound: potensiaal/potensiale and 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 _) prak (tyk pr%ak // stress: praktyk and compounds prefek prifEk // fix vowel sounds: prefek/-te/-tuur and compounds @@ -1983,6 +2090,7 @@ pre (mier pr@ // move default stress and fix e sound: premier and compounds pre (sA pr@ // president/presies/present pre (se_ pre@ // fix e sound of words ending in -prese + preten (si pr@te~n // fix stress and e sounds: pretensie/(on)pretensieus/-e primi (t pr@m@ // make i sounds schwa: primitief/primitiewe prinsi (pA pr@ns@ // move default stress: prinsipaal/prinsipale/prinsipaals/prinsipieel/-ële prinsipe (K pr@nsip@ // stress on 2nd slb.: prinsipe/-s @@ -1990,8 +2098,10 @@ posisie puz'isi predi (kant pr%e@d@ // predikant and compounds prinse (s pr@nsE // prinses/-se|-sie/-s + @) prinses (_ pr@nsEs // fix e sound in compounds ending in -prinses: feeprinses, etc. priv (a@ pr%if // privaat/private pro (blA pr%u // probleem/probleme + proble (mati pr%Obl@ // fix vowel sounds: problematies/-e/problematiek profesie prOf@s'i // fix vowel sounds and move stress pro (CA pr%u // probeer/produk/proses/professie/provinsie prokie pro@k%i //sprokie and compounds @@ -2032,6 +2142,7 @@ _) r (_D. rant _) r (_DD. rant _) r (_DDD rant + raad (A rA:t_ // fix d sound and short pause: raadop/voorraadopname, etc. radika (li radika radika (le radik'A: radikaa radik'A: @@ -2141,6 +2252,7 @@ sigare (t s@x2%arE // fix vowel sounds and move default stress sig (a@ s@x2 // sigaar/sigare/sigaardosie siklu (s siklW // siklus and many compounds + silhoe (A s@l%uw // silhoeët/-te/-teer sili (nd s@lI // silinder(s)/silinderkoppe sinteties s@nte@tis // sinteties/e/fotosinteties/-e si (viel s@ // move default stress and fix i sound: siviel/-e @@ -2151,10 +2263,13 @@ saamge (P6 s'A:mx2@ // saamgepers/-de/saamgetel/saamgeêet saamgee sA:mx2e@ // fix ee in saamgee; see rule: saamge (P6 sabot (A s%ab%ut // sabotasie/saboteer + safari s%afA:r%i // fix 1st a: safari/safaripak, etc. + sa (ff s%a // move default stress: saffier and compounds/saffraan and compounds salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling - salon salOn // eetsalon/haarkappersalon + salo (n s%alO // eetsalon/haarkappersalon _) sam (b s%am // move default stress: sambok/-kke/sambreel/sambrele and compounds _) same (@P4 s'A:m@ // samekoms/sameswering + _) same (hA@ s%A:m@ // stress: (on)samehangend/samehorig/-e/-heid, but samehang samel (C sA:m@l // versamelde: see rule:_) same (@P4 s'A:m@ samen (+ sA:m@n // gesamentlik/-e _) san (da s%an // move default stress: sandaal/-tjies/sandale @@ -2177,12 +2292,13 @@ se (llin s%&' // stress on 'in: (met)gesellin/-ne/-netjie, etc. @) sel (wig s'&l // stress: (ver)eenselwig and derivitives _) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s + _) semi (_ sEmi // fix e sound: semi/semi-formeel, etc. semi (na s%Em%i // seminaar/seminare/seminarium sening se@n@N // sening/haaksening/heupsening _) senior s''i:ni@r // default stress; fix vowl sounds: senior and compounds starting with senior senior (itei s%i:n%i%Or // fix vowel sounds: senioriteit - sen (trale s%En // exception to default stress rule + _) sen (tra@ s%En // exception to default stress rule: sentraal/sentrale _) ser (e@ s@r // fix stress and 1st e sound: sereen/serene sere (moni s%Er@ // seremonie/-meester/huwelikseremonie/seremonieel ser (sant s@r // move default stress: sersant and compounds @@ -2263,7 +2379,6 @@ @) skynlik sk'eInl@k oê­³kynlik/onwaarskeinlik/waarskynlikheid smelt sm< sodom (iet s,o@dOm // fix stress and 2nd o sound: sodomiet/-e - sonde (C@ sOnd@ // sondebok/sondelas son (geC sOn // songebakte/-brande/-bruinde/-droogde sosial (i so@Sial' // sosialis/sosialisme/sosialisties so (v so@ // soveel/sover @@ -2279,6 +2394,7 @@ @) spre (ken spr'e@ // stress: vanselfsprekend _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit stimu (lA st@m%y // move default stress and fix i sound: stimuleer/stimulering/stimulasie + _) sub (a sWb_ // subagent/subartikel/subatomies, etc. sub (li s%Wb // move default stress: subliem/-e sub (stansie s%Wp // move default stress and fix b sound: substansie/-s/substansieel/-siële sub (ti s%Wp // stress and b sound: subtiel/-ste/subtiliteit @@ -2293,7 +2409,6 @@ swart (gal sw%art // move default stress: swartgallig @) swem (_ swEm // fix e sound of compounds ending in swem: uitswem/wegswem... swerk sv&rk - swinkel svINk@l .group st D_) ste st@ //ste after numbers 22ste etc. @@ -2303,6 +2418,7 @@ staties st'A:tis steding ste@d@N // besteding and compounds C) steker ste@k@r // e sound: (aan/dop/kwaad/rugsteker/-s/-y, etc. + _ne) stel st@l // fix e sound: nestel/-end wor) stel st@l //worstel e sound in compounds @) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds @) ste (llen st'& // belangstellendes/gerusstellend/regstellende/teleurstellend @@ -2317,6 +2433,7 @@ stene (_ ste@n@ //skoorstene, bakstene etc. 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 @) sterkt st&rkt // compounds ending in sterkte weg) ster (we st&r // wegsterwe/wegsterwende @@ -2346,6 +2463,7 @@ t (_dN // final t, and next word starts with d A) tch _^_EN // clutch/pitch/bitch tabak tab'ak; + ta (blet t%a // move default stress: tablet/-te and compounds tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds @) talig t'A:l@x2 // Anderstalig/tweetalig _) ta (ma t%a // tamatie and compounds @@ -2362,6 +2480,7 @@ t (ema++ t // compounds with tema tia (_ Sja + tiara t%iA:ra // stress: tiara/-s _) tibet t%ibEt // move default stress: Tibet/-aans/-e @) tief (_ t'if // alternatief/aktief/instinktief/(ak)kumulatief @) tiewe (_ t'iv@ // alternatiewe/aktiewe/instinktiewe/(ak)kumulatiewe @@ -2369,6 +2488,8 @@ ti (ra t%i // move default stress tiran tirade tj tS @) tj (a tj // separate tj: agtjarig/blatjang/bontjas/olifantjag/ouditjaar/tweegatjakkals + tjello tSElu // fix e sound and o in compounds: tjello/-konsert/-musiek/-sonata + tje (llis tS%E // move default stress and fix e sound: tjellis/-te tj (ie c _) tj (ie tS ui) tj tj // uitjaag/uitjou/uitjubel @@ -2382,10 +2503,12 @@ @) tion (_ _^_EN //words ending in tion is English @) tions (_ _^_EN //words ending in tions is English toegank t%ux2'aNk // toeganklik/heid + toe (komsti t%u // move default stress: toekomstig/-e toenemen tun'e@m@n //toenemend/e/er toereike t%ureIk@ // toereikend/heid toereken (b t%ur'e@k@n // ontoerekenbaar/heid/ontoerekenbaarheid toneel t%une@l + tonele t%une@l@ // fix o sound: tonele and compounds toegeef t%ux2e@f // move default stress: (on)toegeeflik/-e/-heid toege (wing t'ux2e@ // exception to _) toege (@P5 tux2@ _) toege (@P5 t'ux2@ @@ -2405,7 +2528,7 @@ @) treer tr'e@r // this slb always takes stress; many words tref (afs trEf_ // fix e sound and insert short pause: trefafstand/-e - trek tr&k + tre (k tr& trekker tr&k@r // voortrekkerleier/Voortrekkerstraat/salaristrekkersvergadering triomf (ant tr%i%Omf // move default stress: triomfantlik/-e @) trise (_ tr'is@ // aktrise and similar @@ -2447,6 +2570,10 @@ teks (+ tEks // compounds with teks tent (_ tEnt //suurstoftent and others te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog + s) te (king te@ //ontsteking in compounds + te (rgend t'& //tergend and compounds + @C) te (rgend t'& //sieltergend and others + _) teraarde t%&r?A:rd@ // move default stress and fix e sounds: teraardebestelling/-s n) terie t@r'i // galanterie/infanterie and compounds wa) te (ring t@ //water exception to rest @@ -2487,6 +2614,7 @@ &) tels (_S4 t@ls sleu) tel t@l //sleutel in compounds te (l t& + A) te (ling t@ // betiteling/insluiteling/loteling/uitbeiteling/verstoteling teltjie t@lki @) tel (o t@l // hartelose/besluiteloos/gedagtelose &) tert (A t@rt // fix e sound: agtertoe/foltertuig/gietertuit/kilometertoelae/lastertaal/letterteken @@ -2529,7 +2657,6 @@ u (CA y uu y ui Yy - uiwe Yyv@ //druiwesap and many others uie (C Yy@ // graansuierdiens/kruiersloon/kuiergas/luierbroekie/sluierdoek/suierklep/getuienis uy Yy @@ -2543,6 +2670,7 @@ uit (eenloop Yyt_ // restore default stress: uiteenloop uiteen (lop %Yyt_%e@n // move stress to 3rd slb.: uiteenlopend/uiteenloping uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@ + uit (kansel ''Yyt // enforce stress on 1st slb: uitkanselleer uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder uit (sorteer ''Yyt // remove stress from -eer and place on 1st slb uitspreekl %Yytspre@kl // fix stress and avoid -lik suffix: onuitspreeklik/-e @@ -2554,9 +2682,8 @@ uitgewerk Yytx2@v&rk // uitgewerk and derivitives; see rule: uitgewer uitgewerp Yytx2@v&rp // fix vowel sounds, see rule: uitgewer uitke (n YytkE // mix e sound: uitken - C) uiwer (A Yyv@r // huiwerend/suiweringsaanleg and similar compounds ulti (ma %Wlt%i // move default stress: ultimatum/-s - u (ra %y // uraan and compounds/uranus + _) u (ra %y // uraan and compounds/uranus urine %yrin@ // urine and compounds urineer yrin'e@r // stress to end utjie Yyci @@ -2577,6 +2704,9 @@ vagina vax2ina // fix v sound and shorten a sound: vagina/-s vagin (A@ v%ax2%in // move default stress: vaginale and similar vakansie f@k'ansi + va (ku v%a // fix stress and v sound: vakuum and compounds/vakume/evakueer + vak (unie fak_ // restore default stress, insert short pause: vakunie and compounds + va (llei f%a // fix stress and a sound: vallei/-e and compounds _) van (@ f%an // (on)vanpas/vanjaar/vandag/vanaand/vanoggend and many similar _) vang (@ faN // vangwa, etc.; see rule: _) van (@ f%an vangen f'aN@n // gevangene/gevangenis/bevangenheid @@ -2590,6 +2720,7 @@ @) vel (A fe@l // aanbeveling/aanbevelingsbrief vele f'e@l@ ven (dusie f@n // fix stress and e sound: vendusie and compounds + vene (siA v@ni: // Venesië/Venesiese ven (ster fe~n // nasalise ven (yn f@n // venyn/venynig ver f@r @@ -2607,6 +2738,7 @@ verende f'e@r@nd@ verer (ing f@r_e@r // verering and compounds ending with verering, eg. heldeverering vergete f@rx2'e@t@ // vergeterig/vergetelheid + _) vergewe f@rx2e@v@ // vergewe/vergewend/-e vering f'e@r@N //motivering preservering etc. @C) vers (_ f&rs // teksvers/slotvers/kindervers and similar @C) vers (e_ f&rs // plurals of words like the above @@ -2630,10 +2762,11 @@ verte (l f@rt& // oorvertelling/rondvertel and similar verter (A f@rte@r // spysvertering and compounds/spysverterende ver (velA f@r // vervelig/verveling (see: _) ver (@P3 f@r + verwe (_ f&rv@ // fix e sound: (olie/water)verwe, etc. verwery f&rv@r%eI // fix stress and e sounds: verwery and compounds like huisverwery vi (brA v%i // fix v and i sounds: vibrasie/vibreer vi (cto@ v%i // fix v and i sounds: victoriaans/-e - video v'idi;u //video and compounds + video vidi;u //video and compounds vier (kantig f%i:r // move default stress: vierkantig/-e vs. vierkant ville _^_EN @@ -2652,10 +2785,10 @@ _) vasge (@P5 f'asx2@ vleuel flY@@l // fix last e sound in vleuel in words like vleuelklavier/tweevleuelig, etc. vlieë (nier fl%i@ // move default stress: vlieënier and compounds + vodka vOtka // fix v sound and a sound in compounds: vodka/-bottel, etc. @) voerig f'ur@x2 // breedvoerig/uitvoeriger - volke f'Olk@ // volke/-re: exception to: vo (lC f%O - volk (ing fOlk // bevolking: exception to: vo (lC f%O - volk (s fOlk // volksliedere/volksbeweging/volksleier and similar + volk fOlk + vol (kome f%Ol vo (llA_ fO // volle/vollê/Volla - exception to: vo (lC f%O volle (dig f%Ole@ // fix stress and e sound: (on)volledig/-e/-heid... vo (ller fO // exception to: vo (lC f%O @@ -2695,6 +2828,7 @@ vrygewig freIx2'e@v@x2 // vrygewig/-e|-heid vry (wil fr%eI // vrywillig/-lik|-heid vuldig f'Wld@x2 // sorgvuldig/veelvuldig/vermenigvuldig and variants + vul (ka f%Wl // move default stress: vulkaan/vulkane/vulkanies @@ -2702,6 +2836,7 @@ w v w (w d) w w + ad) w v // w sound: badwater/bladwisselend/stadwaarts @C) w (erk v // fix w sound: hardwerkend/handwerk/naaldwerk AAd) w v // bloedweinig/draadwerk/huidweefsel/landgoedwyn/smeedwerk/skottelgoedwasser nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal @@ -2709,10 +2844,14 @@ k) w w k) w (And v // fix w sound: buikwand/rukwinde s) w w + s) w (r v // fix w sound: skeepswrak/sielswroeging/aardswreedheid + wreed (a vre@t_ // fix d sound and insert short pause: wreedaard/-s + wreed (aardig vr%e@t_ // move default stress: wreedaardig/-e/-heid @s) w (al v // fix w sound: dwarswal/gruiswalle/loodswalvis s) w (eek v // fix w sound: feesweek/kersweek/paasweek/vandeesweek/werksweek @s) w (iel v // fix w sound: fietswiel/gewaarwordingswiel and similar compounds s) w (il v // fix w sound: groepswil/hemelswil/liefdeswil/korswil + C) winkel vINk@l // w sound: boek/dames/plaaswinkel, etc. s) w (yf v // fix w sound: viswyf/ganswyfie/mannetjieswyfie ens) w v ers) w v // flenterswaai/kerswense/koerswaarde/kopersweerstand/trekkerswee/verkeerswisselaar @@ -2724,6 +2863,7 @@ ooC) w v // booswig/grootwild/ooswaarts/ out) w v // houtwerk/soutwater and similar yd) w v // fix w sound: sluittydwerk/(wa)wydwakker + wee (moedi v%e@ // move default stress: weemoedig/-e/-heid weer (lê v%e@r // move default stress weer (leg w%e@r // move default stress: (on)weerlegbaar @) weg (_ v&x2 // blindweg/botweg and many similar @@ -2736,12 +2876,13 @@ werwel v&rv@l // fix w and 2nd e sound: werwel and many compounds w (ese_ v //words ending in wese t) w w + t) w (at v // geut/put/soetwater, etc./ietwat it) w v // inkuitwisser/witwyn/uitwoed/witwatersrand @) wa (_N vA: // words ending in -wa: afleweringswa @) w (aen v // strydwaens/afleweringswaentjie @s) w (And v // kranswand/kuswind/meswond @s) w (An_ v // plurals of the above in -de: de treate - _) wan (o van? // wanorde/wanopvatting + _) wan (A van_ // wanorde/wanopvatting/wanaanpassing/winindruk wapen vA:p@n // fix problems with compounds and derivitives of wapen: ontwapening/wapengeweld //wapenopleiding @k) ware vA:r@ // breekware/blikware/lakware @@ -2768,9 +2909,10 @@ waarder (@ vard'e@r // waarderend/e/waardering &) waardig v'A:rd@x2 // stress on -waardig: merkwaardig/besienswaardigheid, etc. s) wed (C vEt // toetswedstryd/tenniswedstryd/afloswedloop + @) wed (str vEt // fix e sound: buite/foto/rugbywedstryd s) wedd (@ vEd // beroepswedder wedywer vEteIv@r // pronunc. of d and e-sound in derivitives - weer (hou w%e@r // exception to default stress rule + weer (hou v%e@r // exception to default stress rule weer (spre ve@r' // weerspreek/weersprekende/weerspreking weer (staan v%e@r // weerstaan/onweerstaanbaar C) wering (_ ve@r@N //borswering, diefwering etc. @@ -2782,6 +2924,7 @@ wh _^_EN // words containing wh are English _) wig vIx2 // fix stress: gewig/-tig/-e wiking vikiN // fix i sounds + wilhel (mi v@lh%&l // move default stress: Wilhelmina/-straat wn _^_EN // names containing town/Brackendowns/Brown worth _^_EN @@ -2829,6 +2972,7 @@ ge) ë (rf & // oorgeëf/-de ë (teit @ // fix stress and e sound: variëteit and compounds ïgnoreer ix2nur'e@r // geïgnoreer + ïllu (st %il%W // geïllustreer/-de ï (nt @ // geïnteresseerd ï (nC 'I // beïndruk/beïnvloed ïsol %is%ul // geïsoleer/-d diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index b5733d35..235a534f 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -127,16 +127,15 @@ tS v w z Z z2 Dictionary hi_dict -@ @- @2 @3 a a: aI aU -e E e: E: E~ i I i: -l- o O o: O: o~ O~ r- -U u: u~ V +@ @2 @3 a a: aI aU E +e: E: E~ I i: O o: O: +O~ r- U u: V -- : b c ch d d. f -g h H j J k kh l -m n N n. n^ p ph Q -q r s S s. t T t. -t.h th v w x z +: b c ch d d. f g +h H j J k kh l m +n N n. n^ p ph Q q +r s S s. t T t. t.h +th v w x z Dictionary hr_dict @@ -155,12 +154,12 @@ tS; v x z Z Dictionary hu_dict A a: E e: i i: o o: -u u: Y y y: Y: +u u: Y Y: -: b c C d dZ f g -h j J k l l^ m n -N n^ p R R2 s S s2 -t tS ts v z Z +: b c d dZ f g h +j J k l m n n^ p +R R2 s S s2 t tS ts +v z Z Dictionary it_dict @@ -288,7 +287,7 @@ Dictionary pt_dict & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU -i i/ iU i~ o O oI OI +e~ i i/ iU o O oI OI o~ u U uI u~ y * : ; b C d dZ f @@ -300,17 +299,14 @@ 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 +@ @- @I a aI aU e ea +eI eU i I^ iI o Oa oI +oU u uI y -* *; 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 t; tS -ts ts; v v; w w2 x z -Z z; Z; +* *; b c d dZ f g +h j k l m m; n p +r s S S; t tS ts ts; +v w w2 x z Z Dictionary is_dict @@ -337,13 +333,16 @@ h j k l m n N p r R s t w z +Dictionary grc_dict + + + Dictionary mk_dict -& @ @- @2 a A a: E -e e: E~ i I i: l- o -o: oU r- u u: y +& @ @- @2 a E e i +I o r- u -* b d dZ dZ; f g h -j k k^ l l^ m n N -n^ p r R s S t tS -ts tS; v x z Z +* b d dZ dZ; f g j +k k^ l l^ m n n^ p +r R s S t tS ts v +x z Z diff --git a/dictsource/hi_rules b/dictsource/hi_rules index e60091c9..5fb319f4 100755 --- a/dictsource/hi_rules +++ b/dictsource/hi_rules @@ -10,6 +10,19 @@ // ?3 use diphthong for "au" +.replace + ० 0 + १ 1 + २ 2 + ३ 3 + ४ 4 + ५ 5 + ६ 6 + ७ 7 + ८ 8 + ९ 9 + + // Vowels .group अ diff --git a/dictsource/hu_rules b/dictsource/hu_rules index f5709ac6..d9a320d2 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -2,6 +2,12 @@ // This file is UTF-8 encoded +.replace +// allow o,u-circumflex for o,u-double-acute + ô ő + û ű + + .group a a A _) a (_ %A diff --git a/dictsource/mk_rules b/dictsource/mk_rules index 592c9dee..70694f09 100755 --- a/dictsource/mk_rules +++ b/dictsource/mk_rules @@ -1,6 +1,42 @@ // translation rules for Macedonian // This file is UTF-8 encoded +.replace + a а + b б + c ц + ć ћ + č ч + dž џ + dz ѕ + d д + đ ђ + e е + f ф + g г + h х + i и + j ј + k к + lj љ + l л + m м + nj њ + n н + o о + p п + r р + s с + š ш + t т + u у + v в + z з + ž ж + đ ѓ + ć ќ + + .group а а a diff --git a/dictsource/ro_rules b/dictsource/ro_rules index 785c16f1..7c8972e7 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -3,6 +3,10 @@ // This file is UTF-8 encoded +// replace s-comma, t-comma by s-cedilla, t-cedilla +.replace + ș ş + ț ţ .group a diff --git a/phsource/compile_report b/phsource/compile_report index be3bcc11..9e02f69d 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,7 +1,7 @@ -39 phoneme tables +40 phoneme tables new total base 96 96 - base2 23 114 + base2 24 115 en 53 144 en_n 30 144 en_us 37 144 @@ -25,13 +25,14 @@ mk 3 130 sr 2 129 ru 38 126 - it 17 117 + it 17 118 la 21 114 - es 6 114 - pt 28 131 + es 6 115 + pt 27 131 pt_pt 20 131 - ro 36 138 - el 8 114 + ro 36 139 + el 8 115 + grc 7 120 sv 25 118 no 28 122 is 32 121 @@ -215,7 +216,7 @@ 30 r/trr base af de fi nl ru ro sv sw 11 r/xr base 2 ufric/ch base de - 3 ufric/f base de ro + 4 ufric/f base de ro grc 2 ufric/f_ base ro 5 ufric/h_ base fi hi la 6 ufric/h@ base fi hi la @@ -272,7 +273,7 @@ 8 ustop/ts_pzd base hi ru 2 ustop/ts_pzd_ hi hu 2 ustop/ts_pzd2 hi hu - 2 vdiph/0i pt vi + 3 vdiph/0i pt grc vi 3 vdiph/0i_2 en_sc no en_wi 3 vdiph2/e@ en_sc en_wi 1 vdiph2/ea ro @@ -323,10 +324,10 @@ 1 vdiph/au_3 en_rp 6 vdiph/au_4 base2 cy eo sk it is 1 vdiph/ee-e hi - 5 vdiph/eei en de nl pt vi + 5 vdiph/eei base2 en de nl vi 3 vdiph/eei_2 en_us eo fi 2 vdiph/eei_3 en_rp sk - 3 vdiph/eeu pt vi zhy + 4 vdiph/eeu pt grc vi zhy 2 vdiph/eeu_2 la pt_pt 2 vdiph/eeu_3 en_n en_wm 1 vdiph/eey fi @@ -346,7 +347,7 @@ 9 vdiph/ooi en en_n en_us cy eo fi no zhy 1 vdiph/ooi_2 af 2 vdiph/ooi_3 en_rp en_wm - 1 vdiph/oou cs + 2 vdiph/oou cs grc 2 vdiph/ou fi zhy 2 vdiph/ou_2 sk ro 2 vdiph/ou_3 is @@ -363,7 +364,7 @@ 1 vdiph/Vu_2 en_wm 1 vdiph/Vu_3 nl 2 vdiph/&y fi nl - 2 vdiph/yi fi no + 3 vdiph/yi fi grc no 1 vdiph/y#i fi 1 vdiph/y#i_2 is 1 vdiph/yi_fr fr @@ -416,7 +417,7 @@ 4 vowel/& en_rp fi hi sv 4 vowel/0 base2 en hi pt 3 vowel/0_2 en_n pt_pt sw - 5 vowel/0_3 en_us en_sc en_rp en_wm hu + 4 vowel/0_3 en_us en_sc en_rp hu 2 vowel/@_2 fr 2 vowel/&_2 en_us 6 vowel/@_3 en_sc de hi @@ -480,7 +481,7 @@ 2 vowel/ii_6 en_wm 1 vowel/ii_en en 10 vowel/@_low en_rp hi ro no - 12 vowel/o base2 en en_wm de hi it la pt_pt sv en_wi + 10 vowel/o base2 en de hi it la pt_pt sv en_wi 4 vowel/o_2 cy hi hu no 2 vowel/o-_2 en_n en_wm 3 vowel/o_3 en_sc fr @@ -493,10 +494,10 @@ 1 vowel/oe_4 sv 2 vowel/o_mid fr hu 12 vowel/oo en_sc de eo la es el sv no zhy en_wi - 10 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi + 12 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi 3 vowel/oo_2 en_sc cy cs 1 vowel/oo_3 af - 5 vowel/oo_4 hi pl it en_wi + 6 vowel/oo_4 en_wm hi pl it en_wi 1 vowel/oo_5 is 6 vowel/oo_en en en_n en_rp 2 vowelr/aa_r en_sc @@ -538,11 +539,11 @@ 1 vowel/yy fr_ca 1 vowel/yy_2 no 1 vowel/yy_3 sv - 5 vowel/yy_4 de hu la is + 6 vowel/yy_4 de hu la grc is 1 vwl_af/@ af 1 vwl_af/I af 2 vwl_af/r@ af - 6 vwl_en/aI@ en en_n en_us en_sc en_rp en_wm + 5 vwl_en/aI@ en en_n en_us en_sc en_rp 2 vwl_en/aI@_2 en_sc 5 vwl_en/aU@ en en_n en_us en_sc en_wm 12 vwl_en/@L en en_us en_sc en_rp en_wm af @@ -550,6 +551,7 @@ 1 vwl_en_n/aa_5 en_n 2 vwl_en_n/O@ en_n 1 vwl_en_n/u_ en_n + 1 vwl_en/ooi@ en_wm 3 vwl_en_rp/aa en_rp 1 vwl_en_rp/aU@ en_rp 1 vwl_en_rp/e@ en_rp diff --git a/phsource/mbrola/en1 b/phsource/mbrola/en1 index bfea6f7a..c5c1f4c5 100644 --- a/phsource/mbrola/en1 +++ b/phsource/mbrola/en1 @@ -27,3 +27,4 @@ 0 @- NULL 0 NULL 0 aI@ NULL 60 aI @ 0 aU@ NULL 75 aU @ +0 x NULL 0 k diff --git a/phsource/mbrola/us b/phsource/mbrola/us index ed437991..c5529d50 100644 --- a/phsource/mbrola/us +++ b/phsource/mbrola/us @@ -12,6 +12,7 @@ 0 w/ NULL 0 w 0 ; NULL 0 NULL 0 g- NULL 0 NULL +0 x NULL 0 k_h 0 @- NULL 0 NULL 0 aI@ NULL 60 AI r 0 aU@ NULL 75 aU r diff --git a/phsource/mbrola/us3 b/phsource/mbrola/us3 index 3b66a0eb..f3b8897f 100644 --- a/phsource/mbrola/us3 +++ b/phsource/mbrola/us3 @@ -12,6 +12,7 @@ 0 w/ NULL 0 w 0 ; NULL 0 NULL 0 g- NULL 0 NULL +0 x NULL 0 k 0 @- NULL 0 NULL 0 aI@ NULL 60 AI r 0 aU@ NULL 75 aU r diff --git a/phsource/ph_base2 b/phsource/ph_base2 index c0db1771..4fbb2922 100644 --- a/phsource/ph_base2 +++ b/phsource/ph_base2 @@ -107,6 +107,13 @@ phoneme eI endphoneme +phoneme EI + vowel starttype (e) endtype (i) + length 230 + formants vdiph/eei +endphoneme + + phoneme oI vowel starttype (o) endtype (i) length 240 diff --git a/phsource/ph_english_sc b/phsource/ph_english_sc index 30b9daa4..dd167c56 100644 --- a/phsource/ph_english_sc +++ b/phsource/ph_english_sc @@ -92,14 +92,14 @@ endphoneme phoneme I - vowel starttype (e) endtype (e) + vowel starttype (@) endtype (@) length 110 formants vowel/e# before l/2 vowel/@_3-30+l/L2_@L endphoneme phoneme I2 - vowel starttype (e) endtype (e) + vowel starttype (@) endtype (@) unstressed length 110 formants vowel/e# diff --git a/phsource/ph_english_wm b/phsource/ph_english_wm index 90db524f..3799c6c7 100644 --- a/phsource/ph_english_wm +++ b/phsource/ph_english_wm @@ -62,7 +62,7 @@ endphoneme phoneme 0 vowel starttype (o) endtype (o) length 140 - formants vowel/0_3 + formants vowel/oo_4 reduceto @ 0 endphoneme @@ -146,7 +146,7 @@ endphoneme phoneme O@ vowel starttype (o) endtype (@) length 240 - formants vowel/o + formants vowel/oo_1 linkout r- endphoneme @@ -154,7 +154,7 @@ endphoneme phoneme O vowel starttype (o) endtype (o) length 150 - formants vowel/o + formants vowel/oo_1 reduceto @ 0 endphoneme @@ -189,7 +189,7 @@ endphoneme phoneme eI vowel starttype (@) endtype (i) - length 210 + length 230 formants vdiph/@i_3 endphoneme @@ -228,7 +228,7 @@ endphoneme phoneme aI@ vowel starttype (a) endtype (@) length 270 - formants vwl_en/aI@ + formants vwl_en/ooi@ linkout r- endphoneme diff --git a/phsource/ph_greek_ancient b/phsource/ph_greek_ancient new file mode 100644 index 00000000..47815de2 --- /dev/null +++ b/phsource/ph_greek_ancient @@ -0,0 +1,44 @@ + +//==================================================== +// Ancient Greek - based on base2 +//==================================================== + +phoneme y + vowel starttype (i) endtype (i) + length 160 + formants vowel/yy_4 +endphoneme + +phoneme EU + vowel starttype (e) endtype (u) + length 230 + formants vdiph/eeu +endphoneme + +phoneme OI + vowel starttype (o) endtype (i) + length 230 + formants vdiph/0i +endphoneme + +phoneme OU + vowel starttype (o) endtype (u) + length 230 + formants vdiph/oou +endphoneme + + +phoneme yI + vowel starttype (i) endtype (i) + length 230 + formants vdiph/yi +endphoneme + + +phoneme f // consider this an affrictive + vls blb afr + vowelout f1=0 f2=1000 -500 -350 f3=-200 80 + lengthmod 2 + wave ufric/f // could replace this with a [pf] wav file +endphoneme + diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index a4665a10..ecbcd04a 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -138,13 +138,6 @@ phoneme eI endphoneme -phoneme EI - vowel starttype (e) endtype (i) - length 230 - formants vdiph/eei -endphoneme - - phoneme OI vowel starttype (o) endtype (i) length 230 diff --git a/phsource/phonemes b/phsource/phonemes index 12d88aba..331b6348 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1218,6 +1218,9 @@ include ph_romanian phonemetable el base2 include ph_greek +phonemetable grc base2 +include ph_greek_ancient + phonemetable sv base include ph_swedish diff --git a/phsource/vdiph2/i@_2 b/phsource/vdiph2/i@_2 index 2444de9f..90ff1787 100644 Binary files a/phsource/vdiph2/i@_2 and b/phsource/vdiph2/i@_2 differ diff --git a/phsource/vowel/e# b/phsource/vowel/e# index 4366026b..94d76bf3 100644 Binary files a/phsource/vowel/e# and b/phsource/vowel/e# differ diff --git a/phsource/vowel/i_2 b/phsource/vowel/i_2 index 51f80a6c..951392ca 100644 Binary files a/phsource/vowel/i_2 and b/phsource/vowel/i_2 differ diff --git a/phsource/vowelr/aa_r b/phsource/vowelr/aa_r index bf41c8eb..2b2aed67 100644 Binary files a/phsource/vowelr/aa_r and b/phsource/vowelr/aa_r differ diff --git a/phsource/vwl_en/ooi@ b/phsource/vwl_en/ooi@ new file mode 100644 index 00000000..c1c5a5b7 Binary files /dev/null and b/phsource/vwl_en/ooi@ differ diff --git a/src/compiledict.cpp b/src/compiledict.cpp index ac86eaac..5137a31c 100755 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -176,7 +176,6 @@ int compile_line(char *linebuf, char *dict_line, int *hash) char encoded_ph[200]; unsigned char bad_phoneme[4]; - p = linebuf; comment = NULL; phonetic = word = ""; @@ -347,7 +346,8 @@ int compile_line(char *linebuf, char *dict_line, int *hash) if((word[0] & 0x80)==0) // 7 bit ascii only { - // 1st letter - need to consider utf8 here + // If first letter is uppercase, convert to lower case. (Only if it's 7bit ascii) + // ??? need to consider utf8 here word[0] = tolower(word[0]); } @@ -789,8 +789,6 @@ char *compile_rule(char *input) for(ix=0; finish==0; ix++) { c = input[ix]; - if((c=='/') && (input[ix+1]=='/')) - c = input[ix] = '\n'; // treat command as end of line switch(c = input[ix]) { @@ -1167,6 +1165,7 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp) int different; char *prev_rgroup_name; unsigned int char_code; + int compile_mode=0; char *buf; char buf1[120]; char *rules[N_RULES]; @@ -1184,7 +1183,13 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp) { linenum++; buf = fgets(buf1,sizeof(buf1),f_in); - if((buf != NULL) && (buf[0] == '\r')) buf++; // ignore extra \r in \r\n + if(buf != NULL) + { + if((p = (unsigned char *)strstr(buf,"//")) != NULL) + *p = 0; + + if(buf[0] == '\r') buf++; // ignore extra \r in \r\n + } if((buf != NULL) && (memcmp(buf,".L",2)==0)) { @@ -1196,7 +1201,7 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp) continue; } - if((buf == NULL) || (memcmp(buf,".group",6)==0)) + if((buf == NULL) || (buf[0] == '.')) { // next .group or end of file, write out the previous group @@ -1212,46 +1217,106 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp) } n_rules = 0; - if(buf == NULL) break; // end of file - - p = (unsigned char *)&buf[6]; - while((p[0]==' ') || (p[0]=='\t')) p++; // Note: Windows isspace(0xe1) gives TRUE ! - ix = 0; - while((*p > ' ') && (ix<12)) - group_name[ix++] = *p++; - group_name[ix]=0; - - if(sscanf(group_name,"0x%x",&char_code)==1) + if(compile_mode == 2) { - // group character is given as a character code (max 16 bits) - p = (unsigned char *)group_name; - - if(char_code > 0x100) - { - *p++ = (char_code >> 8); - } - *p++ = char_code; - *p = 0; + // end of the character replacements section + fwrite(&n_rules,1,4,f_out); // write a zero word to terminate the replacemenmt list } - if(strlen(group_name) > 2) - { - if(utf8_in(&c,group_name,0) < 2) - { - fprintf(f_log,"%5d: Group name longer than 2 bytes (UTF8)",linenum); - error_count++; - } + if(buf == NULL) break; // end of file - group_name[2] = 0; + if(memcmp(buf,".replace",8)==0) + { + compile_mode = 2; + fputc(RULE_GROUP_START,f_out); + fputc(RULE_REPLACEMENTS,f_out); + + // advance to next word boundary + while((ftell(f_out) & 3) != 0) + fputc(0,f_out); + } + + if(memcmp(buf,".group",6)==0) + { + compile_mode = 1; + + p = (unsigned char *)&buf[6]; + while((p[0]==' ') || (p[0]=='\t')) p++; // Note: Windows isspace(0xe1) gives TRUE ! + ix = 0; + while((*p > ' ') && (ix<12)) + group_name[ix++] = *p++; + group_name[ix]=0; + + if(sscanf(group_name,"0x%x",&char_code)==1) + { + // group character is given as a character code (max 16 bits) + p = (unsigned char *)group_name; + + if(char_code > 0x100) + { + *p++ = (char_code >> 8); + } + *p++ = char_code; + *p = 0; + } + + if(strlen(group_name) > 2) + { + if(utf8_in(&c,group_name,0) < 2) + { + fprintf(f_log,"%5d: Group name longer than 2 bytes (UTF8)",linenum); + error_count++; + } + + group_name[2] = 0; + } } continue; } - prule = compile_rule(buf); - if((prule != NULL) && (n_rules < N_RULES)) + switch(compile_mode) { - rules[n_rules++] = prule; + case 1: // .group + prule = compile_rule(buf); + if((prule != NULL) && (n_rules < N_RULES)) + { + rules[n_rules++] = prule; + } + break; + + case 2: // .replace + { + int replace1; + int replace2; + char *p; + + p = buf; + replace1 = 0; + replace2 = 0; + while(isspace2(*p)) p++; + ix = 0; + while((unsigned char)(*p) > 0x20) // not space or zero-byte + { + p += utf8_in(&c,p,0); + replace1 += (c << ix); + ix += 16; + } + while(isspace2(*p)) p++; + ix = 0; + while((unsigned char)(*p) > 0x20) + { + p += utf8_in(&c,p,0); + replace2 += (c << ix); + ix += 16; + } + if(replace1 != 0) + { + fwrite(&replace1,1,4,f_out); + fwrite(&replace2,1,4,f_out); + } + } + break; } } fclose(f_temp); diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 4abb3959..f25b10f9 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -205,9 +205,9 @@ void Translator::InitGroups(void) int ix; char *p; char *p_name; + unsigned int *pw; unsigned char c, c2; int len; - int rule_count; n_groups2 = 0; for(ix=0; ix<256; ix++) @@ -228,6 +228,18 @@ void Translator::InitGroups(void) } p++; + if(p[0] == RULE_REPLACEMENTS) + { + pw = (unsigned int *)(((int)p+4) & ~3); // advance to next word boundary + langopts.replace_chars = pw; + while(pw[0] != 0) + { + pw += 2; // find the end of the replacement list, each entry is 2 words. + } + p = (char *)(pw+1); + continue; + } + if(p[0] == RULE_LETTERGP2) { ix = p[1] - 'A'; @@ -266,11 +278,9 @@ void Translator::InitGroups(void) } // skip over all the rules in this group - rule_count = 0; while(*p != RULE_GROUP_END) { p += (strlen(p) + 1); - rule_count++; } p++; } diff --git a/src/extras.cpp b/src/extras.cpp index 19732a52..bd45204c 100644 --- a/src/extras.cpp +++ b/src/extras.cpp @@ -998,6 +998,8 @@ void ConvertToUtf8() } // end of ConvertToItf8 +//****************************************************************************************************** + //#define calcspeedtab diff --git a/src/numbers.cpp b/src/numbers.cpp index 08647774..de9bfc1e 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -354,12 +354,14 @@ int Translator::LookupNum2(int value, int control, char *ph_out) if(langopts.numbers & 0x200) { // remove vowel from the end of tens if units starts with a vowel (LANG=Italian) - ix = strlen(ph_tens)-1; - if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) - next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; - - if((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL)) - ph_tens[ix] = 0; + if((ix = strlen(ph_tens)-1) >= 0) + { + if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) + next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; + + if((phoneme_tab[(unsigned int)(ph_tens[ix])]->type == phVOWEL) && (next_phtype == phVOWEL)) + ph_tens[ix] = 0; + } } sprintf(ph_out,"%s%s",ph_tens,ph_digits); } @@ -793,7 +795,7 @@ int Translator::TranslateNumber_1(char *word, char *ph_out, unsigned int *flags, decimal_point = 0; } } - if(ph_out[0] != 0) + if((ph_out[0] != 0) && (ph_out[0] != phonSWITCH)) { int next_char; utf8_in(&next_char,&word[n_digits+1],0); diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 2ec789ea..d0ae207b 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.29.10 16.Oct.07"; +const char *version_string = "1.29.11 23.Oct.07"; const int version_phdata = 0x012901; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index bc6182df..148a75d2 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -38,6 +38,7 @@ #define L_qa 0x716100 +#define L_grc 0x677263 // grc Ancient Greek #define OFFSET_GREEK 0x380 @@ -45,19 +46,41 @@ #define OFFSET_DEVANAGARI 0x900 -static const unsigned int replace_cyrillic[] = - {0x430,0x431,0x446,0x45b,0x447,0x45f,0x455,0x434,0x452, - 0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x459, - 0x43b,0x43c,0x45a,0x43d,0x43e,0x43f,0x440,0x441, - 0x448,0x442,0x443,0x432,0x437,0x436, - 0x453,0x45c,0}; // ѓ ѕ ќ - -static const unsigned int replace_cyrillic_latin[] = - {'a','b','c',0x107,0x10d,'d'+(0x17e<<16),'d'+('z'<<16),'d',0x111, - 'e','f','g','h','i','j','k','l'+('j'<<16), - 'l','m','n'+('j'<<16),'n','o','p','r','s', - 0x161,'t','u','v','z',0x17e, - 0x111,0x107,0}; +static const unsigned int replace_cyrillic_latin[] = + {0x430,'a', + 0x431,'b', + 0x446,'c', + 0x45b,0x107, + 0x447,0x10d, + 0x45f,'d'+(0x17e<<16), + 0x455,'d'+('z'<<16), + 0x434,'d', + 0x452,0x111, + 0x435,'e', + 0x444,'f', + 0x433,'g', + 0x445,'h', + 0x438,'i', + 0x458,'j', + 0x43a,'k', + 0x459,'l'+('j'<<16), + 0x43b,'l', + 0x43c,'m', + 0x45a,'n'+('j'<<16), + 0x43d,'n', + 0x43e,'o', + 0x43f,'p', + 0x440,'r', + 0x441,'s', + 0x448,0x161, + 0x442,'t', + 0x443,'u', + 0x432,'v', + 0x437,'z', + 0x436,0x17e, + 0x453,0x111, + 0x45c,0x107, +0}; // ѓ ѕ ќ void SetupTranslator(Translator *tr, int *lengths, int *amps) @@ -132,6 +155,7 @@ Translator *SelectTranslator(const char *name) break; case L('e','l'): // Greek + case L_grc: // Ancient Greek { static int stress_lengths_el[8] = {155, 180, 210, 210, 0, 0, 270, 300}; static int stress_amps_el[8] = {15,12, 20,20, 20,24, 24,22 }; // 'diminished' is used to mark a quieter, final unstressed syllable @@ -167,6 +191,12 @@ Translator *SelectTranslator(const char *name) tr->langopts.numbers = 0xb09; tr->langopts.numbers2 = 0x2; // variant form of numbers before thousands + + if(name2 == L_grc) + { + // ancient greek + tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; + } } break; @@ -259,8 +289,6 @@ Translator *SelectTranslator(const char *name) case L('h','i'): { static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; - static const unsigned int replace_chars_hi[11] = {0x966,0x967,0x968,0x969,0x96a,0x96b,0x96c,0x96d,0x96e,0x96f,0}; // digits 0-9 - static const unsigned int replacement_chars_hi[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0}; static int stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; static int stress_amps_hi[8] = {17,14, 20,19, 20,24, 24,22 }; @@ -274,8 +302,6 @@ Translator *SelectTranslator(const char *name) tr->langopts.numbers = 0x811; tr->langopts.numbers2 = 0x100; tr->letter_bits_offset = OFFSET_DEVANAGARI; - tr->langopts.replace_chars = replace_chars_hi; - tr->langopts.replacement_chars = replacement_chars_hi; memset(tr->letter_bits,0,sizeof(tr->letter_bits)); SetLetterBitsRange(tr,LETTERGP_A,0x06,0x14); // vowel letters @@ -306,8 +332,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.numbers = 0x1c0d + 0x4000 + NUM_ROMAN_UC; tr->langopts.numbers2 = 0x4a; // variant numbers before thousands,milliards - tr->langopts.replace_chars = replace_cyrillic; - tr->langopts.replacement_chars = replace_cyrillic_latin; + tr->langopts.replace_chars = replace_cyrillic_latin; SetLetterVowel(tr,'y'); SetLetterVowel(tr,'r'); @@ -319,14 +344,10 @@ Translator *SelectTranslator(const char *name) { static int stress_amps_hu[8] = {17,17, 19,19, 20,24, 24,22 }; static int stress_lengths_hu[8] = {185,195, 195,190, 0,0, 210,220}; - static const unsigned int replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0}; - static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute tr = new Translator(); SetupTranslator(tr,stress_lengths_hu,stress_amps_hu); tr->charset_a0 = charsets[2]; // ISO-8859-2 - tr->langopts.replace_chars = replace_chars_hu; - tr->langopts.replacement_chars = replacement_chars_hu; tr->langopts.vowel_pause = 0x20; tr->langopts.stress_rule = 0; @@ -417,9 +438,6 @@ SetLengthMods(tr,3); // all equal tr->langopts.stress_rule = 4; // antipenultimate tr->langopts.numbers = 0x0c29 + 0x4000; tr->langopts.numbers2 = 0x8a; // variant numbers before thousands,milliards - - tr->langopts.replace_chars = replace_cyrillic_latin; - tr->langopts.replacement_chars = replace_cyrillic; } break; @@ -495,8 +513,6 @@ SetLengthMods(tr,3); // all equal { static int stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260}; static int stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,22 }; - static const unsigned int replace_chars_ro[5] = {0x218,0x219,0x21a,0x21b,0}; - static const unsigned int replacement_chars_ro[5] = {0x15e,0x15f,0x162,0x163,0}; // replace s-comma, t-comma by s-cedilla, t-cedilla tr = new Translator(); SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); @@ -505,8 +521,6 @@ SetLengthMods(tr,3); // all equal tr->langopts.stress_flags = 0x100 + 0x6; tr->charset_a0 = charsets[2]; // ISO-8859-2 - tr->langopts.replace_chars = replace_chars_ro; - tr->langopts.replacement_chars = replacement_chars_ro; tr->langopts.numbers = 0x1829+0x6000 + NUM_ROMAN; tr->langopts.numbers2 = 0x1e; // variant numbers before all thousandplex } diff --git a/src/translate.cpp b/src/translate.cpp index b1bbd643..7efb49e9 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -665,6 +665,10 @@ if((wmark > 0) && (wmark < 8)) if(!found && iswdigit(first_char)) { + Lookup("_0lang",word_phonemes); + if(word_phonemes[0] == phonSWITCH) + return(0); + found = TranslateNumber(word,phonemes,&dictionary_flags,wflags); } @@ -1560,16 +1564,14 @@ static int EmbeddedCommand(unsigned int &source_index) } // end of EmbeddedCommand - -int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned int next_in, int *insert) -{//===================================================================================================== - // To allow language specific examination and replacement of characters - +int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in, int *insert) +{//================================================================================== int ix; unsigned int word; unsigned int new_c, c2, c_lower; int upper_case = 0; static int ignore_next = 0; + const unsigned int *replace_chars; if(ignore_next) { @@ -1578,7 +1580,7 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i } if(c == 0) return(0); - if(langopts.replace_chars == NULL) + if((replace_chars = tr->langopts.replace_chars) == NULL) return(c); // there is a list of character codes to be substituted with alternative codes @@ -1590,18 +1592,18 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i } new_c = 0; - for(ix=0; (word = langopts.replace_chars[ix]) != 0; ix++) + for(ix=0; (word = replace_chars[ix]) != 0; ix+=2) { if(c_lower == (word & 0xffff)) { if((word >> 16) == 0) { - new_c = langopts.replacement_chars[ix]; + new_c = replace_chars[ix+1]; break; } if((word >> 16) == (unsigned int)tolower(next_in)) { - new_c = langopts.replacement_chars[ix]; + new_c = replace_chars[ix+1]; ignore_next = 1; break; } @@ -1625,6 +1627,14 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i if(upper_case) new_c = towupper(new_c); return(new_c); + +} + + +int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned int next_in, int *insert) +{//===================================================================================================== + // To allow language specific examination and replacement of characters + return(SubstituteChar(this,c,next_in,insert)); } diff --git a/src/translate.h b/src/translate.h index d6b7e6e8..24318517 100755 --- a/src/translate.h +++ b/src/translate.h @@ -118,6 +118,7 @@ #define RULE_LETTERGP 17 // A B C H F G Y letter group number #define RULE_LETTERGP2 18 // L + letter group number #define RULE_CAPITAL 19 // word starts with a capital letter +#define RULE_REPLACEMENTS 20 // section for character replacements #define RULE_NO_SUFFIX 24 // N #define RULE_NOTVOWEL 25 // K #define RULE_IFVERB 26 // V @@ -278,6 +279,7 @@ typedef struct { #define NUM_ROMAN 0x20000 #define NUM_ROMAN_UC 0x40000 + // bits0-1=which numbers routine to use. // bit2= thousands separator must be space // bit3= , decimal separator, not . @@ -294,7 +296,6 @@ typedef struct { // bit16=dot after number indicates ordinal // bit17=recognize roman numbers // bit18=Roman numbers only if upper case - int numbers; // bits 1-4 use variant form of numbers before thousands,millions,etc. @@ -302,6 +303,7 @@ typedef struct { // bit7=(LANG-ru) use MB for 1 thousand, million, etc // bit8=(LANG=sw) special word for 100,000s int numbers2; + int max_roman; int thousands_sep; int decimal_sep; @@ -314,7 +316,6 @@ typedef struct { char ideographs; // treat as separate words int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" const unsigned int *replace_chars; // characters to be substitutes - const unsigned int *replacement_chars; // substitutes for replace_chars } LANGUAGE_OPTIONS;