diff --git a/dictsource/an_list b/dictsource/an_list index 43df719e..33ede621 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -118,6 +118,9 @@ _x#º %o // for 1º 2º 3º _x#ª %a º orDin'al||maskul'in ª orDin'al||femen'in +ºc gr'aUs||T'e +ºf gr'aUs||'Efe +ºk gr'aUs||k'a _1ox prim'Er _2ox seQ'und @@ -483,6 +486,7 @@ espeak isp'ik facebook f'eIsbuk firefox f'aIrfoks google g'ugEl +hotmail xotm'eIl (i phone) 'aIfon iphone 'aIfon (i pod) 'aIpod diff --git a/dictsource/bn_list b/dictsource/bn_list index 0e4e124f..56852140 100755 --- a/dictsource/bn_list +++ b/dictsource/bn_list @@ -1,4 +1,4 @@ -// Translation rules for Bengali +// Translation rules for Bengali // This file is UTF8 encoded // Numbers @@ -200,6 +200,8 @@ _dpt dOsomik ঁ tS'Ondrobindu ় b'indu +_, koma + // Punctuation । dVn.d.V diff --git a/dictsource/da_list b/dictsource/da_list index af824667..b8c481e2 100755 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -102,19 +102,19 @@ _9 n'i _10 t'i _11 'Elv@ _12 t'Vl -_13 tR'?&#d@-n +_13 t*'?&#d@-n _14 fj'ord@-n _15 f'Emd@-n -_16 s'ajsd@-n -_17 s'Wd@-n +_16 s'Ajsd@-n +_17 s'?Wd@-n _18 '?&d@-n -_19 n'ed@-n +_19 n'?ed@-n _2X t'y:?u -_3X tR'&#Dv@ +_3X t*'&#Dv@ _4X f'?W:_|V _5X h&l't*Es _6X t*'Es -_7X h&lfj'&rs +_7X h&lfj'Ers _8X f'irs _9X h&lf'Ems // PB a changed to & _0C h'unRVD @@ -131,32 +131,32 @@ _0M4 bilij'o:n3 _0and V _dpt _k,Vm&: -// PB a number followed by dot +// A number followed by dot // ordinals are followed by a dot in Danish -_ord 3 // 13. (trettende) +_ord @- // 13. (trettende) // exceptions for ordinals -_1o fWrsd3 // 1. første +_1o fWrsd@- // 1. første _2o &n@n // 2. anden -_3o trEdj3 // 3. tredje +_3o trEdj@- // 3. tredje _4o fjeV // 4. fjerde -_5o fEmt3 // 5. femte -_6o sjEd3 // 6. sjette -_7o syvn3 // 7. syvende -_8o Vtn3 // 8. ottende -_9o ni@n3 // 9. niende -_10o ti@n3 // 10. tiende -_11o Elfd3 // 11. elvte/ellevete -_12o tVlfd3 // 12. tolvte +_5o fEmt@- // 5. femte +_6o sjEd@- // 6. sjette +_7o syvn@- // 7. syvende +_8o Vtn@- // 8. ottende +_9o ni@-n@- // 9. niende +_10o ti@-n@- // 10. tiende +_11o Elfd@- // 11. elvte/ellevete +_12o tVlfd@- // 12. tolvte -_2Xo t'yv@n@ // 25. -_3Xo tr'&#ft@ //36. -_4Xo fWV'tyv@n@ // 42. -_5Xo h<*'Esenstyv@n@ // 52. -_6Xo tr'Esenstyv@n@ // 62. -_7Xo h&lfj'&rsenstyv@n@ // 72. -_8Xo firsenstyv@n@ // 82. -_9Xo h&lf'Emsenstyv@n@ // 95. +_2Xo t'yv@n@- // 25. +_3Xo tr'&#ft@- //36. +_4Xo fWV'tyv@-n@- // 42. +_5Xo h<*'Esenstyv@-n@- // 52. +_6Xo tr'Esenstyv@-n@- // 62. +_7Xo h&lfj'&rsenstyv@-n@- // 72. +_8Xo firsenstyv@-n@- // 82. +_9Xo h&lf'Emsenstyv@-n@- // 95. // function words @@ -187,10 +187,10 @@ fra $u+ // from ved $u+ // at om $u+ $brk // about, within med $u+ // with -af & -ad & +af &_! +ad &_! ad &D $atend $sentence // "Det må ikke skille os ad." -at & $u +at &_! $u hos som sVm $u // which / that @@ -203,7 +203,7 @@ hun $u det de $u dét de vi vi $u -i _i $u+ +i _i_! $u+ mig mAj $u // me dig dAj $u+ dem $u @@ -220,10 +220,10 @@ hvis ves $u+ // PB - whose // possessive pronouns min min $u mit mit $u -mine m'in3 +mine m'in@- din d'in $u+ dit d'it $u -dine d'in3 +dine d'in@- deres dE:Vs $u hans $u+ hendes $u+ @@ -1448,7 +1448,6 @@ elegance $alt eminence $alt excellence $alt fajance $alt -hospice $alt ignorance $alt inspektrice $alt intolerance $alt @@ -1846,6 +1845,7 @@ afrikan $alt afrikaan $alt aleksandrin $alt amerikan $alt +austral $alt andorran $alt anglikan $alt angolan $alt @@ -5968,6 +5968,7 @@ dediker $alt deducer $alt defiler $alt definer $alt +omdefiner $alt deflorer $alt deformer $alt degrader $alt @@ -6547,6 +6548,7 @@ konstater $alt konstituer $alt konstringer $alt konstruer $alt +rekonstruer $alt konsulere $alt konsulter $alt konsumer $alt @@ -11121,7 +11123,7 @@ sinecure $alt tournure $alt // exceptions -alene &l'en@ // alone +alene &l'en@- // alone egen _|aj@-n mc mak' $capital // PB McDonald egne ajn@- @@ -11150,48 +11152,48 @@ giv g'i // PB the v shouldn't be pronounced giver gir // PB the v shouldn't be pronounced opgiver Vpgir // PB jaloux sj&'lu // PB jaloux -aficionado afisjo'na:do // PB -breakdance brEig'da:ns // PB breakdance -breakdancen brEig'da:ns@-n // PB breakdancen -breakdancer brEig'da:nsV // PB breakdancer -breakdancere brEig'da:nsV3 // PB breakdancere -breakdancerne brEig'da:nsV-n@ // PB breakdancerne -breakdancernes brEig'da:nsV-n@s // PB breakdancernes -squaredance skw'e@da:ns // PB squaredance -squaredancer skw'e@da:nsV // PB squaredancer -squaredancere skw'e@da:nsV3 // PB squaredancere -squaredancen skw'e@da:ns@-n // PB squaredancen -squaredancerne skw'e@da:nsV-n@ // PB squaredancerne -squaredancernes skw'e@da:nsV-n@s // PB squaredancernes -baguette b%a'get // French word used in Danish -jambore djamboR'E // PB English? word used in Danish - stressed e -shampu Sjambo // PB Danish pronunciation - oo has been replaced by u -(en face) aN||f'as // PB 'en face' - French used in Danish -(en bloc) aN||'blVk // PB 'en bloc' - French used in Danish +aficionado afisjo'nA:do // PB +breakdance brEig'd&:ns // PB breakdance +breakdancen brEig'd&:ns@-n // PB breakdancen +breakdancer brEig'd&:nsV // PB breakdancer +breakdancere brEig'd&:nsV3 // PB breakdancere +breakdancerne brEig'd&:nsV-n@ // PB breakdancerne +breakdancernes brEig'd&:nsV-n@s // PB breakdancernes +squaredance skw'EVd&:ns // PB squaredance +squaredancer skw'EVd&:nsV // PB squaredancer +squaredancere skw'EVd&:nsV3 // PB squaredancere +squaredancen skw'EVd&:ns@-n // PB squaredancen +squaredancerne skw'EVd&:nsV-n@ // PB squaredancerne +squaredancernes skw'EVd&:nsV-n@s // PB squaredancernes +baguette b?&'gEt // French word used in Danish +jambore djAmboR'E // PB English? word used in Danish - stressed e +shampu SjAmbo // PB Danish pronunciation - oo has been replaced by u +(en face) AN||f'as // PB 'en face' - French used in Danish +(en bloc) AN||'blVk // PB 'en bloc' - French used in Danish (haute couture) %o:tku'ty:r // PB - french word -(par excellence) pa:egs@'la:Ns // PB - french word -(public service) pVblek||s@:vis // PB -(public servicen) pVblek||s@:vis@-n // PB +(par excellence) pA:Egs@'la:Ns // PB - french word +(public service) pVblek||sW:vis // PB +(public servicen) pVblek||sW:vis@-n // PB (tour de force) tu:@d@||'fV:s // PB (al qaeda) al||k'ajda // PB (force majeure) fVrs||,ma'sjW:r // PB -(diner transportable) din'e|trANspVt'abl@ // PB +(diner transportable) din'e|trANspVt'abl@- // PB (quiche lorraine) kiS||lor'E:n: -(fait accompli) fEtakVmpl'i // PB +(fait accompli) fEt&kVmpl'i // PB (salt lake city) s'Vlt||lEjk||s'iti wien v'i:n // PB Wien - the town of Vienna -calais kal'E // PB Calais - town in France -date dejt // PB date - stævnemøde +calais k&l'E // PB Calais - town in France +date dEjt // PB date - stævnemøde //siger sir // PB silent d (tids nok) tis||n'Vk // PB silent d -skateboardet sk'eitbo@d3D // PB +skateboardet sk'EitbO:d@-D // PB (hole in one) h'oulinw,0n // PB English golf expression used in Danish (en passant) AN||p&s'AN (coney island) 'kouni||'ajl3nd // PB (union station) junj3n||steisj@n // PB (secret service) sigred||s'Wvis (happy hour) h&pi||'AuV -chevrolet sjEvrol'e +chevrolet sjEvrol'E saigon sAjgVn // PB Saigon managua m&n'&:gw& (deja-vu) deSja||'vy @@ -11246,32 +11248,37 @@ ikes ajks // PB // Try to catch errors (et kvarter) et||kvA'ter // PB -(mit kvarter) mit||kvA'ter // PB -(vores kvarter) vV:s||kvA'ter // PB -(deres kvarter) dE:Vs||kvA'ter // PB -(det kvarter) de||kvA'ter // PB +(mit kvarter) mit||kvA'ter +(vores kvarter) vV:s||kvA'ter +(deres kvarter) dE:Vs||kvA'ter +(det kvarter) de||kvA'ter (i kvarter) i||kv'A:dV -(at have) &||h& // PB the verb 'have', not the noun 'have' = garden -(vil have) vel||h'& // PB -(ville have) v?il3||h'& // PB -(du have) du||h& // PB -(må have) mO:||h& // PB -(skal have) sk?&||h& // PB +// the verb 'have', not the noun 'have' = garden/oceans +(at have) &||h& +(vil have) vel||h'& +(ville have) v?il3||h'& +(du have) du||h&_! +(må have) mO:||h& +(skal have) sk?&||h& (helst have) h'Elst||h& (gerne have) g'Ern3||h& -(kan have) k?&n||h& // PB -(ikke have) ege||h& // PB +(kan have) k?&n||h& +(ikke have) eg@-||h& +(have ret) h&||R'&#d +(måtte have) m'?Vt@-||h& +(have været) h&||v'?E3-VD +(have gjort) h&||gj'Ort // PB 'hav' = ocean - 'hav' = have (a nice day) (et hav) ed||hAu (stort hav) stord||hAu hav hAu $atend -(et for) ed||'for // PB for i jakke - lining +(et for) ed||'for // for i jakke - lining +(et for dig) ed||fV||dAj // vælge et for dig // PB problem with 'sig' [si] = "say" and 'sig' = "himself/herself" [saj] -//(sig mig) si||maj // PB sig mig engang -(sig hvad) si||v& // PB sig hvad du mener -sig $atend $sentence saj // end of a sentence - han vaskede sig. -(gør sig til) g,Wr||saj||t'el // PB -(gav sig til) g&||saj||tel // PB han gav sig til at ... +(sig hvad) si||v& // sig hvad du mener +sig $atend $sentence sAj // end of a sentence - han vaskede sig. +(gør sig til) g,Wr||sAj||t'el +(gav sig til) g&||sAj||tel // han gav sig til at ... // PB avoid [staj] as in "flæskesteg" (han steg) h&n||st'e (hun steg) hOn||st'e @@ -11280,7 +11287,7 @@ sig $atend $sentence saj // end of a sentence - han vaskede sig. (alle steg) &l3||st'e (vandet steg) v&n@D||st'e steg sdaj $atend $sentence -steget ste@d +//steget ste@d // PB problem with noun "hav" = ocean and verb "hav(e)" = to have [hAu]/[h&v] (et hav) ed||h'Au // PB "et hav" = an ocean - not "hav en god dag" - have a nice day // PB legende = legend/myth and = playing diff --git a/dictsource/da_rules b/dictsource/da_rules index ce8518a1..05103726 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -51,7 +51,7 @@ // Short vowel before double consonant r) a (C%++ ?A // trappe a (C%+ ?& // pladder, basser, masser - a (ld+ ?& // kalde, falde - TEST ld = double consonant? + a (ld+ &# // kalde, falde - ld => l double consonant C) a (L06% ?A // tapper, tappen, lapper, lappen v) a (cc ?A // vaccinere a (ffald+ A @@ -75,8 +75,8 @@ pl) a (ner ?& // planer pl) a (nen ?& // planen -// long & before de - a (de &: // gade +// long & before de(n) - made long in ph_danish + a (de & // gade a (den & //gaden // Have = "oceans" vs. the verb have @@ -96,7 +96,7 @@ burde_h) ave & // burde have sagt past) a & // tandpastareklame r) a (CK+ A // drab, Rasmus, rask - r) a (CA+ A: // drabelig, brase, gratis + r) a (CA+ A // drabelig, brase, gratis r) a (len+ ?A // gralen TEST r) a (le+ A // morale, prale r) a (dio++ A: // shortend too much by ph_danish @@ -1154,6 +1154,8 @@ hospitalsv) ag (t Ag // _t) age (_+ &j@- // tage _t) age (_sig & du_t) age (_ & + voldt) age (_ & + voldt) ager (_ Ar cart) age (na &g'e: // name b) ag (efter++ &j // age (lig '&j@- // uindtagelig, behagelig - stressed @@ -1441,6 +1443,7 @@ frederi) c (ia =ks // cigaret sig3r'&#t cigarett sig3r'&#t cc ks // accent + yu) cc (a k ro) cc (o k // name pu) ccini S'ini // name rebe) cc (a =k // name @@ -1758,6 +1761,7 @@ stikor) d // exception - silent d in 'stikord' kandi) d (at 'd mi) dd (a d nø) dde (+ D@- // jordnøddesmør + nø) dder (+ DV // nødderne an) d (e // manden, anden - silent d _fan) de (me // fandeme - skip de, only this word gær) de V // silent d @@ -1863,6 +1867,7 @@ stikor) d // exception - silent d in 'stikord' arv) e (@ @- // farvestof ugl) e (@ @- // fugleskræmsel ønn) e (st @- // kønneste + av) e (@ @- // pavestolt // exceptions cyk) e (lløb @- @@ -1973,7 +1978,7 @@ _still) e (ben ='e st) ed (mo e // stedmor st) ed (sø e // stedsøm st) ed (da e // steddatter - e (dt e // fedtet + e (dt ?e // fedtet dt => t 2 consonants: short e gaz) e (lle '?E // stressed van) e (ssa '?E // stressed ard) e (nner '?E // Ardennerne - stressed @@ -1982,6 +1987,7 @@ _still) e (ben ='e h) e (dd ?e // hedde m) e (dalje e // medalje v) e (de @- // helvedes + hv) ede eD@- // hvedebrød tol) ed (o 'ed // toledostål val) e (ncia 'E // name mal) er V // maler @@ -2160,7 +2166,7 @@ stikir) e (nddreng '&# // m) e (di+ e // medicin rn) e (d+ ,e // derned forn) eden 'eD@-n // - an) e (r @- // anerkende + an) er (@ V // anerkende L09) e (de e // nede, nederlag mån) e (d @- // måneder arkim) e (des 'e // name @@ -2392,6 +2398,8 @@ stoneh) enge EndZ // ørn) e (@ @- // børnebog mm) e (@ @- // dømmekraft ab) e (@ @- // abekat + + e (dere @- // torpedere øl) e (@+ @- // køleskab aff) e (@ @- // straffeattest Alj) e (@ @- // patruljevogn @@ -6035,6 +6043,7 @@ _noget_r) o (s_ ?V // w) oogie ugi // w) oo u // Hollywood oonagh un& // name + c) ochise OwS'i:s // name kl) oro (form oo shamp) oo ?o // nark) o o // narkoopgør @@ -6645,6 +6654,7 @@ torped) o o // torpedoflyene artisk) o (k 'V // stressed aut) o (+ o // autoklub t) or (t O: // tortur + C) or (L07L05 O: // portal TEST t) o (t V // hårtot, tot, hottentot t) o (tA o // total em) o (+ o // demokrati @@ -6733,7 +6743,7 @@ perestr) o (jka 'V // stressed m) o (nitor V // _C) o (_ o // jo, ko, lo, so f) o (d+ ?o // fodre - C) oe (de o: // boede, troede + C) oe (de o // boede, troede betr) oe (de o@- // betroede midler sk) oe (de o@- // spr) og ow // sprog @@ -6954,11 +6964,9 @@ robins) on Vn // name .group or alv) or O // alvor -// or (L04+ or // favorit v) or (L11+ or // favorabel v) or (_ O // f) or (_ V // for -// _f) or (_at_ O:_! derf) or V // derfor tayl) or V // name helsingf) or (s 'V // stressed @@ -6967,7 +6975,7 @@ helsingf) or (s 'V // stressed sekt) or V // sektoren k) or (t ?O: // kort k) or (tA ?O: // korte - t) or (L06 O // torpedere + t) or (L06 O: // torpedere or (to O: // ortodoks, ortopæd m) orge OO@- // morgen dek) or (_ 'V:r // dekor @@ -7036,6 +7044,7 @@ _transp) or (t_ 'O: // stressed - transport f) ord (ø Vd' // fordømme v) ord (i 'Vrd // gernvordighed ord (en+ Od // orden, ordensmagt + n) orden OVn // Norden - silent d b) orde (nde orE // ord (ene+ oR // ordene ord (enen+ O:d // ordenen @@ -7718,9 +7727,9 @@ franci) sc (o sk // Francisco _) stone sdoun // namde - Stone empire_) state (_ stEjt // _) sir (_ sW: // Sir Arthur - sher (wood SW // Sherwood Forrest + sher (wood SW: // Sherwood Forrest surf sW:f // windsurfing - surf (e sWf + surf (e sW:f la) sur sur // lasurfarve _) sugar (_ SugV // Sugar Ray savoir s&voa: // savoir-faire @@ -8267,17 +8276,17 @@ meningi) ti (s =ti _) ud (@@+P2 ''?uD _) ude (@@+P3 ''uD@- // exceptions for ud-: [ud] - _) ud (elt+P2 'ud // udelt - _) ud (at+P2 'ud // udateret + _) ud (elt+P2 '?ud // udelt + _) ud (at+P2 '?ud // udateret _) ud (rikkelig+P2 ud _) ud (røj+P2 'ud - _) ud (uelig+ ud + _) ud (uelig+ ?ud _) ud (y+P2 '?ud // udyd, udygtig, udyr _) ud (øbt+P2 'ud - _) ud (ød+P2 ud // udødelig - _) ud (åd+P2 'ud - _) ud (en+ uD - _) ud (kig uD // udkigspost (another rule overrides a silent g rule) + _) ud (ød+P2 ?ud // udødelig + _) ud (åd+P2 '?ud + _) ud (en+ ?uD + _) ud (kig ?uD // udkigspost (another rule overrides a silent g rule) u (nL08+ O // kunst br) unch VnS // @@ -8964,7 +8973,7 @@ _hun_l) æ (ste E: kr) æ (_ E? // r) æ (t+ &# // åndedræt spr) æ (C+ &# // sprængt - pr) æ (C+ E // prætendere, præsentere, prækvalificere + pr) æ (C+ ?E // prætendere, præsentere, prækvalificere rør) æg Eg // pr) æ (gn E // prægnans, prægnant for) æ (dle ?E // @@ -9079,7 +9088,7 @@ majest) æ (t 'E // stressed æ // words with short ø bel) ø (b ?W - ø (rn ?W // ørne, børn +// ø (rn ?W // ørne, børn _chauff) ø (r 'W // stressed in 'chauffør' _milj) ø 'W // stressed - miljø @@ -9285,7 +9294,7 @@ slagsm) å (l ?O // str) å (forkort ?V // stråforkorter str) å (hat ?V // str) å (død ?V // - årer V:V- // sårer + årer OO- // sårer, årer å (lti ?V // måltid .group ' diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index f1b3ff11..caa07896 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -25,7 +25,7 @@ n^ p p` r s S t t` tS tS` v w x z Z -Dictionary an_dict 2013-03-21 +Dictionary an_dict 2013-03-28 a aI aU e E eI eU i o O oI u U @@ -60,7 +60,7 @@ s; t t; tS ts v x z Z z; -Dictionary bn_dict 2013-03-26 +Dictionary bn_dict 2013-03-29 & a a~ e e~ i i~ l- o O o: O~ o~ r- u u~ @@ -111,7 +111,7 @@ p r s S t T v w x z -Dictionary da_dict 2013-03-26 +Dictionary da_dict 2013-03-29 & &# 0 3 ?& ?&# ?0 ?A ?e ?E ?i ?o ?O ?u ?V ?W @@ -150,7 +150,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-26 +Dictionary en_dict 2013-03-28 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -178,7 +178,7 @@ s S t T tS ts v w x z Z -Dictionary es_dict 2013-03-19 +Dictionary es_dict 2013-03-28 @ a aI aU e E eI eU i o O oI u @@ -261,7 +261,7 @@ l m n N p R s t T v x z -Dictionary hbs_dict 2012-08-08 +Dictionary hbs_dict 2013-03-29 & @ @2 a A a: aI aU e E e: i I i: l- o @@ -501,7 +501,7 @@ r r. s S s. t t# t. t.# v w x z -Dictionary nl_dict 2013-03-21 +Dictionary nl_dict 2013-03-27 8 @ @- a A a: A~ e E e# E2 e: EI eU i I @@ -563,7 +563,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; -Dictionary pt_dict 2013-03-26 +Dictionary pt_dict 2013-03-29 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -700,10 +700,11 @@ p Q r R s S t tS v w z Z -Dictionary ur_dict 2013-03-13 +Dictionary ur_dict 2013-03-28 @ a a: aI aU e E e: -i I i: O o: U u: V +i I i: O o: u U u: +V : ; b b# c c# d D d# d. d.# f g g# h H diff --git a/dictsource/en_list b/dictsource/en_list index 050b3a74..ecc2fbdf 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -70,6 +70,7 @@ a eI $atend ï $accent ö $accent ü $accent +û $accent č $accent š $accent ş $accent @@ -754,6 +755,7 @@ ambassador a#mbas@d3 ambidextrous $3 amen ,A:m'En $onlys ?3 amen ,eIm'En +?3 amo amoU amok a#m0k amoral eIm'0r@L amount a#maUnt @@ -767,8 +769,6 @@ analyses an@laIzI#z $verb analysis a#nal@sIs anemone a#nEm@ni angel eIndZ@L -anecdote anIkdoUt -anecdotal anIkd'oUt@L anemometer anIm'0mI2t3 anew a#nju: ?3 anew a#nu: @@ -829,7 +829,7 @@ arena a#ri:n@ argon A@g0n argue A@gju: aries e@ri:z -arithmetic a#rITm@tIk +arithmetic a#rITm@tIk $onlys arise a#raIz arisen @rIz@n armslength ,A@mzl'ENT @@ -877,6 +877,7 @@ average av@-rI2dZ aviary eIvi@ri awry a#raI axes aksI#z +axon aks0n backend bak'End backstory baksto@ri @@ -1115,6 +1116,7 @@ circumference $2 circumvent s3:k@mvEnt ?5 circumvent sIRk@mvEnt citadel sIt@dEl +clandestine $2 clarinet klar@n'Et cleanliness klEnlIn@s cleanse klEnz @@ -1236,6 +1238,7 @@ coordinate koU'O:dI2neIt $verb copier k0pi@3 copilot koUpaIl@t coral k0r@L +?3 cordial kO@dZ@L coronet k0r@nEt corollary $2 corporal kO@pr@L @@ -1291,6 +1294,7 @@ debut deIbju: ?3 debut deIb'ju: decade dEkeId decent di:s@nt +decibel dEsI#b@L declaration dEkl@'reIS@n decolletage deIk0lt'A:Z decor deIkO@ @@ -1380,6 +1384,7 @@ doctrine d0ktrI2n doctrinal $alt1 doer du:3 dogged d0gI#d +dogmatic d0gm'atIk doin du:In domino $1 donor doUn3 @@ -1796,6 +1801,7 @@ intestine I2ntEstI#n inventory Inv@ntri ?3 inventory Inv@nto:ri interface $1 +interlude $1 intermin Int'3:mIn // interminable intern $1 $onlys internee Int'3:ni: @@ -2056,6 +2062,7 @@ molybdenum $2 momentary moUm@nt@ri ?3 momentary moUm@nt2e@ri momentum $2 +monarchic m@nA@kIk monday mVndeI monotone m0n@toUn monsieur m@sj3: @@ -2251,6 +2258,7 @@ pear pe@ pecan pi:k@n peculiar pI2kju:lI3 pedalo pEd@loU +pedestal pEdI2st@L pedestrian $alt3 pegasus pEg@s@s pejorative p@dZ0r@tIv @@ -2545,6 +2553,7 @@ ruby ru:bi rugged rVgI#d ruin ru:I2n // for ruining +sabbatic $alt3 sabotage sab@tA:Z saboteur sab@t'3: ?5 saboteur sab@t'VR @@ -2552,6 +2561,7 @@ sabre seIb3 sachet saSeI sacred seIkr@d sacrifice sakrI2faIs +sadistic $alt3 safety seIfti saga sA:g@ sahara $alt3 @@ -2566,6 +2576,7 @@ saloon $alt3 san ,san $only sardine $2 satanic $alt3 +satiric $alt3 saucepan sO:sp@n saudi saUdi saute sO:teI @@ -2706,6 +2717,7 @@ stagnate $2 stampede $2 starboard stA@b3d starry stA:rI +statistic $alt3 stiletto stI2lEtoU strychnine str'Ikni:n sterile stEraIl @@ -2882,6 +2894,7 @@ unaware Vn@w'e@ uncle VNk@L undeny VndIn'aI underling $1 +underlings Vnd3lINz underworld $1 undies Vndiz undo Vnd'u: @@ -3649,6 +3662,7 @@ Phoebe fi:bi: Rachael reItS@L Rachel reItS@L Rafael rA:faI'El +Rashid rA:S'i:d Raul raU'u:l Rees ri:s Reese ri:s @@ -3673,6 +3687,7 @@ Sebastian $alt3 Sheila Si:l@ Simon saIm@n Sinead SI2neId +Sinéad SI2neId Siobhan S@vO:n Siobhán S@vO:n Sonia s0nj@ diff --git a/dictsource/en_rules b/dictsource/en_rules index ec32d6c3..b913125a 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -504,6 +504,7 @@ portr) ai (t I# .group al + @ic) al (_S2 @L _) al (@ a#l gonz) al 'A:l _) alaba al@b'a @@ -720,6 +721,7 @@ p) an (c an @m) an (d aan sl) an (d aan + _) anecdo anIkdoU C) an (t aan an (ath a#n ann (eal a#n @@ -1066,8 +1068,8 @@ as (thm as as (tral as as (tro as - as (trolog a#s - as (trono a#s + _) as (trolog a#s + _) as (trono a#s &) as (ty_ a#s ass (ym as purch) as (e Is @@ -1093,11 +1095,12 @@ _s) ata (n eIt@ _g) ator eIt3 &) ate (_$w_alt2 @t + der) ated (_ eItI#d pal) ate (_ @t consul) ate (_ @t macul) ate (_ @t tim) ate (_ @t - tim) ated (_ eItI2d + tim) ated (_ eItI#d tim) ating (_ eItIN din) ate (_ @t ion) ate (_ @t @@ -1128,7 +1131,6 @@ at (io_ eIS ati (aX 'eIS &) atism @tIz@m - st) at (ist @t w) at (t 0t @) ath (An_ @T athed (_ eIDd @@ -1334,6 +1336,7 @@ bi (nm bI bi (noc bI2 _) bio (@P3 b,aIoU + bi (ol baI bi (otic baI @) bi (osA baI bi (oC_ bI @@ -1685,6 +1688,7 @@ de (ft dE _) de (g@ dI2 _) de (hyd ,di: + _) de (ist deI _) de (j dI2 _) de (l@ dI2 de (law dE @@ -1865,6 +1869,7 @@ sp) e (cies i: depr) ec (L02 i:S _) e (cl %I + _) eccles (i I2kli:z econo (m Ik'0n@ econo (mic i:k@n'0 _) eco (s i:koU @@ -2441,6 +2446,7 @@ er (nal_ '3: &) er (n_ 3 c) er (n_ 3: + _g) er (on Er &) er (oCe_ =@r er (se 3: v) er (sal '3: @@ -2514,7 +2520,7 @@ pr) es (ent Ez es (iA i:z es (ian_ 'i:z - es (ic 'i:z + @) es (ic 'i:z esis (_ 'i:sIs th) eses (_ @si:z th) esis (_ @sIs @@ -2945,7 +2951,7 @@ ize (_ aIz ial) ize (_S3 aIz ize (d_ aIz - i (zen I2 + i (zen I iz (er_ aIz i (zon_ 'aI _p) izz i:t|s @@ -3169,6 +3175,7 @@ imm (in Im immo (bi Im'oU imm (unis Im + _) immu (no I2mju: @) imous (_ =Im@s im (pac Im im (pecu ,Im @@ -3249,6 +3256,7 @@ in (ga_ 'IN in (got IN _) in (gro IN + _) in (im I2n _) in (jur In _) in (k IN _) in (l In @@ -3501,7 +3509,7 @@ @) istan (_ =Istan @) istani (_ Ist'A:nI @) iste (_ 'i:st - @) is (tic 'Is + @) is (tic_ 'Is r) is (y_ =@s @@ -4082,7 +4090,6 @@ betr) oth oUD ?3 cl) o (th O cl) othe oUD - tr) othe oUD b) o (ther 0 _r) o (ther 0 o (ther+ V @@ -4220,7 +4227,7 @@ dr) on (_ @n or) on (_ 0n cr) on (_ 0n - x) on (_+ 0n + @x) on (_ @n phot) on @n pers) on @n pers) on (i '0n @@ -4303,6 +4310,7 @@ .group or or o@ _) or O@ + _) organo (@P6 O@g,anoU or (ch_ O@ or (m_ O@ st) or (m o@ @@ -5229,6 +5237,7 @@ ?5 _) sur sVR _) sure SU@ sur (anc SU@ + sur (g+ s3: sur (m s3 sur (pa s3 sur (pr s3 @@ -5261,6 +5270,7 @@ te (rrest t2@ r) tga (g gI @) t (ia S + _pi) t (ia t s) t (l to (morr t@ _) to (nn tV @@ -5273,6 +5283,7 @@ tribe traIb _) tri (bu trI _) tri (g trI + _) tri (gonA trI _) tri (ni trI _) tri (vi trI _) tri (xA trI @@ -6079,6 +6090,7 @@ ö 3: ör 3: ü u: + û u: ç s ß s č tS diff --git a/dictsource/es_list b/dictsource/es_list index 9fc6458e..abce5fcb 100644 --- a/dictsource/es_list +++ b/dictsource/es_list @@ -123,6 +123,9 @@ _dpt koma _#º o _#ª a _ord o +ºc gr'ados||T'e +ºf gr'ados||'Efe +ºk gr'ados||k'a _1o prim'Er _2o seQ'und diff --git a/dictsource/hbs_list b/dictsource/hbs_list index 98336074..290064a1 100644 --- a/dictsource/hbs_list +++ b/dictsource/hbs_list @@ -1,4 +1,4 @@ - + // "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage // This file is UTF-8 encoded @@ -40,6 +40,50 @@ y ipsilon z z@ ž Z@ + +а a +б b@ +ц ts@ +ћ tS;@2 +ч tS@ +џ dZ@ +ѕ dz@ +д d@ +ђ dZ;@2 +е E +ф f@ +г g@ +х x@ +и i +ј j@2 +к k@ +љ l^@ +л l@ +м m@ +њ n^@ +н n@ +о o +п p@ +р R@ +_с s@ +ш S@ +т t@ +у u +в v@ +з z@ +ж Z@ +ѓ dZ;@2 +ќ tS;@2 + +ё jo +й kr,atko||'i +щ StS;@2 +ъ tvR2d'i||zn,ak +ы jeri +ь m'eki||z,nak +э e +ю ju +я ja _á $accent _é $accent @@ -47,6 +91,10 @@ _í $accent _ó $accent _ú $accent +_ar 'Arapsko +_cyr tS;'iRilitsa + + // accent names _lig l'ig&t,UR& _acu 'akUt diff --git a/dictsource/hbs_rules b/dictsource/hbs_rules index 3e77614d..91212351 100755 --- a/dictsource/hbs_rules +++ b/dictsource/hbs_rules @@ -1,4 +1,4 @@ - + // "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage // This file is UTF-8 encoded @@ -31,7 +31,9 @@ .group d d d dz dz + _) dz (_ dz@ dž dZ + _) dž (_ dZ@ .group đ đ dZ; @@ -67,6 +69,8 @@ .group l l l K) l (K l- + + _) lj (_ l^@ lj (+ l^ v) lj lj @@ -79,6 +83,7 @@ n (k N nj n^ + _) nj (_ n^@ .group o o o diff --git a/dictsource/nl_list b/dictsource/nl_list index 9c2428dd..5cff59cf 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -58,7 +58,7 @@ _tld t'Ild@ // punctuation -. p8nt $max3 +. p8nt _, k'Oma: _: d'8b@l@p,8nt _; p'8ntkOm,a: @@ -75,8 +75,9 @@ _) h'a:kj@sl'Wyt@n _{ v'irkAnt@h,a:k _} v'irkAnt@h,a:ksl'Wyt@n _- k'OpElt,e:k@n -+ pl'8s $max3 -* st'E*rEt;@ $max3 ++ pl'8s +* st'E*rEt;@ += Q@l'EIkte:k@n __ l'IgEntst@-*'e:pj@ € 'Y:*o:t,e:k@n @@ -133,6 +134,7 @@ _0Co h'OndErtst@ // abbreviations be $abbrev // used as domain abbrev for Belgium and in a lot of other names +ca ka: $hasdot enz Enzo:vo:rt bvb bEIv'o:rbe:lt eu e:_y: $abbrev @@ -379,6 +381,7 @@ reken $alt schepen $alt steven $alt teken $alt +volwassen $alt wapen $alt zegen $alt trokken $alt diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 917b7373..4035a054 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -4,7 +4,7 @@ // Suffix rule: SUFX_E eg. S2e means double the vowel before the final consonant .L01 g k -.L02 _ t_ d_ de_ den_ // verb endings +.L02 _ t_ d_ de_ den_ nen_ // verb endings ('nen' for 'scannen') .group a @@ -330,13 +330,20 @@ g Q // ph_dutch changes to [x] before unvoiced, NULL after [x] gg Q s) g x + + @) gi (eus Z + @) gi (euz Z + reli) gi (eu Qij + +.group ge _) ge (@P2 Q@ ge (bied Q@ _) gee Qe: _) gei QEI gener (aal Q,e:n@r _) gelijk Q@lEIk + _) ge (lC QE _) ge (rC QE _) geu QY: _) ge (ven Qe: @@ -346,10 +353,8 @@ ge (sprek Q@ // in compounds - @) gi (eus Z - @) gi (euz Z - reli) gi (eu Qij + .group h h h @@ -360,6 +365,7 @@ _) herinn h%ErIn // herinneren _) hersen h'Ers@n &) heid (_S4 hEIt + _) hulp (@@P4 h'8lp .group i @@ -546,13 +552,14 @@ _) inn (@P2 'I // ?? inneren pl) oi (t v#A c) oi (ffu v#A pr) o (gram o: + omgeving OmQ'e:vIN oo (X 'o: oon 'o:n // in compounds, eg. telefoongesprek oo (C_ 'o: _) oost (@P4 o:st _) op (@@P2 'Op _) open (@P4 'o:p@n - _) op (enen 'o:p + _) op (enen+ 'o:p _) openings (P8 'o:p@nINs _) op (era 'o:p _) op (tion Op diff --git a/dictsource/pt_list b/dictsource/pt_list index 4c930fa4..34dd50b5 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -639,18 +639,19 @@ acervo $alt2 adepto $alt adore $alt adorno $alt $verb +aeroporto $alt2 +aeroportos $alt albatrozes $alt alcateia $alt alferes $alt algozes $alt alicerce $alt almoço $alt $verb -amarelo $alt ameba $alt amores $alt2 antonieta $alt2 apego $alt2 $noun -apelo $alt $verb +apelo $alt2 $noun aposto $alt $verb aperto $alt2 $noun apneia $alt @@ -660,8 +661,8 @@ arremesso $alt2 $noun arroz $alt2 assembleia $alt ateia $alt -aterro $alt2 $noun -aterros $alt2 +aterro $alt2 +aterro $alt $verb atmosfera $alt atrozes $alt autora $alt2 @@ -671,7 +672,6 @@ azeda $alt $verb azedo $alt $verb baqueta $alt2 beco $alt2 -belo $alt besta $alt2 bilhete $alt2 boca $alt2 @@ -685,22 +685,24 @@ borboleta $alt2 bordo $alt bosque $alt boto $alt2 $noun +brejo $alt bromelha $alt +cabelo $alt2 cabresto $alt2 cacete $alt2 cachorra $alt2 caderneta $alt2 cadete $alt2 +camelo $alt2 camiseta $alt2 cantora $alt2 capacete $alt2 caractere $alt -caramelo $alt +carbureto $alt2 careta $alt2 carreta $alt2 carroça $alt casebre $alt -castelo $alt cateto $alt2 catorze $alt2 cebola $alt2 @@ -712,8 +714,6 @@ cerco $alt $verb chamego $alt2 chefe $alt checam $alt -cheque $alt -chinelo $alt choro $alt2 $noun chovesse $alt2 chupeta $alt2 @@ -721,7 +721,6 @@ clamores $alt2 clero $alt coco $alt2 cofre $alt -cogumelo $alt coice $alt2 colabore $alt colete $alt2 @@ -736,7 +735,6 @@ concerto $alt2 $noun concertos $alt2 concordo $alt conforto $alt $verb -congelo $alt consolo $alt2 $noun controle $alt2 $noun controlo $alt2 $noun @@ -749,18 +747,21 @@ corto $alt corveta $alt2 corvos $alt coto $alt2 +cotovelo $alt2 cratera $alt crede $alt2 crepe $alt decore $alt +degelo $alt2 desapego $alt2 $noun -descabelo $alt descordo $alt desemprego $alt2 desemprego $alt $verb desespero $alt2 $noun desfecho $alt2 -desmantelo $alt $verb +desmantelo $alt2 $noun +desporto $alt2 +desportos $alt desprezo $alt2 $noun desse $alt2 desse $alt $verb @@ -771,15 +772,14 @@ destroem $alt deveras $alt dez $alt diarreia $alt +diego $alt2 discordo $alt dobro $alt2 $noun doce $alt2 doutora $alt2 droga $alt -duelo $alt dueto $alt2 elixir eliSir -elo $alt emprego $alt2 $noun empregos $alt2 encosto $alt $verb @@ -795,8 +795,8 @@ envolto $alt2 enxerto $alt2 $noun epopeia $alt eritreia $alt -erro $alt2 $noun -erros $alt2 +erro $alt2 +erro $alt $verb esboço $alt $verb escopeta $alt2 escova $alt2 $noun @@ -805,8 +805,8 @@ escovo $alt escroto $alt2 esforço $alt $verb esforços $alt -esgoto $alt2 $noun -esgotos $alt2 +esgoto $alt2 +esgoto $alt $verb esperma $alt espeto $alt2 $noun espiroqueta $alt2 @@ -825,7 +825,6 @@ exagero $alt $verb explore $alt faceta $alt2 fantoche $alt -farelo $alt farofa $alt febre $alt fera $alt @@ -834,26 +833,27 @@ ferozes $alt fezes $alt ?1 fixe fiSy foda $alt2 $verb -folheto $alt2 -folga $alt fogos $alt foguete $alt2 foice $alt2 +folheto $alt2 fora $alt fora $alt2 $verb forca $alt2 força $alt2 $noun forças $alt2 forço $alt +formos $alt2 forro $alt $verb frevo $alt2 +fulgores $alt2 galera $alt galileia $alt gameta $alt2 geleia $alt -gelo $alt $verb +gelo $alt2 +gelo $alt $verb genebra $alt -germe $alt gesso $alt2 golpe $alt gonorreia $alt @@ -878,22 +878,19 @@ lagosta $alt2 lambreta $alt2 lebre $alt lembrete $alt2 +lepra $alt leste $alt2 $verb lingueta $alt2 lopes $alt macete $alt2 maior $alt maleta $alt2 -marcelo $alt -marmelo $alt marreta $alt2 -martelo $alt +megera $alt melhor $alt menor $alt -merda $alt -megera $alt -melo $alt mentora $alt2 +merda $alt meta $alt $noun meteoro $alt metro $alt @@ -903,6 +900,8 @@ mexo m'eSU minueto $alt2 miolo $alt2 miolos $alt +modelo $alt2 +modelo $alt $verb moeda $alt mofo $alt $verb molho $alt2 $noun @@ -923,6 +922,7 @@ namoro $alt2 $noun naquela $nounf naquele $alt2 $nounf nervo $alt2 +novelo $alt2 novos $alt obstetra $alt odisseia $alt @@ -944,14 +944,14 @@ panfleto $alt2 pangeia $alt panqueca p,&~Nk'Ek& pantera $alt -paralelo $alt parede $alt2 pastora $alt2 pedra $alt pela $alt $verb pelego $alt2 pela $alt $verb -pelo $alt $verb +pelo $alt2 +pelo $alt $verb peso $alt $verb piloto $alt2 $noun pintora $alt2 @@ -986,10 +986,13 @@ reforço $alt $verb reforços $alt refresco $alt $verb reitora $alt2 +rejo $alt relevo $alt2 $noun remorso $alt renovo $alt $verb retorno $alt $verb +reuva $alt +rigores $alt2 rixa x'iS& rocha $alt rock $alt @@ -1005,12 +1008,12 @@ seca $alt2 $noun secas $alt2 seco $alt2 seco $alt $verb -selo $alt $verb +selo $alt2 +selo $alt $verb selvagem seUv'aZeIN sexteto $alt2 ?1 senhora $alt2 senhores $alt2 -singelo $alt sinopse $alt soco $alt2 soco $alt $verb @@ -1034,6 +1037,7 @@ tocha $alt toga $alt topo $alt $verb torno $alt $verb +tornozelo $alt2 torre $alt2 $noun torres $alt2 torro $alt @@ -1049,16 +1053,13 @@ trombeta $alt2 tumores $alt2 valeta $alt2 vanessa $alt2 -velo $alt velozes $alt -verme $alt violeta $alt2 violoncelo $alt voga $alt vozes $alt xarope $alt -xeque $alt -zelo $alt $verb +zelo $alt2 $noun zero $alt zorra $alt2 diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 69e6b3d3..8cbbbbd6 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -198,7 +198,7 @@ e (guem_ E e (lA_ E - e (lo_ e + e (lo_ E e (lAm_ E i) e (r_ E @@ -220,9 +220,15 @@ f) e (re_ E f) e (rem_ E + e (que_ E + e (quem_ E + e (rgA_ E e (rgAm_ E +e (rgue_ E +e (rguem_ E + e (rsA_ E e (rsAm_ E @@ -236,6 +242,8 @@ e (stAm_ E e (strA_ E +e (rme_ E + e (rnA_ E e (rnAm_ E @@ -458,10 +466,7 @@ respond) e (L07_ e // cor- tr) e (pL04_ E // es- _dec) e (pL04_ E _in) e (ptL03_ E - _p) e (quL02_ E - _s) e (quL02_ E ad) e (quL04_ E - l) e (que_ E _imp) e (rL03_ E _sev) e (rL03_ E _reit) e (rL03_ E @@ -483,13 +488,10 @@ _recup) e (rL04_ E _refrig) e (rL04_ E _v) e (rbL03_ E _p) e (rdL02_ E +_ch) e (guL02_ e _l) e (rdL03_ E _h) e (rdL04_ E - _) e (rgL03_ e - _) e (rguL02_ E - _alb) e (rguL02_ E - _enx) e (rguL02_ E - _bez) e (rrL03_ e + _bez) e (rrL03_ e _inv) e (rtL03_ e _f) e (rvL03_ e _refr) e (scL01_ E @@ -574,14 +576,18 @@ _entorp) e (çL03_ e gu (Y g a) gu (ent gw _ar) gu (i gw + averi) gu (e gw enxa) gu (e gw + i) gu (idade gw lin) gu (e gw lin) gu (i gw + _min) gu (e gw _pin) gu (im_ gw _pin) gu (ins_ gw - _sa) gu )i gw + _sa) gu (i gw san) gu (ín gw san) gu (in gw + tin) gu (i gw ?1 n) gu (A gw // eg: língua, etc. ?1 man) gu (ei g // mangueira ?1 gu (ém_ g // eg: alguém, ninguém, etc... @@ -825,9 +831,10 @@ _entorp) e (çL03_ e //sort _f) o (L05_ o _f) o (L07_ o - _engl) o (bL01_ O + _engl) o (bL04_ O _s) o (bL02_ O _esn) o (bL04_ O + _af) o (bL04_ O br) o (chL04_ O _deb) o (chL04_ O _m) o (fL01_ O @@ -835,6 +842,8 @@ _entorp) e (çL03_ e _s) o (frL02_ O r) o (gL04_ O // inter- _j) o (gL04_ O +_emp) o (lgL04_ O +_f) o (lgL04_ O _af) o (gL04_ O _adv) o (gL04_ O _ref) o (gL04_ O diff --git a/espeak-data/voices/en-us b/espeak-data/voices/en-us index fd86703c..d61ff5cf 100755 --- a/espeak-data/voices/en-us +++ b/espeak-data/voices/en-us @@ -9,7 +9,7 @@ phonemes en-us dictrules 3 6 option reduce_t 1 -stressLength 145 125 190 170 0 0 260 300 +stressLength 140 120 190 170 0 0 255 290 stressAmp 17 16 19 19 19 19 21 19 replace 03 I i diff --git a/phsource/compile_report b/phsource/compile_report index cc441290..639f02eb 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1016,7 +1016,8 @@ vdiph2/ee@ [e@] en-n vdiph2/ee@_2 [e@] en-rp vdiph2/ei_2 [eI] en-rp vdiph2/ei_3 [i:] en-wm -vdiph2/ei_4 [ei] zh +vdiph2/ei_4 [eI] en-us + [ei] zh [eI] sq vdiph2/eo [eo] ro vdiph2/e_u [e[u] ro @@ -1169,7 +1170,6 @@ vdiph/eei_2 [eI] eo vdiph/eei_3 [eI] lt [eI] sk [eI] ku -vdiph/eei_5 [eI] en-us vdiph/eeu [EU] pt [EU] grc [EU] vi diff --git a/phsource/ph_danish b/phsource/ph_danish index 885bbbd9..de0a2e11 100644 --- a/phsource/ph_danish +++ b/phsource/ph_danish @@ -1,11 +1,11 @@ // PB General rules for vowels: // Short vowels -// ACC: Short "pille" [p?el@-] -// AC[V]: Short "piler" [p?ilV] +// ACC: Short "pille" [p?el@-], "andre" [AndRV] +// AC[V]: Short "piler" [p?ilV] - verbs, not nouns, which is a problem // A[N]: Short "bange" [b?AN@-] // Long vowels -// A + group #@ OR group #e: Long "ae" "aer" [&:@-] -// AC + group #@ OR group #e: Long "pile" [pi:l@-] +// A + @- OR V: Long "ae" "aer" [&:@-] +// AC + @- OR V: Long "pile" [pi:l@-] // AC[i]: Long "smidig" [smi:Di] phoneme @ @@ -22,10 +22,10 @@ phoneme @- // very short schwa IF nextPhW(*) OR nextPhW(r) THEN ipa NULL // @-* is used to make 'r' ENDIF - length 40 + length 50 // "femten", "manden" - only a short "n" sound IF nextPhW(n) THEN - length 20 + length 15 ENDIF IF prevPhW(isNotVowel) AND thisPh(isWordEnd) THEN length 15 @@ -56,9 +56,9 @@ endphoneme phoneme i vowel starttype #i endtype #i - length 140 //225 -// PB long vowel followed by consonant and certain vowels "gide" -IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN + length 140 +// Long vowel followed by consonant and @- "gide", "pile" +IF nextPhW(isNotVowel) AND next2PhW(@-) THEN length 225 ENDIF // "gider", vrider" @@ -69,15 +69,6 @@ ENDIF IF nextPhW(@-) OR nextPhW(V) THEN length 225 ENDIF -// Only this vowel (in this case [i]) -IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN - length 225 -ENDIF -// This vowel is word end - longer because it sounds too short -// "sig", "si" -IF thisPh(isWordEnd) THEN - length 120 -ENDIF // "vilje" - short followed by 2 consonants IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN length 140 @@ -86,7 +77,7 @@ ENDIF // What is causing this very short [i] in words with final [@-]? // NOT "galleriet" [g,?&lVR'i@-D] IF nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN - length 240 +// length 240 ENDIF //"skider" short IF nextPhW(D) AND next2PhW(V) THEN @@ -119,9 +110,9 @@ endphoneme phoneme e vowel starttype #e endtype #e - length 140 //225 -// "delte", "mente" -IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN + length 140 +// "dele", "mene" +IF next2PhW(@-) THEN length 225 ENDIF // PB "ring", "ringe" @@ -132,17 +123,9 @@ ENDIF IF nextPhW(isNotVowel) AND next2PhW(i) THEN length 225 ENDIF -// Only "e" -IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 225 -ENDIF -// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short +// "nedladende" [n'eDl&D@-n@-], "delte" - before 2 consonants: short IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN length 140 -ENDIF -// "et" -IF thisPh(isWordStart) AND nextPhW(isWordEnd) THEN - length 120 ENDIF FMT(vowel/e) endphoneme @@ -152,35 +135,39 @@ endphoneme phoneme ?e vowel starttype #e endtype #e length 140 +// "rigtigt" R makes the e too long + IF prevPhW(R) THEN + length 100 + ENDIF +// "sigte" t/d + @- makes the e too long +IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) AND next3PhW(@-) THEN + length 100 +ENDIF FMT(vowel/e) endphoneme phoneme E vowel starttype #e endtype #e - length 140 //225 + length 140 // no link with next vowel IF thisPh(isWordEnd) THEN IfNextVowelAppend(_!) ENDIF // "ræve" -IF nextVowel(#@) OR nextVowel(#e) THEN - length 160 +IF nextVowel(@-) THEN + length 225 ENDIF // "ære", "kærester", "ærefrygt" - longer E IF nextPhW(V) THEN - length 180 -ENDIF -// Only the letter "æ" - long -IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 160 + length 225 ENDIF // "stædig" [st'EDi] long IF nextPhW(isNotVowel) AND next2PhW(i) THEN - length 160 + length 225 ENDIF // "længe" - short - 2 consonants => 1 consonant IF nextPhW(N) THEN - length 100 + length 140 ENDIF // "værelse" [v'E3-Vls@_!] IF nextPhW(3-) AND next2PhW(V) THEN @@ -199,35 +186,34 @@ phoneme ?E vowel starttype #e endtype #e ipa ε length 140 + // "fred" R makes the E too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + length 100 + ENDIF +// "fængsel" N makes the E too long + IF nextPhW(N) THEN + length 100 + ENDIF FMT(vowel/e_mid2) endphoneme phoneme & vowel starttype #e endtype #e - ipa a - length 140 //225 + ipa æ + length 140 // "same", "sale", "bade" - consonant + @-: long // but NOT "hinanden" IF next2PhW(@-) OR next2PhW(@) AND NOT next3PhW(n) THEN length 225 ENDIF -// ThisPh + V or group #@ +// ThisPh + V or @- // "ae", "aer" vowel + vowel: extra length IF nextPhW(@-) OR nextPhW(V) THEN length 260 ENDIF -// This vowel is word end - longer because it sounds too short -// "ja", "Omaha" -IF thisPh(isWordEnd) THEN - length 120 -ENDIF -// Only this vowel (in this case [&]) -IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN - length 225 -ENDIF // "stadig" [st&Di], "stadigt" [st&Dit] IF nextPhW(isNotVowel) AND next2PhW(i) THEN - length 180 + length 225 ENDIF // "Alfie", "alfer" - short before 2 consonants IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN @@ -236,27 +222,20 @@ ENDIF FMT(vowel/ee_2) endphoneme -// PB Short & +// Short & // e.g. the last a in "staldkarl" // "sale" vs. "sal" phoneme ?& - ipa a vowel starttype #e endtype #e length 140 FMT(vowel/ee_2) endphoneme -// PB added for the æ in "dræbt" +// Added for the æ in "dræbt" phoneme &# vowel starttype #e endtype #e - length 140 //120 -IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN - length 120 -ENDIF -// "drenge" -IF nextPhW(N) THEN - length 140 -ENDIF + length 140 + ipa a FMT(vowel/&) endphoneme @@ -264,21 +243,17 @@ endphoneme // "revl" vs. "tremme" phoneme ?&# vowel starttype #e endtype #e - length 140 + length 120 FMT(vowel/&) endphoneme phoneme A // PB changed to a_8 vowel starttype #a endtype #a - length 140 //225 + length 140 // PB long vowel followed by consonant and certain vowels - "drabelig" IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN length 225 ENDIF -// "far", "bastard" - a bit longer followed by [r] -IF nextPhW(r) AND nextPhW(isWordEnd) THEN - length 120 -ENDIF // "bange" [bAN@-] - [N] = 2 consonants (ng) => short IF nextPhW(N) THEN length 140 @@ -287,13 +262,12 @@ ENDIF IF nextPhW(A) THEN length 225 ENDIF -// "av" [Au] - a bit longer -IF nextPhW(isWordEnd) THEN - length 120 +// "gratis" +IF next2PhW(i) THEN + length 225 ENDIF -// "magnat" [mAun&d] - sounds too short -IF nextPhW(u) OR nextPhW(w) THEN - length 130 +IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 140 ENDIF FMT(vowel/a_8) endphoneme @@ -303,66 +277,49 @@ endphoneme phoneme ?A vowel starttype #a endtype #a length 140 -// "straffeattest", "straffe", "rapid" - a bit longer after R -IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN - length 110 -ENDIF FMT(vowel/a_8) endphoneme phoneme u vowel starttype #u endtype #u - length 140 //225 -// "fugl" [ful] - a bit longer -IF nextPhW(isWordEnd) THEN - length 120 -ENDIF + length 140 // "suge", "uge", "bluse", "julegave" IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN length 225 ENDIF // "umulig" [u:m'uli] IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN - length 180 -ENDIF -// Only "u" -IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 225 + length 225 ENDIF FMT(vowel/u_bck) endphoneme -// PB glottal u +// Short u // "tude" vs. "tuden" - [tuD3] [t?uD@n] phoneme ?u vowel starttype #u endtype #u length 140 +// "slutte" t/d + @- makes the u too long +IF nextPhW(t) OR nextPhW(d) AND next2PhW(@-) THEN + length 100 +ENDIF FMT(vowel/u_bck) endphoneme phoneme o vowel starttype #o endtype #o - length 140 //225 -// "bore", "borer" -IF nextPhW(V) OR nextPhW(#@) THEN + length 140 +// "bore", "borer" [boV] o + V +IF nextPhW(V) OR nextPhW(@-) THEN length 225 ENDIF -// "kone", "koner" -IF next2PhW(V) OR next2PhW(#@) THEN +// "kone", "koner" o + consonant + V or @- +IF next2PhW(V) OR next2PhW(@-) THEN length 225 ENDIF // "modig" - long vowel after consonant + [i] IF nextPhW(D) AND next2PhW(i) THEN length 225 -ENDIF -// Only "o" -IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 120 -ENDIF -// This vowel is word end - longer because it sounds too short -// "ko" -IF thisPh(isWordEnd) THEN - length 120 ENDIF FMT(vowel/o_2) endphoneme @@ -377,8 +334,9 @@ endphoneme phoneme O vowel starttype #o endtype #o - length 140 // 150 -// "sove", "sover" - consonant + #e or #@: long + length 140 + ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ +// "sove", "sover" - consonant + @ or V: long IF next2PhW(@-) OR next2PhW(V) THEN length 225 ENDIF @@ -388,12 +346,7 @@ IF nextPhW(V) OR nextPhW(@-) THEN ENDIF // "rådig" IF nextVowel(i) AND nextVowel(isFinalVowel) THEN - length 180 -ENDIF -// This vowel is word end - longer because it sounds too short -// "på", "gå" -IF thisPh(isWordEnd) THEN - length 120 + length 225 ENDIF // "såre", "sårede" [s'O:?OD@-] IF nextPhW(O) OR nextPhW(?O) THEN @@ -407,37 +360,24 @@ endphoneme phoneme ?O vowel starttype #o endtype #o length 140 -// "hoven" -IF nextPhW(w) OR nextPhW(?u) AND next2PhW(@-) THEN - length 120 -ENDIF FMT(vowel/o_5) endphoneme phoneme V vowel starttype #@ endtype #@ - length 140 //225 + length 140 // "forlig" IF nextPhW(isNotVowel) AND next2PhW(i) THEN - length 180 + length 225 ENDIF // PB "konge" - ng=>n IF nextPhW(N) THEN - length 100 -ENDIF -// Only [V] - "og" -IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 120 -ENDIF -// This vowel is word end - longer because it sounds too short -// "for" [fV] -IF thisPh(isWordEnd) THEN - length 120 + length 140 ENDIF FMT(vowel/V_4) endphoneme -// PB Short å +// PB Short V // "forstår" vs. "kåre" phoneme ?V vowel starttype #@ endtype #@ @@ -463,31 +403,28 @@ endphoneme phoneme y vowel starttype #i endtype #i -// Length changed to short since most vowels are short. -// It's probably easier only to make rules for long vowels. - length 140 //225 - + length 140 // PB long vowel followed by consonant and certain vowels // "gyde", "gyder" IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN length 225 ENDIF -// Only this vowel (in this case [y]) -IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN - length 225 -ENDIF // "dydig" [dyDi] IF nextPhW(isNotVowel) AND next2PhW(i) THEN length 225 ENDIF // "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN - length 200 + length 225 ENDIF // "tyve" IF nextPhW(?u) AND next2PhW(@-) THEN length 225 ENDIF +// "bryde" R makes the y too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + length 180 + ENDIF FMT(vowel/y) endphoneme @@ -496,6 +433,14 @@ endphoneme phoneme ?y vowel starttype #i endtype #i length 140 +// "udrydde" R makes the y too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + length 100 + ENDIF +// "hytte" t/d + @- makes the y too long +IF nextPhW(t) OR nextPhW(d) AND next2PhW(@-) THEN + length 100 +ENDIF FMT(vowel/y) endphoneme @@ -514,35 +459,30 @@ endphoneme phoneme W vowel starttype #@ endtype #@ - length 140 //160 -// "kløe" vowel + vowel: extra length -IF nextPhW(#@) OR nextPhW(#e) THEN - length 220 + length 140 +// "kløe" vowel + vowel: long +IF nextPhW(@-) THEN + length 225 ENDIF -// røde" W + 1 consonant + 3 or W or @ -IF next2PhW(#@) OR next2PhW(#e) THEN - length 160 +// "røve" W + 1 consonant + 3 or W or @ +IF next2PhW(@-) OR next2PhW(3) THEN + length 225 ENDIF -// "røveri" but NOT "surfer" [sWf?V] TEST +// "røveri" but NOT "surfer" [sWfV] TEST IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN length 140 ENDIF -// PB "nødig", "nødigt", "kølige" +// PB "nødig", "nødigt", "kølige" - long IF nextVowel(i) THEN - length 160 -ENDIF -// "møve" [mWw@-] -IF nextPhW(w) AND nextVowel(@-) THEN - length 160 -ENDIF -// "børnebog" -IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN length 225 ENDIF -// This vowel is word end - longer because it sounds too short -// "dø" [dW] -IF thisPh(isWordEnd) THEN - length 120 +// "møve" [mWw@-] - long +IF nextPhW(w) AND nextVowel(@-) THEN + length 225 +ENDIF +// "børnebog" - short +IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN + length 140 ENDIF // PB "synge" IF nextPhW(N) THEN @@ -556,6 +496,10 @@ endphoneme phoneme ?W vowel starttype #@ endtype #@ length 140 +// "bryllup", "rødder" R makes the y too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + length 100 + ENDIF FMT(vowel/oe) endphoneme @@ -628,7 +572,7 @@ phoneme l/3 // Replacement for [l/] VowelEnding(l/l_a) VowelEnding(l/l_e, -50) // hjælpe VowelEnding(l/l_i, -70) // flygte? - VowelEnding(l/l_o,-35) // stole, skole, pistol + VowelEnding(l/l_o, -60) // stole, skole, hjulpet VowelEnding(l/l_u, -70) EndSwitch @@ -742,4 +686,4 @@ Vowelout len=70 Vowelout len=70 FMT(j/j_) ENDIF -endphoneme +endphoneme \ No newline at end of file diff --git a/phsource/ph_english b/phsource/ph_english index f0e54f71..427e5da3 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -194,6 +194,11 @@ phoneme aa // 'bath' etc. vowel starttype #a endtype #a ipa a length 185 + + IF MbrolaSynth THEN + ChangePhoneme(A:) + ENDIF + IfNextVowelAppend(r-) FMT(vowel/a) endphoneme @@ -219,18 +224,30 @@ phoneme I2 vowel starttype #i endtype #i unstressed length 130 + + IF MbrolaSynth THEN + ChangePhoneme(I) + ENDIF + IfNextVowelAppend(;) FMT(vowel/ii_4) endphoneme + phoneme I# // used for [I] which may be [@] in some accents vowel starttype #i endtype #i unstressed length 130 + + IF MbrolaSynth THEN + ChangePhoneme(I) + ENDIF + IfNextVowelAppend(;) ChangePhoneme(I2) endphoneme + phoneme i // optional variant of [I] for end of words vowel starttype #i endtype #i ipa ɪ @@ -342,6 +359,11 @@ phoneme o@ vowel starttype #o endtype #o ipa ɔː length 250 + + IF MbrolaSynth THEN + ChangePhoneme(O@) + ENDIF + IfNextVowelAppend(r-) FMT(vowel/oo_en) endphoneme @@ -418,6 +440,11 @@ endphoneme phoneme i@3 vowel starttype #i endtype #@ length 250 + + IF MbrolaSynth THEN + ChangePhoneme(i@) + ENDIF + IfNextVowelAppend(r-) FMT(vdiph2/ii@) endphoneme diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 746ff73f..fdfc2909 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -69,7 +69,7 @@ endphoneme phoneme E vowel starttype #e endtype #e - length 195 + length 190 ChangeIfDiminished(I2) FMT(vwl_en_us/ee) endphoneme @@ -181,7 +181,7 @@ endphoneme phoneme O: vowel starttype #o endtype #o - length 210 + length 200 ChangeIfDiminished(@) IF nextPh(r) THEN FMT(vwl_en_us/oor) @@ -245,7 +245,7 @@ endphoneme phoneme aI vowel starttype #a endtype #i - length 250 + length 240 IF nextPh(#a) OR nextPh(#o) THEN AppendPhoneme(;) ENDIF @@ -255,14 +255,15 @@ endphoneme phoneme eI vowel starttype #e endtype #i - length 230 - FMT(vdiph/eei_5) + length 220 + FMT(vdiph2/ei_4) +// FMT(vdiph/eei_5) endphoneme phoneme OI vowel starttype #o endtype #i - length 285 + length 280 FMT(vdiph/ooi_4) endphoneme diff --git a/phsource/ph_portugal b/phsource/ph_portugal index 37f51ed7..5635da19 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -48,21 +48,21 @@ endphoneme phoneme E vowel starttype #e endtype #e - length 170 + length 180 ChangeIfUnstressed(y) FMT(vowel/e_mid) endphoneme phoneme e vowel starttype #e endtype #e - length 160 + length 180 ChangeIfUnstressed(y) FMT(vowel/e) endphoneme phoneme y vowel starttype #@ endtype #@ - length 110 + length 130 ipa ɨ FMT(vowel/i#_5) endphoneme @@ -70,7 +70,7 @@ endphoneme phoneme i vowel starttype #i endtype #i - length 150 + length 170 IfNextVowelAppend(;) FMT(vowel/i) endphoneme @@ -78,7 +78,7 @@ endphoneme phoneme i/ // changes to NULL before a vowel vowel starttype #i endtype #i - length 100 + length 130 ipa ɨ IF nextPh(isVowel) THEN ChangePhoneme(NULL) @@ -90,7 +90,7 @@ endphoneme phoneme O vowel starttype #o endtype #o - length 170 + length 180 // ChangeIfNotStressed(o) FMT(vowel/0_2) endphoneme @@ -98,7 +98,7 @@ endphoneme phoneme o vowel starttype #o endtype #o - length 170 + length 180 ChangeIfNotStressed(u) FMT(vowel/o) endphoneme @@ -106,13 +106,13 @@ endphoneme phoneme u vowel starttype #u endtype #u - length 160 + length 180 FMT(vowel/u_6) endphoneme phoneme U vowel starttype #u endtype #u - length 110 + length 130 IF nextPh(isVowel) THEN ChangePhoneme(w) ENDIF @@ -122,7 +122,7 @@ endphoneme phoneme EU vowel starttype #e endtype #u - length 220 + length 230 FMT(vdiph/eeu_2) endphoneme diff --git a/src/compiledata.cpp b/src/compiledata.cpp index 793bd10a..a9307d25 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -2866,8 +2866,8 @@ int CompilePhoneme(int compile_phoneme) break; case i_ADD_LENGTH: - value = NextItem(tSIGNEDNUMBER); - *prog_out++ = (i_ADD_LENGTH << 8) + value/2; + value = NextItem(tSIGNEDNUMBER) / 2; + *prog_out++ = (i_ADD_LENGTH << 8) + (value & 0xff); DecThenCount(); break; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 7d8cb09b..fb51399a 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -3469,16 +3469,34 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f } // end of LookupDictList +extern char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes int Lookup(Translator *tr, const char *word, char *ph_out) {//=================================================== + int found; unsigned int flags[2]; + int say_as; + char *word1 = (char *)word; + char text[80]; + flags[0] = 0; flags[1] = FLAG_LOOKUP_SYMBOL; - char *word1 = (char *)word; - return(LookupDictList(tr, &word1, ph_out, flags, 0, NULL)); + found = LookupDictList(tr, &word1, ph_out, flags, FLAG_ALLOW_TEXTMODE, NULL); + + if(flags[0] & FLAG_TEXTMODE) + { + say_as = option_sayas; + option_sayas = 0; // don't speak replacement word as letter names + text[0] = 0; + strncpy0(&text[1], word1, sizeof(text)); + found = TranslateWord(tr, &text[1], 0, NULL, NULL); + strcpy(ph_out, word_phonemes); + option_sayas = say_as; + } + return(found); } + int LookupFlags(Translator *tr, const char *word) {//============================================== char buf[100]; diff --git a/src/numbers.cpp b/src/numbers.cpp index 242924ac..ce94948b 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -651,7 +651,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) current_alphabet = alphabet; if((alphabet != NULL) && !(al_flags & AL_DONT_NAME) && (al_offset != translator->letter_bits_offset)) { - if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet)) + if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet) || (al_offset == translator->langopts.our_alphabet)) { // don't say the alphabet name } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index f76225b0..b6fe3fbf 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.03d 26.Mar.13"; +const char *version_string = "1.47.03e 29.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; @@ -1032,6 +1032,16 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ phdata->pd_param[i_APPEND_PHONEME] = data; } else + if(instn2 == i_ADD_LENGTH) + { + if(data & 0x80) + { + // a negative value, do sign extension + data = -(0x100 - data); + } + phdata->pd_param[i_SET_LENGTH] += data; + } + else if(instn2 == i_IPA_NAME) { // followed by utf-8 characters, 2 per instn word diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 57cdcabf..5a325c37 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -654,10 +654,10 @@ Translator *SelectTranslator(const char *name) // character codes offset by 0x380 static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; - static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ έ ή ί ύ - static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; // θ κ ξ π ς σ τ φ χ + static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ έ ή ί ύ _ + static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; // θ κ ξ π ς σ τ φ χ _ static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0}; - static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ + static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ _ SetupTranslator(tr,stress_lengths_el,stress_amps_el); @@ -670,7 +670,7 @@ Translator *SelectTranslator(const char *name) SetLetterBits(tr,LETTERGP_VOWEL2,el_vowels); SetLetterBits(tr,LETTERGP_B,el_voiceless); SetLetterBits(tr,LETTERGP_C,el_consonants); - SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ + SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ _ tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.stress_rule = STRESSPOSN_2R; @@ -912,6 +912,7 @@ SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_DECIMAL_COMMA | NUM_THOUS_SPACE | NUM_DFRACTION_2 | NUM_ROMAN_CAPITALS; tr->langopts.numbers2 = 0xa + NUM2_THOUSANDS_VAR5; // variant numbers before thousands,milliards tr->langopts.replace_chars = replace_cyrillic_latin; + tr->langopts.our_alphabet = OFFSET_CYRILLIC; // don't say "cyrillic" before letter names SetLetterVowel(tr,'y'); SetLetterVowel(tr,'r'); @@ -1113,6 +1114,7 @@ SetLengthMods(tr,3); // all equal static const unsigned char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0}; // voiced consonants, l,m,n,N tr->letter_bits_offset = OFFSET_KOREAN; + tr->langopts.our_alphabet = 0xa700; memset(tr->letter_bits,0,sizeof(tr->letter_bits)); SetLetterBitsRange(tr,LETTERGP_A,0x61,0x75); SetLetterBits(tr,LETTERGP_Y,ko_ivowels); @@ -1194,6 +1196,7 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_mk,stress_amps_mk); tr->charset_a0 = charsets[5]; // ISO-8859-5 tr->letter_groups[0] = tr->letter_groups[7] = vowels_cyrillic; + tr->letter_bits_offset = OFFSET_CYRILLIC; tr->langopts.stress_rule = STRESSPOSN_3R; // antipenultimate tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; @@ -1608,6 +1611,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping) tr->langopts.ideographs = 1; + tr->langopts.our_alphabet = 0x3100; tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word if(name2 == L('z','h')) { diff --git a/src/translate.h b/src/translate.h index 898cd9b7..2ffcd223 100644 --- a/src/translate.h +++ b/src/translate.h @@ -546,6 +546,7 @@ typedef struct { int listx; // compile *_listx after *list const unsigned int *replace_chars; // characters to be substitutes char ascii_language[8]; // switch to this language for Latin characters + int our_alphabet; // offset for main alphabet (if not set in letter_bits_offset) int alt_alphabet; // offset for another language to recognize int alt_alphabet_lang; // language for the alt_alphabet int max_lengthmod;