From f3a4623535db232302b9c6b8f6c9abf5a481d458 Mon Sep 17 00:00:00 2001 From: jonsd Date: Sat, 7 Jul 2007 15:37:48 +0000 Subject: [PATCH] [1.27.06] Roman number translation added (for some languages). espeak_Char(32) can speak "space" by adding an entry for _#32 in *_list file. Similarly for Tab. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@61 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/af_list | 3 +- dictsource/af_rules | 20 +- dictsource/dict_phonemes | 6 +- dictsource/en_list | 7 +- dictsource/es_list | 78 +-- dictsource/es_rules | 14 +- dictsource/hr_list | 32 +- dictsource/hu_list | 38 +- dictsource/hu_rules | 16 +- dictsource/it_list | 4 +- dictsource/la_list | 142 +--- dictsource/pt_list | 52 +- dictsource/pt_rules | 2 - dictsource/ro_list | 1366 ++++++++++++++++++++++++++++++++------ dictsource/ro_rules | 265 +++++--- phsource/mbrola/ro1 | 10 +- phsource/ph_english_us | 2 +- src/numbers.cpp | 81 ++- src/readclause.cpp | 4 + src/synthdata.cpp | 2 +- src/tr_english.cpp | 3 +- src/tr_languages.cpp | 24 +- src/translate.cpp | 17 +- src/translate.h | 9 +- 24 files changed, 1614 insertions(+), 583 deletions(-) diff --git a/dictsource/af_list b/dictsource/af_list index 70c46795..de8778e2 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -1,4 +1,4 @@ -//maintainer: Willem van der Walt +//maintainer: Willem van der Walt // email: wvdwalt@csir.co.za // tel: +27 12 8413996 // Meraka Institute, CSIR @@ -541,6 +541,7 @@ rukkerig rWk@r@x2 samelewing sA:m@l,e@v@N sedert se@d@rt sektore $2 +sinteties $2 skepsele skEps@l@ s'n s'@n sobere s'o@b@r@ diff --git a/dictsource/af_rules b/dictsource/af_rules index fb36b7d4..77643a6d 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -16,6 +16,7 @@ a (C a C) a (Csier %a // (ge)finansier/kassier j) a (pan %a //japan first a sound and stress + C) abie 'A:bi abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie _) a (bC %a // abdy/ablatief/ablusie/abstrak, etdc. @@ -37,6 +38,11 @@ _) aka a%k@ //akademie etc. akkedis a%k@d'Is //akkedis and compounds ae A: //should be A:@ but sounds wrong + konst) abel A:b@l //exception for konstabel in compounds + t) abel %ab'&l //tabelopskrif temperatuurtabel etc. + t) abell %ab'&l //tabelle fix double l + w) a (tering A: //watering exception to the rest + C) a (tering %a //short unstressed a before tering formatering etc. except watering ai aI adres %adrEs // fix last e sound of adres as last part of compounds _) alle (C al@ // alledaags/e/allerhande @@ -734,7 +740,8 @@ CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others orr) e (l @ //fix e in borrel, orrel, korrel in compounds intell) e (k %E //intellek, and friends - + p) e (ring 'e@ //imansipering and others e sound and stress + roep) e (ring 'e@ //groepering e sound and stress eval (u %iv%al // evaluasie/evalueer/evaluering CAt) e (gn & //fix e in mikrotegnologie and others ei) e @ //eiewys and others @@ -924,6 +931,7 @@ iber (i@ %ibe@r // Liberië/Siberië/Liberiese/Siberiese/Iberiese ie i h) i (dro i //hidro in compounds + _) in (a@ In_ //inasem inagneming etc. _) iese (C ,is@ // iesegrimmig and derivitives ieus i'Y@s // this ending always takes stress C) i (g @// figuur/figure/stoksielsaligalleenA @@ -1320,7 +1328,6 @@ minder (jar m@n@r // move default stress: minderjarig and derivitives miner (A m@n@r // mineraal and many compounds mi (neur m%i // move default stress: mineur and compounds - minnares (_ m@n%arEs // fix stress and e sound: minnares/medeminnares and similar mikr (o mikr ministers m@n'Ist@rs mise (ra m@s // fix stress and drop e: miserabel/-e/-s/-ste @@ -1449,6 +1456,7 @@ _) na (skeer n''A: // restore default stress: naskeermiddel/-room _) na (tC na // many compounds beginning with nat na (tuur n%a // natuur and compounds and derivitives + navig n%av%ix2 //navigasie, navigeer etc. @) na (_ na // shorten final na, except for: r) na (_ nA: // daarna/hierna/waarna nadruklik nA:dr'Wkl@k // nadruklik/e @@ -2176,12 +2184,15 @@ te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog _) 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 + Ca) te (ring t'e@ //opdatering formatering etc. _) tering te@r@N // tering and compounds tesou (rie t%Es%u //tesourie and compounds moles) tering te@r@N // molestering/kindermolestering _) ter (l t@r // move default stress: terloops/-e @) term (_ t&r@ // correct pronunciation of e @) terme (_ t&rm@ // correct pronunciation of 1st e + sin) te (ti te@ //sintetiseer, compounds and derivitives tern (K t'&:r@-n //lantern ekstern etc. tern (e_ t'&rn // interne/eksterne _) ter (nA t@r // terneergedruk/ternouernood @@ -2302,6 +2313,7 @@ ven (ster fe~n // nasalise ven (yn f@n // venyn/venynig ver f@r + virtu v@rtS%y //virtueel virtuose etc. fix v and t sounds and assure lack of stress _) ver (@P3 f@r verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording verende f'e@r@nd@ @@ -2459,7 +2471,7 @@ woe (styn v%u // move default stress: woestyn and compounds wolke vOlk@ // nimbuswolke/wolkekrabber woorde vo@rd@ - + w (yser v //padwyser and many others with wyser in compounds nt) w (A v .group x @@ -2515,7 +2527,7 @@ ** **) * (_ _:: - + plus + + pl'Ws _) ++ (_ pluspl'us \+\+\+) + // ignore + after the first 3 diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 141ff973..400816fa 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -307,9 +307,9 @@ y Y yI yU * *; b b; c C d d; dZ f f; g h j k l l; m m; n N n; p p; -r s S s; S; t t; tS -ts ts; v v; w z Z z; -Z; +r s S S; t T t; tS +ts ts; v v; w w2 x z +Z z; Z; Dictionary is_dict diff --git a/dictsource/en_list b/dictsource/en_list index 5385ce3b..cf983894 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -54,6 +54,8 @@ z zEd _cap k,ap@-t@L _?A lEt3 _?? sImb@L +_#9 tab +_#32 speIs _! Ekskl@m'eIS@n _" kwoUts @@ -135,6 +137,7 @@ _0M3 b'Ili@n _0and @n ?3 _0and _dpt pOInt +_roman roUm@n_ // ABBREVIATIONS @@ -187,10 +190,6 @@ u.s ju:'Es wwii dVb@Lju:dVb@Lju:t'u: xy $abbrev -ii tu: $abbrev // roman numerals -iii Tri: $abbrev -iv fo@ $abbrev - nd $only rd $only diff --git a/dictsource/es_list b/dictsource/es_list index 3ed2dadd..618b3a71 100644 --- a/dictsource/es_list +++ b/dictsource/es_list @@ -3,43 +3,45 @@ // numbers -_0 TE*o -_1 'uno -_2 d'os -_3 t@-*'es -_4 kw'at@-*o -_5 T'inko -_6 s'eIs -_7 sj'Ete -_8 'otSo -_9 nw'Eve -_1X dj'ET -_11 'onTe -_12 d'oTe -_13 t@-*'ETe -_14 kat'oRTe -_15 k'inTe -_20 v'eInte -_2X v'eInt -_3X t@-*'eInta -_4X kwa*'Enta -_5X Tinkw'Enta -_6X sEs'Enta -_7X sEt'Enta -_8X otS'Enta -_9X nov'Enta -_0C T'ientos -_1C0 T'ien // exactly one hundred -_1C T'iento -_5C kinj'Entos -_0M1 m'il -_1M1 m'il // no '1' before thousand -_0M2 mil^'ones -_1M2 'unmil^'on -_0M4 _bil^'ones -_1M4 'unbil^'on -_0and i -_dpt koma +_0 TE*o +_1 'uno +_2 d'os +_3 t@-*'es +_4 kw'at@-*o +_5 T'inko +_6 s'eIs +_7 sj'Ete +_8 'otSo +_9 nw'Eve +_1X dj'ET +_11 'onTe +_12 d'oTe +_13 t@-*'ETe +_14 kat'oRTe +_15 k'inTe +_20 v'eInte +_2X v'eInt +_3X t@-*'eInta +_4X kwa*'Enta +_5X Tinkw'Enta +_6X sEs'Enta +_7X sEt'Enta +_8X otS'Enta +_9X nov'Enta +_0C T'ientos +_1C0 T'ien // exactly one hundred +_1C T'iento +_5C kinj'Entos +_7C s,EtETj'Entos +_9C n,ovETj'Entos +_0M1 m'il +_1M1 m'il // no '1' before thousand +_0M2 mil^'ones +_1M2 'unmil^'on +_0M4 _bil^'ones +_1M4 'unbil^'on +_0and i +_dpt koma @@ -101,7 +103,7 @@ os $u+ // possessives -mi $u+ +mi mi $u+ mis $u+ tu $u+ tus $u+ diff --git a/dictsource/es_rules b/dictsource/es_rules index 454c2854..7dcb5855 100644 --- a/dictsource/es_rules +++ b/dictsource/es_rules @@ -1,12 +1,16 @@ -// translation rules +// translation rules for Spanish // This file is UTF-8 encoded +// Conditional rules +// ?1 Castilian +// ?2 Latin America + .group a _) a (_ a a a ai aI - ay aI + ay (K aI ay (_ 'aI @@ -39,7 +43,7 @@ e E e (_ e ei eI - ey eI + ey (K eI ey (_ 'eI _) eu eU @@ -153,7 +157,7 @@ .group v - _) v (_ ve + _) v (_ uve v v _) v v m) v v @@ -161,7 +165,7 @@ .group w - _) w (_ d'oBle,u + _) w (_ ,uve||d'oBle w w diff --git a/dictsource/hr_list b/dictsource/hr_list index 862d98ac..e4bd644a 100644 --- a/dictsource/hr_list +++ b/dictsource/hr_list @@ -155,37 +155,7 @@ _0M4 b'ilijUna _1M4 b'ilijUn _dpt _:z'a*Ez_ -// Roman numerals -ii $abbrev -iii $abbrev -iv $abbrev -vii $abbrev -viii $abbrev -ix $abbrev -xi $abbrev -xii $abbrev -xiii $abbrev -xiv $abbrev -xvi $abbrev -xvii $abbrev -xviii $abbrev -xix $abbrev -xxi $abbrev -xxii $abbrev -xxiii $abbrev -xxiv $abbrev -xxvi $abbrev -xxvii $abbrev -xxviii $abbrev -xxix $abbrev -xxxi $abbrev -xxxii $abbrev -xxxiii $abbrev -xxxiv $abbrev -xxxvi $abbrev -xxxvii $abbrev -xxxviii $abbrev -xxxix $abbrev + // Abbreviations aaa $abbrev diff --git a/dictsource/hu_list b/dictsource/hu_list index 1445a3da..62e2cdd9 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -63,34 +63,7 @@ u.n u:JnEvEzEt: $dot ú.n u:JnEvEzEt: $dot vö v'EZd||_'Yss2E -?1 i EJ $abbrev -ii kEttY: $abbrev -iii ha:R2om $abbrev -iv ne:J $abbrev -vi hAt $abbrev -vii he:t $abbrev -viii n^olts $abbrev -ix kilEnts $abbrev -xi tizEnEJ $abbrev -xii tizEnkEttY: $abbrev -xiii tizEnha:Rom $abbrev -xiv tizEnne:J $abbrev -xv tizEnYt $abbrev -xvi tizEnhAt $abbrev -xvii tizEnhe:t $abbrev -xviii tizEnn^olts $abbrev -xix tizEnkilEnts $abbrev -xx hu:s $abbrev -xxi husonEJ $abbrev -xxii husonkEttY: $abbrev -xxiii husonha:Rom $abbrev -xxiv husonne:J $abbrev -xxv husonYt $abbrev -xxvi husonhAt $abbrev -xxvii husonhe:t $abbrev -xxviii husonn^olts $abbrev -xxix husonkilEnts $abbrev -xxx hARmints $abbrev +?1 i EJ $abbrev // option for Roman number // Articles @@ -135,6 +108,8 @@ noha $u $pause // even thought nem $alt2 $strend ne $u+ +e $u // "-e" question +e $atend // stressed at end of sentence // Unstressed adverbs prepositions etc. néhány $u+ @@ -189,6 +164,8 @@ ről $u on $u // on en $u ön $u +an $u // so many persons +ón $u szor $u // times szer $u ször $u @@ -241,6 +218,9 @@ egyaránt $u // alike minden $u // all részben $u // partly +egyik $u // one of +másik $u // the other + // word pairs @@ -341,5 +321,7 @@ $ dolla:R2 // Main Exceptions List //===================== +nato na:to: + diff --git a/dictsource/hu_rules b/dictsource/hu_rules index dfa3e3e1..e0c55ffc 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -6,14 +6,12 @@ a A _) a (_ %A - !_n) ato a:to: // NATO - .group á á a: .group b b b - bb b: +// bb b: biz (A b'iz, // bizalmas etc. biedermeier bi:dER2ma:jER2 @@ -59,7 +57,7 @@ hierar) ch (i C .group d d d - dd d: +// dd d: dz dz A) dz (A d:z dzs dZ @@ -82,7 +80,6 @@ hierar) ch (i C .group e e E - D_-_) es (_ %ES .group é @@ -97,7 +94,7 @@ hierar) ch (i C .group g g g - gg g: +// gg g: gy J ggy J: @@ -109,7 +106,8 @@ hierar) ch (i C A) gyj (A J: _e) gy (es J: - _e) gy (et J: + _e) gy (et_ J: + _e) gy (etlen J: _e) gy (ik J: _e) gy (üt J: _minde) gy (ik J: @@ -135,6 +133,7 @@ _minde) gy (ik J: .group k k k kk k: + kk (C kk _) köz kYz .group l @@ -186,6 +185,7 @@ szamue) ly lli .group p p p pp p: + pp (C pp p (v p_ _) potsdam potsda:m @@ -199,6 +199,7 @@ szamue) ly lli r R2 rr RR rm R2_m + r (cc R _) richa (rd R2iCa: _) richá (rd R2iCa: @@ -232,6 +233,7 @@ _munká) s S -) t (_ t t t tt t: + tt (C tt ty c // s) ty c: // // z) ty c: // keztyű diff --git a/dictsource/it_list b/dictsource/it_list index 91b0bc4f..5a637575 100644 --- a/dictsource/it_list +++ b/dictsource/it_list @@ -118,8 +118,8 @@ mi $u+ ti $u+ si $u+ ci $u+ -vi $u+ -li $u+ +vi vi $u+ +li li $u+ // words that double the following consonant diff --git a/dictsource/la_list b/dictsource/la_list index ff329ae7..86d87d83 100644 --- a/dictsource/la_list +++ b/dictsource/la_list @@ -259,118 +259,44 @@ estote $u sunto $u -// numerals 1-100 +// numerals + +ii II // word, not numeric +vi wI // word, not numeric i 'u:nUs $capital ii d'UO $capital -iii t@-*,e:s -iv kw'at:UOR -v kw'i:NkwE vi s,Eks $capital -vii s'EptEm -viii 'Okto: -ix n'OwEm -x d'EkEm -xi 'u:ndEkIm -xii dU'OdEkIm -xiii t@-*,e:d'EkIm -xiv kwat:w'ORdEkIm -xv kw,i:nd'EkIm -xvi s'EdEkIm -xvii sEpt'EndEkIm -xviii dUOdEwIg'IntI -xix u:ndEwIg'IntI -xx wi:g'Inti: +_0 n'Ulla +_1 'u:nUs +_2 d'UO +_3 t@-*,e:s +_4 kw'at:UOR +_5 kw'i:NkwE +_6 s,Eks +_7 s'EptEm +_8 'Okto: +_9 n'OwEm +_10 d'EkEm -xxi wi:g'Inti:||'u:nUs -xxii wi:g'Inti:||d'UO -xxiii wi:g'Inti:||t@-*,e:s -xxiv wi:g'Inti:||kw'at:UOR -xxv wi:g'Inti:||kw'i:NkwE -xxvi wi:g'Inti:||s,Eks -xxvii wi:g'Inti:||s'EptEm -xxviii wi:g'Inti:||'Okto: -xxix wi:g'Inti:||n'OwEm -xxx t@-*i:g'Inta: - -xxxi t@-*i:g'Inta:||'u:nUs -xxxii t@-*i:g'Inta:||d'UO -xxxiii t@-*i:g'Inta:||t@-*,e:s -xxxiv t@-*i:g'Inta:||kw'at:UOR -xxxv t@-*i:g'Inta:||kw'i:NkwE -xxxvi t@-*i:g'Inta:||s,Eks -xxxvii t@-*i:g'Inta:||s'EptEm -xxxviii t@-*i:g'Inta:||'Okto: -xxxix t@-*i:g'Inta:||n'OwEm -xl kwad@-*a:g'Inta: - -xli kwad@-*a:g'Inta:||'u:nUs -xlii kwad@-*a:g'Inta:||d'UO -xliii kwad@-*a:g'Inta:||t@-*,e:s -xliv kwad@-*a:g'Inta:||kw'at:UOR -xlv kwad@-*a:g'Inta:||kw'i:NkwE -xlvi kwad@-*a:g'Inta:||s,Eks -xlvii kwad@-*a:g'Inta:||s'EptEm -xlviii kwad@-*a:g'Inta:||'Okto: -xlix kwad@-*a:g'Inta:||n'OwEm -l kwi:Nkwa:g'Inta: - -li kwi:Nkwa:g'Inta:||'u:nUs $capital -lii kwi:Nkwa:g'Inta:||d'UO -liii kwi:Nkwa:g'Inta:||t@-*,e:s -liv kwi:Nkwa:g'Inta:||kw'at:UOR -lv kwi:Nkwa:g'Inta:||kw'i:NkwE -lvi kwi:Nkwa:g'Inta:||s,Eks -lvii kwi:Nkwa:g'Inta:||s'EptEm -lviii kwi:Nkwa:g'Inta:||'Okto: -lix kwi:Nkwa:g'Inta:||n'OwEm -lx sEksa:g'Inta: - -lxi sEksa:g'Inta:||'u:nUs -lxii sEksa:g'Inta:||d'UO -lxiii sEksa:g'Inta:||t@-*,e:s -lxiv sEksa:g'Inta:||kw'at:UOR -lxv sEksa:g'Inta:||kw'i:NkwE -lxvi sEksa:g'Inta:||s,Eks -lxvii sEksa:g'Inta:||s'EptEm -lxviii sEksa:g'Inta:||'Okto: -lxix sEksa:g'Inta:||n'OwEm -lxx sEptUa:g'Inta: $capital - -lxxi sEptUa:g'Inta:||'u:nUs -lxxii sEptUa:g'Inta:||d'UO -lxxiii sEptUa:g'Inta:||t@-*,e:s -lxxiv sEptUa:g'Inta:||kw'at:UOR -lxxv sEptUa:g'Inta:||kw'i:NkwE -lxxvi sEptUa:g'Inta:||s,Eks -lxxvii sEptUa:g'Inta:||s'EptEm -lxxviii sEptUa:g'Inta:||'Okto: -lxxix sEptUa:g'Inta:||n'OwEm -lxxx Okto:g'Inta: - -lxxxi Okto:g'Inta:||'u:nUs -lxxxii Okto:g'Inta:||d'UO -lxxxiii Okto:g'Inta:||t@-*,e:s -lxxxiv Okto:g'Inta:||kw'at:UOR -lxxxv Okto:g'Inta:||kw'i:NkwE -lxxxvi Okto:g'Inta:||s,Eks -lxxxvii Okto:g'Inta:||s'EptEm -lxxxviii Okto:g'Inta:||'Okto: -lxxxix Okto:g'Inta:||n'OwEm -xc no:na:g'Inta: - -xci no:na:g'Inta:||'u:nUs -xcii no:na:g'Inta:||d'UO -xciii no:na:g'Inta:||t@-*,e:s -xciv no:na:g'Inta:||kw'at:UOR -xcv no:na:g'Inta:||kw'i:NkwE -xcvi no:na:g'Inta:||s,Eks -xcvii no:na:g'Inta:||s'EptEm -xcviii no:na:g'Inta:||'Okto: -xcix no:na:g'Inta:||n'OwEm -c k'EntUm - -// This list could be expanded further, however programming -// the pronunciation would be more efficient. +_11 'u:ndEkIm +_12 dU'OdEkIm +_13 t@-*,e:d'EkIm +_14 kwat:w'ORdEkIm +_15 kw,i:nd'EkIm +_16 s'EdEkIm +_17 sEpt'EndEkIm +_18 dUOdEwIg'IntI +_19 u:ndEwIg'IntI +_2X wi:g'Inti: +_3X t@-*i:g'Inta: +_4X kwad@-*a:g'Inta: +_5X kwi:Nkwa:g'Inta: +_6X sEksa:g'Inta: +_7X sEptUa:g'Inta: +_8X Okto:g'Inta: +_9X no:na:g'Inta: +_0C k'EntUm +_0M1 m'IllE diff --git a/dictsource/pt_list b/dictsource/pt_list index 163f1c87..e8ecbf9f 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -28,6 +28,11 @@ _õ ,otS'iU _ú ,u&g'udU _ü ,utR'em& +i i // speak i v x as letters, not Roman numbers +v ve +x Sis# + + _cap maI'uskulU _?A l'etR& _?? s'imbolU @@ -80,23 +85,23 @@ _" 'abRi;'asp&||d'upl&s# // numeric //******** -?1_0 z'Eru -?2_0 z'E*U -?1_1 'um -?2_1 'uN -_2 d'oIs# +?1 _0 z'Eru +?2 _0 z'E*U +?1 _1 'um +?2 _1 'uN + _2 d'oIs# ?1 _3 tr'es# ?2 _3 tR'es# ?1 _4 kw'atru ?2 _4 kw'atRu -_5 s'iNku -_6 s'eIs# -?1_7 s'Ety -?2_7 s'EtSi -_8 'oItu -?1_9 n'Ovy -?2_9 n'Ovi -10 d'Es# + _5 s'iNku + _6 s'eIs# +?1 _7 s'Ety +?2 _7 s'EtSi + _8 'oItu +?1 _9 n'Ovy +?2 _9 n'Ovi + _10 d'Es# ?1_11 'oNzy ?2_11 'oNzi @@ -200,20 +205,15 @@ ue $abbrev unts $abbrev usb $abbrev -// roman numerals -?1 ii d'oIs# $abbrev -?1 iii tr'es# $abbrev -?1 iv kw'atru $abbrev - -dr $dot -dra $dot -mr $dot -mrs $dot -prof pr'Of $dot -sr $dot -?1 sra ,Es;'Errj'a $dot -?2 sra $dot +dr $dot +dra $dot +mr $dot +mrs $dot +prof pr'Of $dot +sr $dot +?1 sra ,Es;'Errj'a $dot +?2 sra $dot // articles o $u+ diff --git a/dictsource/pt_rules b/dictsource/pt_rules index c2502f66..5cbf3129 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -603,7 +603,6 @@ únh ''u~n^ .group v - _) v (_ ve v v v (v @@ -616,7 +615,6 @@ .group x - _) x (_ Sis# x (A S A) x (A ks _e) x (A z diff --git a/dictsource/ro_list b/dictsource/ro_list index 478c0bdc..ecae12c2 100644 --- a/dictsource/ro_list +++ b/dictsource/ro_list @@ -1,5 +1,5 @@ -// Translations for Romanian words + // This file in UTF8 encoded // Letters @@ -43,14 +43,11 @@ x iks y 'igrek z zet +â ,ydin'a $atend +ă '@ $atend +î ,ydin'i $atend _. punkt -$ dolar -+ plus -& ampersand -@ a*'ond -/ sleS -€ 'eU*o // numeric @@ -131,45 +128,56 @@ _0Z3 m'iImi // Abbreviations //************** + etc ettS'ete*a s.a Si'aSa ş.a. Si'aSa s.a.m.d Se|aSamaIdeparte ş.a.m.d Se|aSamaIdeparte - +b-dul buleva*dul // articles un $u o $u nişte $u1 -una $u1+ -unul $u1+ -unuia $u1+ -uneia $u1+ +una $u1+ +unul $u1+ +unuia $u1+ +uneia $u1+ unui $u1 unei $u1 unor $u1 -unora $u1+ +unora $u1+ unele $u1 // some -ăsta $u1+ // this -asta $u+ +anumite $u3 +anumitor $u3 + +ăsta $u1+ // this +asta $u+ +ăsteia $u1+ acest $u+ // this -aceşti $u -aceştia $u +aceşti $u +aceştia $u +acestor $u2+ acestora $u2+ + +acestuia $u2+ +acesteia $u2+ aceasta $u+ această $u+ acel $u+ // that -acea $u+ // that +acea $u2+ // that acei $u+ // those acele $u2+ // those - +acelor $u2 +acelora $u2+ cei $u+ // the, those cel $u+ // that, he who cea $u+ // that, she who cele $u1+ // those +aceleaşi $2 ăia $u1+ ălora $u1+ @@ -183,6 +191,13 @@ noi $u+ voi $u+ ele jele $u+ + + +dumneavoastră $u3+ +voastră $u1+ +dumneata $u3+ +matale $u2+ + mă $u te $u îl $u @@ -195,24 +210,30 @@ se $u îmi $u îţi $u ţi $u +ţie ts'je $u mi $u şi $u -însuşi $u1+ -ânsăşi $u1+ -însumi $u1+ -nimeni $u1+ -nimănui $u3+ +însuşi $u1+ +însăşi $u1+ +însumi $u1+ +însuţi $u1+ +nimeni $u1+ +nimănui nim@n'uI care $u1 $brk // who that which what + +căror $u1 +cărora $u1 ceea $u $brk // that + +aceeaşi $2 căruia $u1 căreia $u1 cărora $u1 -ăltora $u1+ - - +altora $u1+ +ăstora $u1+ // possessive adjectives meu $u+ @@ -250,7 +271,8 @@ ale $u $brk in $u $brk în $u $brk pe $u $brk -ce $u $brk +că $u +ce $u la $u $brk de $u (de la) dela $u @@ -261,6 +283,7 @@ fără f,@r@ $pause // without fara f,@r@ $pause // (fără) lângă $brk // beside prin $brk // through +alături $2 $brk // beside după $brk // after, behind dupa dup@ $brk // (după) dintre $brk // between @@ -276,24 +299,25 @@ către k'@t@-*e $brk // towards // conjunctions // şi $u $pause // and iar $pause // and, again +iarăşi $1 $pause sau $u $pause // or ori $u $pause // or dar $u $pause // but -deoarece $pause // because +deoarece deOaretS'e $pause // because dacă $u $pause // if daca dak@ $u $pause // (dacă) când $u $pause // when cum $pause // how, as, since -astfel $pause // thus +astfel $1 $pause // thus deşi $2 $pause // although -fie fie $u // either +fie f'ie $u // either însă $pause // but, yet, however atunci $pause // therefore (de atunci) d%e||at'untSI^ $pause // since then nici $pause // neither deci $pause // therefore, so that fiindcă $pause // because, since, as -fiind $pause +fiind fi'ind $pause // negative @@ -303,11 +327,35 @@ nu $u+ // some common adjectives and adverbs -aşa $2 $brk // so, thus -orice $u3+ // any -totuşi $1 $brk // never, though, nevertheless -totusi $1 $brk // (totuşi) -unde $brk // where +adică $2 $brk +aşa $2 $brk // so, thus +altfel $1 $brk //otherwise +atâţia at'ytsja +abia abj'a +celelalte $u3+ +celălalt $u3+ +încotro $3 +mai $u +orice o*I^tS,e $u3 // any +oricine o*I^tS,ine $u3+ +oricare o*I^k,a*e $u+ +oricărui o*I^k@rui $u3+ +oricăruia o*I^k@ruia $u3+ +oricărei o*I^k@rei $u3+ +oricăreia o*I^k@reia $u3+ +oricui o*I^kuI $u3+ +câţiva kytsI^v'a $u2+ +cîţiva kytsI^v'a $u2+ +oricând o*I^k,ynd $u+ +oricât o*I^k,yt $u+ +oricum o*I^k,um $u+ +rareori ra*e'o*;I^ +totuşi $1 $brk // never, though, nevertheless +multor $u1 +multora $u1+ +tocmai $u1 // just +totusi $1 $brk // (totuşi) +unde $brk // where // auxillary verbs (be, have, can, etc) @@ -321,6 +369,7 @@ suntem $u1+ sunteţi $u1+ sunt $u+ e je $u +e e $atend fost $u+ // been eram je*am $u2+ // was erai je*aI $u2+ @@ -328,7 +377,7 @@ era je*a $u2+ eraţi je*ats;I^ $u2+ erau je*aU $u2+ -avea ave|a $u3+ // to have +avea $u2+ // to have as $u+ $verbf ai $u+ $verbf ar $u+ $verbf @@ -357,266 +406,552 @@ poate $u+ $verbf putem $u+ $verbf puteţi $u+ $verbf -trebui t@-*ebw'i // to have to -trebuie $2 // @- +trebui t@-*ebw'i // to have to + // Final "i" is stressed -absolvi $3 +absolvi $4 +adăposti $4 afurisi $4 agonisi $4 +amăgi $3 ameţi $3 amuţi $3 + +aţinti $3 blagoslovi $4 boţi $2 buşi $2 călăuzi $4 căptuşi $3 + +căsăpi $3 cârmi $2 -căzni $2 +căzni $2 catadicsi $4 cerşi $2 citi $2 cloci $2 +cuceri $3 +cutremura $4 cuveni $3 dărui d@*w'i deosebi $3 depăşi $3 descoperi $4 +deservi $3 desluşi $3 deveni $3 -dormi $2 +dovedi $3 +domoli $3 +duhni $2 +făgăduui f@g@du'i feri $2 -fugi $2 gândi $2 găsi $2 +goni $2 grăbi $4 greşi $2 hăcui $3 + +hohoti $3 îmbâcsi $3 +îmbunătăţi $5 împărţi $3 +împlini $3 încălzi $3 încreţi $3 +îndeplini $4 +îndrăzni $3 +înghionti $3 înghiţi $3 îngriji $3 - -înroşi $3 +înlocui ynloku'i +înşela $3 +înregistra $4 +înroşi $3 întâlni $3 înteţi $3 învârti $3 învrednici $4 + +ivi $2 +izbuti $3 izbi $2 +izgoni $3 linguşi $3 -lipi $2 +lipi $2 lovi $2 mânji $2 mirosi $3 moleşi $3 +muri mur'i -muri mur'i necăji $3 -oferi $3 +numi $2 +ocroti $3 +odihni $3 +oferi $3 opri $2 + pândi $2 păşi $2 -părăsi $3 - +părăsi $3 păzi $2 +păţi $2 plăti $2 -povesti $3 +povesti $3 $only +potrivi $3 prăbuşi $3 prăji $2 - +preveni $3 primi $2 +porni $2 -porni $2 răci $2 râfni $2 - -rânji $2 +rânji $2 răguşi $3 răscoli $3 răspândi $3 răsuci $3 -risipi $3 - -rosti $2 +rătăci $3 +regăsi $3 +reîntâlni $4 +reuşi $3 +reveni $3 +risipi $3 +rosti $2 rostogoli $4 rotunji $3 săvârşi $3 sclifosi $3 +scuti $2 +servi $2 sfârşi $2 sfriji $2 slobozi $3 +sluji $2 +sosi $2 +supravieţui supravjetsu'i +stârni $3 +strivi $2 +stropşi $2 suci $2 + ticsi $2 trezi $2 + +urni $2 ursi $2 urzi $2 + +veni $2 veşteji $3 vrăji $2 -vorbi $2 - +vieţui vjetsu'i +vorbi $2 +zădărnii $4 // final "a" or "ea" is stressed(verbs) + +îneca $3 înroşi $3 învărtejea $4 învărtea $3 învolbura $4 +aduna $3 +afla afl'a +accelera $4 +abona $3 +acumula $4 +adera $3 +afirma $3 agita $3 +aglomera $4 + apărea $3 +aprecia ap@-*etSj'a +apropia ap@-*opi'a amuţea $3 asculta $3 +asigura $4 aştepta $3 agonisea $2 agrea ag@-*e'a ajuta $3 +alătura $4 alerga $3 +ameninţa $3 +anunţa $3 apăra $3 -ataca $2 +apela $3 +ataca $3 +atârna $3 băga $2 +blestema $3 +bloca $3 +bucura $3 +calcula $3 +cădea $2 călăuzea $4 călca $2 cânta $2 +câştiga $3 căsca $2 + +căşuna $3 +căsători $4 căuta $2 +ceda $2 cerşea $2 -continua kontinu'a +chema $2 +clasifica $4 +clinti $2 +clipi $2 +cobora $3 +colecta $3 +comenta $3 +comunica $4 +concentra $3 +concretiza $4 +concura $3 +conecta $3 +confunda $3 +constata $3 +conta $2 +continua kontinw'a conţinea $3 +coordona $4 +costa kost'a crea k@-*e'a credea $3 -creştea $2 +creştea $2 +cutreiera $4 +dansa $2 dădea $2 - -depăsea $3 +debuta $3 +demonstra $3 +depăşea $3 +desemna $3 +deţinea $3 +derula $3 +decelera $4 +deconecta $4 +dedica $3 +degenera $4 +degera $3 +delecta $3 +delibera $4 depista $3 -desfunda $2 +desconsidera $5 +descurca $3 +desfunda $3 + +desprindea $3 +determina $4 +digera $3 +discuta $3 +dispera $3 distra $2 dorea $2 dormea $2 + +duhnea $2 +echilibra $4 +reechilibra $5 +efectua efektw'a +eficientiza $5 +elibera $4 +elimina $4 +enumera $4 +evita $3 +evoca $3 +evolua evolw'a +etala $3 +exagera $4 +exaspera $4 +executa $4 +experimenta $5 +explica $3 +facilita $4 făcea $2 ferea $2 +fluiera $3 + +folosea $3 +fredona $3 +fremăta $3 fugea $2 -furişa $2 +fulgera $3 +furişa $3 gândea $2 +gâdila $3 +genera $3 +germina $3 +gonea $2 hăcuia $3 îmbâcsea $3 +îngreuna $4 împărţea $3 -încalzea $3 +încarcera $4 +încarna $3 +încăiera $4 +îndurera $4 +înfiera $3 +însera $3 +încălzea $3 încărca $3 încerca $3 închega $2 încreţea $3 înfăşura $4 -înfunda $2 -întâmpla $3 +înfunda $3 + +înghiontea $3 + +întâmpina $4 +ieşea $2 +insera $3 interesa $4 -înteţea $2 +interfera $4 +iubea $2 +îmbulzea $3 +împuşca $3 +încurca $3 +îngrozi $3 +întâmpla $3 înteţea $3 +incinera $4 intra $2 +înainta $3 +înălţa $3 întreba $3 învârtea $3 învingea $2 -invita $2 +invita $3 juca $2 lăsa $2 +legifera $4 lingea $2 mânca $2 mângâia $3 -memora $2 +mărturisea $4 +memora $3 mergea $2 merita $3 - +mira $2 +mişuna $3 +modera $3 +modifica $4 murea $2 +murmura $3 +numea $2 negocia negotSi'a +nimerea $3 +observa $3 +ocupa $3 oferea $3 paraliza $4 +participa $4 părea $2 - -palea pale'a +păstra $2 +păcăli $3 +pălea pale'a +păsa $2 păzea $2 +permitea $3 +persevera $4 +plăcea $2 pleca $2 pornea $2 -povestea $2 +potrivea $3 +preda $2 +prefera $3 prepara $3 prelungea $3 +prezenta $3 +producea $3 +promova $3 +pronunţa $3 +prospera $3 +protesta $3 +provoca $3 +purta $2 răbda $2 răcea $2 rămânea $3 răscolea $3 -răsucea $2 +răsturna $3 +răsucea $3 + +râdea $2 +realiza $4 +recupera $4 +referea $3 +regenera $4 +regiza $3 +relaxa $3 +releva $3 +renunţa $3 repara $3 repera $3 +repeta $3 +respecta $3 respira $3 reuşea $3 revenea $2 +reverbera $4 +ridica $3 +risca $2 rostea $2 +salva $2 săpa $2 sărea $2 +sângera $3 +scăpa $2 +schimba $2 +scutura $3 semăna $3 +semna $2 scotea $2 sfărâma $3 - +sfârteca $3 +specializa $4 +spulbera $3 sosea $2 spăla $2 spera $2 -stăpânea $2 + +spumega $4 +stagna stagn'a +stăpânea $3 + +stârnea $2 stătea $2 + +stoca $2 +străfulgera $4 strica $2 sucea $2 +sugea $2 +sugera $3 suda $2 supăra $3 +şuiera $3 +tempera $3 +termina $3 +tolera $3 +topi $2 +transfera $4 trăgea $2 trezea $2 +triumfa $3 +târa $2 +ţinea $2 +uita $2 +urca $2 +urla $2 +utiliza $4 valora $3 vâna $2 vedea $2 +venera $3 +visa $2 vira $2 + +vizualiza $4 +vocifera $4 vorbea $2 +vota $2 +zăcea $2 +zbiera $2 zbura $2 +zgâria $3 // hyphenated contractions (să l) s@l $u (să i) s@I $u (să şi) s@S;I^ $u +(s ar) sar $u +(s or) sor $u (care l) karel $u (să mi) s@m;I^ $u (te am) team $u (te ai) teaj $u +(ţi am) tsjam $u +(ţi ar) tsjar $u +(ţi au) tsjaU $u +(ţi ai) tsjaI $u +(ţi e) ts'je $u +(ţi am) tsjam $u +(ţi ar) tsjar $u +(ţi oi) tsjoj $u (ne am) neam $u (n o) no $u -(n aS) naS $u +(n aş) naS $u (n a) na $u -(c o) co $u +(c o) ko $u + +(c ar) kar $u (l a) la $u (l au) laU $u (l am) lam $u (l aţi) lats;I^ $u +(l ai) laI $u +(l or) lor $u +(le a) lea $u +(le am) leam $u +(le ai) leaj $u +(le aţi) leatsI^ $u +(le ar) lear $u +(n or) nor $u +(m or) mor $u +(l ar) lar $u (v aţi) vats;I^ $u (v au) vaU $u (v am) vam $u + +(m ar) mar $u +(te ar) tear $u +(v ar) var $u +(ne ar) near $u +(i ar) jar $u +(m aS) maS $u +(te aş) teaS $u +(l aş) laS $u +(v aş) vaS $u +(ne aş) neas $u +(i aş) iaS $u +(şi a) SI^a $u (s o) so $u +(mi e) mi,e $u (nu i) nui $u (i am) jam $u (a şi) aS;I^ $u +(a ţi) atsI^ $u (într o) ynt@-*o (dintr o) dint@-ro +(de a) dea $u +(le a) lea $u +(n or) nor $u // MAIN WORD DICTIONARY //********************* @@ -626,287 +961,884 @@ zbura $2 abil $2 abzice $2 acelaş $2 +aci atS'i +acopăr $2 +acritu $3 +acupunctu $4 +adâncătu $4 +adâncitu $4 +adevărul $3 +admirăm $3 +adu ad'u +aducem $2 +aduceţi $2 +adunătu $4 +adus ad'us adventice $3 +aer 'aIer +afli afli africa $1 africii $1 - -aer aIer +afumatu $4 +agentu $3 +agricultu $4 +ahaa ah'a +aha ah'a aici a'itSI^ - +ajungem $2 +ajungeţi $2 +alaltăieri $2 +alăturăm $4 +albăstruie $3 +albert $1 +albitu $3 alegem $2 alegeţi $2 +alergătu $4 +alex $1 +alintătu $4 altceva $3 - +altcineva $4 altcuiva $3 altcumva $3 -amic $2 -amici $2 -amice $2 -amicii $2 -amicul $2 -amicului $2 -amicilor $2 -amicelor $2 -inamic $3 -inamicul $3 -inamicului $3 -inamicilor $3 -america $2 +alunecătu $4 +amăruie $3 +ameninţă $2 +america $2 americii $2 americile $2 +amestec $2 +amestecătu $5 +amic $2 +amice $2 +amici $2 +amicii $2 +amicilor $2 +andrei $2 apoi $2 - aprig $1 aprige $1 aprigi $1 +apucătu $4 +apus ap'us +arăt ar'@t +ardem $1 +ardeţi $1 +arhitectu $4 +arip $1 +aripi $1 +armu $2 +arsu $2 artefice $3 +artera $2 +arteră $2 +aruncătu $4 asemenea $2 -adu $1 +asigur $2 +astăzi $1 +ating $2 +aud a'ud +aude a'ude +aur 'aur +austria a'ustrja +aventu $3 +avicultu $4 +avocatu $4 +bacterie $2 +bacteriei $2 +bacterii $2 +badjocu $3 +balint $1 +barman $1 +bătătu $3 +batem $1 +bateţi $1 +băutu $3 +belgia $1 biseric $2 +bivol $1 +bivoli $1 +bombăne $1 +borătu $3 +bordei $2 +broşu $2 +bubuitu $4 +bucur $1 +bucurăm $3 +bufnitu $3 +cădere $2 +căderea $2 +căderii $2 +căderile $2 +căderilor $2 +cafea $2 +călcâie $2 +călcătu $3 +căldu $2 +cămăruie $3 +canapea $3 +candidatu $4 +cândva $2 +cânepă $1 +cântec $1 +cântece $1 +capăt $1 capete $1 capitol $2 +captu $2 +caractere $3 +caracterele $3 +caracterelelor $3 +cărăruie $4 careva $3 -cândva $2 +caricatu $4 +cârpitu $3 +cartele $2 câteva $3 câtorva $3 +câtuşi $1 +căutăm k@ut'@m +căutare k@ut'a*e +căutătu k@ut@t'u +cauţi k'autsI^ +caut k'aut +căzătu $3 +centu $2 +cenzu $2 cerbice $2 +cetăţuie $3 ceva $2 -cicatrice $3 -cineva $3 +chelălăitu $5 +chelner $1 +cherestea $3 +chestor $1 chimi $alt chimic $1 +cicatrice $3 +cinema $1 +cineva $3 +civile $2 +clănţăne $1 +clatin $1 +claviatu $3 +clocot $1 +clocote $1 +cocin $1 +cocine $1 +cocos $1 +colaborăm $4 +color kol'o* +comparăm $3 complice $2 -contrazice $3 -consideră $3 -creier $1 +compus komp'us +concurăm $3 +condei $2 +conducem $2 +conduceţi $2 +conductor $2 +consider $2 +consum $2 +continuă $2 +contrazice $3 +conving $2 +corectu $3 +cosmos $1 +costum $2 +crâncen $1 +crâncene $1 +crânceni $1 +crăpătu $3 +crater $1 +cratere $1 +cratim $1 +cratime $1 +creatu $3 credem $1 credeţi $1 -crivăt $1 -crivătul $1 -crivătului $1 - +creier $1 +creştem $1 +creşteţi $1 +crivăţ $1 +cuget $1 +cugeţi $1 +cuib k'uIb cuiva $2 - +cultu $2 +cumpărăm $3 cumva $2 -dădu $2 +cunoaştem $2 +cunoaşteţi $2 +cutremură $2 + +dambla $2 +dantu $2 +dărâmătu $4 +dărăt $2 +david $1 +dedus ded'us +degeratu $4 deget $1 -degetul $1 -degetele $1 -degetului $1 -degetelor $1 +degete $1 deja $2 denzic $2 denzice $2 -deoarece $4 +depozit $2 +depozite $2 +deschidem $2 +deschideţi $2 +deschizătu $4 +descompus deskomp'us +descopăr $2 +desfacem $2 +desfaceţi $2 +desigur $2 +desktop $1 destul $2 +dezordine $2 +diavol $1 +diavoli $1 +dinăuntru din@'unt@-*u dincolo $1 +dinînăuntrul dinyn@'unt@-*ul director $2 -dori $2 +dispus disp'us +distingem $2 +distingeţi $2 +distrăm $2 +distrus dist@-*'us doctor $1 +doctore $1 +doina doIna +domină $1 +domine $1 +dori $2 +dradus t@-*ad'us +dragoş $1 +dragoste $1 +ducem $1 +duceţi $1 +duium $2 +duminica $2 +durere $2 +durerea $2 +dureri $2 +durerii $2 +durerilor $2 +echilibrăm $4 edit $1 +efeme $3 egale $2 -energi $alt elice $2 - -expedia $3 +elimină $2 +energii $alt +enter ent@r $1 +episcop $2 +epoc $1 +epoci $1 +examen $2 +exclus exkl'us +exe ekse exista $3 +expedia $3 +explică $2 +explice $2 +expus exp'us -factice $2 facem $1 faceţi $1 -făcu $2 - +factice $2 +factor $1 +factori $1 +factu $2 +fasole $2 +febrile $2 +felix $1 +femei $2 fenicşi $1 fenix $1 +ferestruie $3 ferice $1 +fiertu $2 +figu $2 +fili $2 filozofi $alt filozofii $4 fizic $1 -fizicul $1 +flăcăra $1 +flăcări $1 +flăcării $1 +flăcăruie $3 +flamură $1 +fluier $1 +fluiere $1 folosi $3 -fiind fi'ind +forfotă $1 +fotbal $1 +fractu $2 +fraged $1 +fragede $1 +frântu $2 +frigăruie $3 +friptu $2 +frizu $2 +fulger $1 +fulgere $1 +fumeg $1 -gastronomi $alt +gâdilă $1 gâgâlice $3 +galben $1 +galbene $1 +galbeni $1 +galbenii $1 +gălbui $2 +gale $2 +garnitu $3 +gastronomi $alt găurice $2 +geamăn $1 +geamandu $3 +geamăt $1 +gemeni $1 +gemete $1 ghilimele $3 gimnastic $2 gimnaziu dZimn'azju +gizor $1 +gizori $1 +glazu $2 +gravu $2 +guler $1 +gulere $1 +gutuie $2 +hahale $3 +haidem $1 +haideţi $1 +hime $2 +hindus ind'us +hohot $1 +hohote $1 +hoit h'oIt +hurducătu $4 + +idile $2 +ieftin $1 +ieftine $1 +iisus $2 imagin $2 +imagini $2 +îmbucătu $4 +împuşcătu $4 +înaintea yna'intea înainte yna'inte - -întotdeauna yntotdea'una +inamic $3 +inamice $3 +inamicilor $3 +înăuntrul yn@'unt@-*ul +înăuntru yn@'unt@-*u încăpere $3 încăperea $3 -încăperile $3 încăperii $3 +încăperile $3 încăperilor $3 -legături $3 -legăturile $3 - -legăturilor $3 -înjurătură $4 -înjurături $4 -înjurăturile $4 +încărcătu $4 +începem $2 +începem $2 +începeţi $2 +începeţi $2 +încheietu $4 +încingem $2 +încingeţi $2 +inclus incl'us +încrengătu $4 +încruntătu $4 +încuie $2 +incultu $3 +încurcătu $4 +îndărăt $3 +indic $2 +îndoitu $4 +înfăşurătu $5 +înfloritu $4 +infrastructu $4 +înfundătu $4 +înghiţitu $4 +ingine $3 +îngrăditu $4 +inima $1 +inimă $1 +inimi $1 +inimii $1 +înjurătu $4 +înpunsătu $4 +inspector $2 +instructor $2 +întâmpină $2 +întăritu $4 +înţelegem $3 +înţelegeţi $3 +înţepătu $4 +interpus inte@-*p'us interzice $3 +intim $1 +intime $1 +întorsătu $4 +întotdeauna yntotdea'una +intrăm $2 +întredeschizătu $6 +intriga $1 +intrigă $1 +intrigi $1 +introdus introd'us +învătătu $4 +invers $1 +istambul $3 +izbitu $3 +lacom $1 +lacomi $1 +lacrim $1 +lacrimi $1 +lagăr $1 +lagăre $1 +laser $1 latice $2 +latură $1 +lazăr $1 +lefter $1 +legătu $3 +liber $1 +lider $1 +lideri $1 limit $1 - -lipsi $2 +limite $1 +limpede $1 +lingură $1 +lipsi $2 +literatu $4 logic $1 +lovitu $3 +lucrătu $3 +maculatu $4 +magistratu $4 +manager m'enedZ@r +manager menedZ@r +mâneci $1 +manta $2 +margini $1 +marginii $1 +mării $1 +maritim $2 +marius $1 +martor $1 +martore $1 +martori $1 +măsu $2 matrice $2 +mătură $1 +măturătu $4 maxim $1 -maximum $1 - +menaje $3 mergem $1 mergeţi $1 merit $1 +mesageră$2 +mesagera $3 +metafor $2 +metafore $2 +metaforic $3 mia m'ia +micul $1 mie m'ie -minim $1 -minimum $1 -murdărie murd@*'ie -muzik $1 -mării $1 -mijloc $1 mijloace $1 -mijlocul $1 -mijlocului $1 -mijloacele $1 -mijloacelor $1 -minus $1 +mijloc $1 +minim $1 mişto $2 +mişuna $1 +moisei moIs'eI +molim $1 +molime $1 +moscova $1 +muget $1 +mugete $1 +mugur $1 +murdărie murd@*'ie +murmură $1 +muzica $1 +muzik $1 +neted $1 +netede $1 +netezi $1 +nevăstuie $3 +nevoi nev'oI +nicicum nitSI^k'um +nicidecum nitSI^dek'um nimic $2 +nistor $1 +nivele $2 novice $2 numai $1 // only număr $1 -numărul $1 +numărătu $4 oameni $1 - oamenii $1 -oamenilor $1 oareşice oa*eStSe $4 -obişnuit obiSnw'it +oaspete $1 +oaspeţi $1 +obicei $3 +obiceiu $3 ocol $2 - -omăt $2 +oferă $2 +ofere $2 +ok ok'eI +omăt om'@t +operăm $3 +optim $1 ordin $1 - -ordinul $1 -ordinului $1 -ordinelor $1 -ordinele $1 -dezordine $2 -orice o*I^tSe $2 -oricare o*I^ka*e $3 -oricând o*I^kynd $3 +ordine $1 +oscar $1 ovidiu ov'idju +pacoste $1 +păcur $1 +pădu $2 +pădurice $3 pagin $1 -parodi pa*od'i +pagub $1 +pagube $1 +palid $1 +palide $1 +palizi $1 +pântec $1 +pântece $1 +pantera $2 +panteră $2 +părere $2 +părerea $2 +păreri $2 +părerii $2 +parfum $2 parodii $3 -plânger $1 +parodi pa*od'i +partene $3 +partener $3 +partenere $3 +partenerei $3 +partenerele $3 +partenerelor $3 +parteneri $3 +partenerii $3 +partenerilor $3 +partenerul $3 +partenerului $3 +părticică $3 +pasageri $3 +pasagerii $3 +pasagerilor $3 +pasăre $1 +păsări $1 +păsăruie $3 +păstrăm $2 +păstrăv $1 +patim $1 +patimi $1 +pătu $1 +pătură $1 +pepene $1 +pepeni $1 +perdea $2 +permitem $2 +permiteţi $2 +picătu $3 +pictor $1 +pictori $1 +pictorii $1 +pieptănătu $4 +pierdem $1 +pierdeţi $1 +pişcătu $3 +pisic $1 +pisica $2 +pisică $2 +pisici $2 +pistoale $2 +pitic $2 +pitici $2 plăcere $2 plăceri $2 -plăcerilor $2 -polonic $3 -polonicul $3 +plânger $1 +pocnitu $3 +podea $2 politic $2 - +polonic $3 +popice $2 +pote $2 +prăjitu $3 +predispus p@-*edisp'us +prefacem $2 +prefaceţi $2 +preling $2 pretutindeni $3 +pricepem $2 +pricepeţi $2 pricin $1 -prieten $2 prietenie p@-*jeten'ie +prieten p@-*j'eten +prietenului p@-*j'etenuluI privi $3 -propice $2 -protocol $4 +proaspeţi $1 +procedu $3 +produs p*od'us +profesor $2 +profesori $2 +profesorii $2 promitem $2 promiteţi $2 +propice $2 +propui $2 +propus prop'us +protocol $4 +punem $1 +puneţi $1 putere $2 -puteri $2 puterea $2 +puteri $2 puterii $2 -puterilor $2 răcnet $1 -răcnete $1 -răcnetelor $1 -regul $1 +răcnete $1 +radar $1 +răget $1 +răgete $1 +rămânem $2 +rămâneţi $2 +rânjet $1 +rânjete $1 +răpus r@p'us +râset $1 +râsete $1 +răsputeri $3 +recepţione $4 +reci $1 +regizor $2 +regul $1 reguli $1 repede $1 repezi $1 -români rom'ynI^ +rest $1 +restu $1 +reţinem $2 +reţineţi $2 +ridic $2 +ridică $2 +ridice $2 +robert $1 rotocol $3 +sadea $2 sadic $1 -scrieri $1 -scrierile $1 -scrierilor $1 -sâmbătă $1 -securice $3 +saltea $2 +sâmbăta $1 +sarcin $1 +sarcini $1 +scădere $2 +scăderea $2 +scăderii $2 +scăderile $2 +scăderilor $2 +scoatem $1 +scoateţi $1 +scrâşnet $1 +scrâşnete $1 +scutură $1 secol $1 -secolul $1 -secolele $1 -secolului $1 -secolelor $1 +secole $1 +secu $2 +securice $3 +sedus sed'us +semiprodus semip*od'us +şenile $2 sergiu s'ergju +servicii $2 +serviciile $2 +serviciile $2 +serviciilor $2 +serviciul $2 +serviciului $2 +serviciu serv'itS'ju sigur $1 simbolic $2 - +sincer $1 singur $1 +singure $1 +şmecher $1 +şniţel $1 +şoarece $1 +şoareci $1 +şoferi $2 +şoferilor $2 şosea $2 +spaniole spani'ole spaţiu spatsju +sperăm $2 +spirit $1 +spirite $1 +sprijin $1 +spunea $2 +spunem $1 spuneţi sp'unetsI^ +standard $1 +standarde $1 +staroste $1 +statuie $2 +ştergem $1 +ştergeţi $1 +ştie St'ie +strângem $1 +strângeţi $1 +strecurăm $3 +strigăt $1 +strigăte $1 +structu $2 +şubred $1 +şubrede $1 +sufăr $1 +suflet $1 +suflete $1 +şuier $1 +sunet $1 +sunete $1 +super $1 +suprapus sup@-*ap'us +supus sup'us +surplus su*pl'us +suspus susp'us +susţinem $2 +susţineţi $2 -tanti tanti - +tabache $3 +tăcere $2 +tăcerea $2 +tăceri $2 +tăcerii $2 +tânăr $1 +ţandăra $1 +ţăndări $1 +tango $2 +tanti tanti +ţanţoş $1 târcol $2 +tării $1 târziu tyrz'iu +tastatu $3 +tatăl $1 +ţeapăn $1 +tejghea $2 +ţelină $1 +temem $1 +temeţi $1 +tenis $1 terapi $alt terapii $3 -trecu $2 +termen $1 +termeni $1 +ţinem $1 +ţineţi $1 +ţipete $1 +totdeauna totdea'una +tovarăş $2 +tovarăşi $2 +tradus trad'us +tragem $1 +trageţi $1 +trăsătu $3 +trebuia $3 trecem $1 treceţi $1 -trebuie $1 -trebuia $3 - +trecu $2 +tremură $1 +trosnet $1 +trosnete $1 +tudor $1 +tunet $1 +tunete $1 +turele $2 +ucidem $2 +ucideţi $2 +uitătu $3 +ulei $2 ultim $1 - -ultimul $1 -ultimele $1 +ultime $1 umăr $1 -umărul $1 +umed $1 +umede $1 +umezi $1 +umflătu $3 undeva $3 +urăm $2 +urătu $3 +urlet $1 +urlete $1 +urzicătu $4 +uscătu $3 +usturătu $4 +văduvă $1 +văduve $1 +văietătu $4 +vâlvătăi $3 +vărsătu $3 +vărul $1 +vasile $2 +vătămătu $4 veder $2 +vedere $2 +vederi $2 vehicul $2 -vehiculul $2 -vehicului $2 vehicule $2 -vehiculelor $2 - -vineri $1 +victim $1 +victime $1 +victor $1 +vie v'ie +viitu $2 +vindem $1 +vindeţi $1 vinovăţi $alt vinovăţii $4 virgulă $1 -virus $1 +vis-a-vis vizav'i +viscol $1 +vitreg $1 +vitrege $1 +vitregi $1 +vizavi $3 +vizită $1 +volum vol'um +vopsea $2 +vuiet $1 +vuiete $1 +vultur $1 +vulturi $1 +vulturii $1 +zâmbet $1 +zâmbete $1 zarzări $1 +zburăm $2 +zdravăn $1 +zdrelitu $3 +zdruncinătu $4 +zgârietu $4 +zgomot $1 +zgomote $1 +ziua z'iw2a -// speak as letter names -a a $atend -â ,ydin'a $atend -ă '@ $atend -e e $atend -î ,ydin'i $atend -o o $atend diff --git a/dictsource/ro_rules b/dictsource/ro_rules index d56fd484..785c16f1 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -1,8 +1,10 @@ + // translation rules for Romanian // This file is UTF-8 encoded + .group a a a ai aI @@ -11,52 +13,58 @@ au (_ 'aU a (AAA a &) a (_S1q a + gi) a (_S1q 'a - V@) a (_ 'a + V@) a (N_ 'a ăi) a (_ 'a @) abil (_ 'abil _) anti (@P4 anti @) ale (_ 'ale + @ion) a (_ 'a + .group ă ă @ - ăi @I + ăi (_ @I ău @U // ?? only at end of word ?? - ău (_ @U - - ăi (m_ @'i - ăi (t_ @'i - ăi (ţi_ @'i - - - ăi (te @'i - ăi (n_ @'i - ăi (na_ @'i - ăi (ni_ @'i - ăi (ne_ @'i + ău (_ '@U + @) ăte (_S3t @te + @) ătă (_S3t @t@ + @) ătul (_S4t @tul + @) ătele (_S5t @tele + @) ătului (_S6t @tuluI + @) ătelor (_S6t @telor &) ă (_S1 @ + &ec) ă (_ @ + @ăC) ă (_ @ + @er) ă (_ @ + @iţ) ă (_ @ + @) ă (Că_ =@ ări (A_ @*'i ării (_ @*'iI ări (AA_ @*'i - @) ăt (_S2t @t - @) ătă (_S3t @t@ - @) ătul (_S4t @tul - @) ătele (_S5t @tele - @) ătului (_S6t @tuluI - @) ătelor (_S6t @telor + @) ăie (_ =@Ie .group â â y âi yI âu yU + @) âie (_ =yIe .group b b b - @) b (i_ b; + bb b + @) b (i_ b; @) b (il_ =b + @) b (ila_ =b + @) b (ili_ =b + @) b (ilii_ =b + @) b (ilului_ =b + @) b (ililor_ =b + @) b (ilile_ =b mo) bil (_ b'il @@ -70,55 +78,70 @@ @@) col (_ =kol @@) coli (_S1t =I^ @@) cole (_S1t e - - @) cni (_ kn'i @) cnea (_ kne'a .group d d d + dd d @) d (i_ d; .group e e e - ei eI -// eu eU // only at end of word ?? -// eu e[u // ?? + _) ei eI + ei (_ eI +// eu eU // only at end of word ?? +// eu e[u // ?? eu (_ 'eU ea ea &) ea (_S2q ea &) eSi eaj eau eaw - eo eo - eoa eO'a - e (AAA e + @) eş (_ =eS + + @) eşul (_ =eSul + @) eşi (_ =eSI^ + @) eşului (_ =eSuluI + @) eşilor (_ =eSilor + + @) ec (a_ =ek + @) ec (ă_ =ek + @) ec (ii_ =ek + @) ec (ile_ =ek + @) ec (ilor_ =ek + @At) ec (i@_ etS + @At) ec (A_ ek + @At) ec (ii_ eTtS +// &) es (_S1q e &C) e (re_ %e + _ac) ee (a eI + + r) ei (er_ 'eI + @) e (re_ =e @) e (ri_ =e @) e (rea_ =e + @) e (rii_ =e i) e (re_ e i) e (ri_ e + i) e (rii_ e i) e (rea_ e - - _ac) ee (a eI - r) ei (er_ 'eI - - @) eş (_ =eS - - @) eşul (_ =eSul - @) eşi (_ =eSI^ - @) eşului (_ =eSuluI - @) eşilor (_ =eSilor -// &) es (_S1q e - + @) e (ra_ =e + @) e (ră_ =e + @f) e (ra_ e + @f) e (ra_ e + i) e (ră_ e + i) e (ra_ e + eoa eO'a .group f f f + ff f @) f (i_ f; @@ -138,22 +161,48 @@ .group i i i i (A j + + @) i (e_ j &C) i (_N$1q i/ &) i (_N$1q i &) i (-N$1q i // don't reduce to [I^] if a hyphen follows - ţ) i (-Că i ţ) i (-Ci i + + ţ) i (-l i + ţ) i (-ne i &') i (_ i ţi-) i (_ _ // combined with previous word as [iI] Cr) i (_ i - V&) i (_ 'i // verb + V&) i (N_ 'i // verb ăC) ia (_ 'ia âC) ia (_ 'ia - ăC) ie (_ 'ie âC) ie (_ 'ie - @) ie (_S1q ie + + g) i (ne_ =i + g) i (nea_ =i + c) i (uC + cţ) ie (_ =ie + cţ) iei (_ =ieI + cţ) ia (_ =ja + graf) ie (_ 'ie + graf) ia (_ 'ia + graf) iei (_ 'ieI + graf) ii (_ 'iI + scop) ie (_ 'ie + scop) ia (_ 'ia + scop) iei (_ ieI + scop) ii (_ 'iI + er) ia (_ 'ia + er) iei (_ 'ieI + on) ie (_ 'ie + on) ia (_ 'ia + on) iei (_ 'ieI + uş) ie (_ 'ie + uş) ia (_ 'ia + uş) iei (_ 'ieI +// @) ie (_S1q ie iei (_ 'ieI ii iI @@ -163,15 +212,26 @@ iu ju &) ic (_ =ik + &) ica (_ =ika &) ice (_ =itSe - &) icile (_ =itSile + &) icile (_ =itSile &) icilor (_ =itSilor @) icii (_ =itSiI + scr) i (e 'i &) ing (_ %iNg // foreign words i (t_ 'i - ioa iO'a + ioa iO'a + + @) işte (_ =iSte + @) iştea (_ =iStea + @) i (ţă_++++++++ =i + @) i (ţe_ =i + @) i (ţei_ =i + @) i (ţelor_ =i + -) i (_ j + @) i (ţele_ =i .group î @@ -190,6 +250,7 @@ .group l l l + ll l @) l (i_ l; _) l (_ le -) l (_ l // -l @@ -205,6 +266,7 @@ .group m _) m (_ me m m + mm m @) m (i_ m; _) m (-a m @@ -220,69 +282,75 @@ @) n (tic_ =n @) n (ic_ =n _) n (-a n + -) n (_ n - -) n (_ n +@itudi) ne (_S2t ne +@itudi) nea (_S3t nea +@itudi) nii (_S3t niI +@itudi) ni (_S2t ni +@itudi) nile (_S4t nile +@itudi) nilor (_S5t nilor .group o o o oa Oa oai Oaj - oi oI + _) oi oI oi (_ 'oI ou oU ou (_ 'oU o (AAA o - @) oi (t_ o'i - @) oi (tă_ o'i - @) oi (ţi_ o'i - @) oi (te_ o'i - .group p p p + pp p @) p (i_ p; - .group q q k qu kw .group r - r r - A) r (A * - C) r (A @-* - rr *r - A) r (i_ *; + r r + rr r + A) r (A * + C) r (A @-* + rr *r + A) r (i_ *; - _) re (@P2v re - _) re (gul re - @u) ri (_NS2t rI^ + _) re (@P2T re + _) re (gul re + @u) ri (_NS2t rI^ + C) ri (_ @-*i + @u) rii (_S3t riI @u) rile (_S4t rile - @) rilor (_S5t rilor + @u) rilor (_S5t rilor - C) ri (_ @-*i @) răm (_S1t m @) răţi (_S4t *@tsI^ + @u) re (_S2t *e .group s _) s (_ se _) s (-a s s s - @) s (i_ s; + -) s (_ s + sh S + ss s &) sprezece (_S8t sp@-*ez,etSe @) sem (_S1t m @) seră (_S2t *@ - @) serăm (_S3t *@m + @) serăm (_S3t *@m @) serăţi (_S4t *@tsI^ @) seşi (_S2t SI^ - @) sni (_ sn'i + @) sni (_ sn'i .group ş @@ -298,6 +366,10 @@ tt (_ t @) t (i_ t; + ts ts + tz ts + tt t + .group ţ ţ ts @@ -314,19 +386,34 @@ .group u u u u (A w - ui uI + _) ui uI + ui (_ uI ui (e wi - V&) ui (_ u'i - ui (m_ u'i - ui (t_ u'i - ui (ţi_ u'i - ui (se_ u'i - &) ul (_S2t ul + V&) ui (_N u'i - @ic) ul (_S2 ul - @ic) uri (_S3 urI^ + &) ul (_S2t ul + @ic) ul (_S2t ul + @ic) ule (_S3t ule + @ic) ului (_S4t uluI + @ic) uri (_S3 urI^ @ic) urile (_S5 urile + &) ului (_S4t uluI + @) us (_S2t us + @) usul (_S4t usul + @) usuri (_S5t usuri + @) usului (_S6t usuluI + @) usurile (_SS´7t usurile + @) usurilor (_S8t usurilor + @ăC) u (N_ 'u + @) um (_S2t um + @) umul (_S4t umul + @) umului (_S6t umuluI + @) umuri (_S5t umuri + @) umurile (_S7t umurile + @) umurilor (_S8t umurilor + c) um (_ um + @) uie (_ =wie .group v @@ -342,10 +429,17 @@ x ks A) x (A gz ma) x (i ks - e) x (e ks cone) x (iu ks i) x (e ks o) x (e ks // boxele + u) x (a ks + a) x (a ks + a) x (ă ks + a) x (e ks + i) x (a ks + o) x (a ks + A) x (â ks + @) x (ibil ks o) x (i ks // oxigen a) x (ia ks // axial ale) x ks @@ -359,15 +453,22 @@ .group z z z + zz z @) z (i_ z; - .group ö Y - - % protSent D_) % la_sut@ + % p@-*otSent + $ dolar + + plus + & ampersand + © k'apiraIt + @ a*'ond + / sleS + € 'eU*o + ° g@-*ade , (D v'irgul@ @@ -384,3 +485,5 @@ *) * (* ** **) * (_ _:: + + diff --git a/phsource/mbrola/ro1 b/phsource/mbrola/ro1 index 0d35be6e..3fc2c746 100644 --- a/phsource/mbrola/ro1 +++ b/phsource/mbrola/ro1 @@ -6,24 +6,26 @@ 0 r/ NULL 0 r 0 r- NULL 0 r 0 g- NULL 0 NULL -0 w/ NULL 0 w +0 w NULL 0 u +0 w/ NULL 0 u 0 * NULL 0 r 0 ; NULL 0 NULL 0 a e 15 a _ 0 a NULL 0 a 0 @- NULL 0 NULL +0 j/ NULL 0 j 0 I^ _ 0 I 0 I^ NULL 20 I _ 0 @U NULL 60 @ w 0 aU NULL 60 a w -0 eU NULL 60 e w +0 eU NULL 80 e u 0 iU NULL 60 i w -0 yU NULL 60 l w +0 yU NULL 60 1 w 0 oU NULL 60 o w 0 @I NULL 60 @ j 0 iI NULL 60 i j 0 aI NULL 60 a j -0 eI NULL 60 e j +0 eI NULL 100 e i 0 oI NULL 60 o j 0 uI NULL 60 u j 0 yI NULL 60 1 j diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 4634bdd1..531e08fd 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -154,7 +154,7 @@ phoneme 3: vowel starttype (@) endtype (@) length 230 formants vwl_en_us/3_us - reduceto @ 0 +// reduceto @ 0 linkout r- endphoneme diff --git a/src/numbers.cpp b/src/numbers.cpp index 6e2da9c2..eadb1b43 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -51,13 +51,18 @@ int Translator::TranslateLetter(char *word, char *phonemes, int control) char capital[20]; char ph_buf[30]; char ph_buf2[50]; - static char single_letter[8] = {0}; + static char single_letter[10] = {0,0}; ph_buf[0] = 0; capital[0] = 0; n_bytes = utf8_in(&letter,word,0); + if((letter & 0xfff00) == 0x0e000) + { + letter &= 0xff; // uncode private usage area + } + if(control > 2) { // include CAPITAL information @@ -68,8 +73,17 @@ int Translator::TranslateLetter(char *word, char *phonemes, int control) } letter = towlower(letter); + if((letter <= 32) || iswspace(letter)) + { + // lookup space as _&32 etc. + sprintf(&single_letter[1],"_#%d ",letter); + Lookup(&single_letter[1],ph_buf); + strcat(phonemes,ph_buf); + return(n_bytes); + } + len = utf8_out(letter,&single_letter[2]); - single_letter[2+len] = ' '; + single_letter[len+2] = ' '; next = RULE_SPELLING; if(word[n_bytes] == ' ') @@ -186,6 +200,67 @@ void Translator::SetSpellingStress(char *phonemes, int control) +int Translator::TranslateRoman(char *word, char *ph_out) +{//===================================================== + int c; + char *p; + int acc; + int prev; + int value; + int subtract; + unsigned int flags; + char number_chars[N_WORD_BYTES]; + + static char *roman_numbers = "ixcmvld"; + static int roman_values[] = {1,10,100,1000,5,50,500}; + + if((langopts.numbers & NUM_ROMAN) == 0) + return(0); + + acc = 0; + prev = 0; + subtract = 0x7fff; + + while((c = *word++) != ' ') + { + if((p = strchr(roman_numbers,c)) == NULL) + return(0); + + value = roman_values[p - roman_numbers]; + + if((prev==5) || (prev==50) || (prev==500)) + { + if(value >= prev) + return(0); + } + if((prev != 0) && (prev < value)) + { + if(((acc % 10) != 0) || ((prev*10) < value)) + return(0); + subtract = prev; + value -= subtract; + } + else + if(value >= subtract) + return(0); + else + acc += prev; + prev = value; + } + acc += prev; + if(acc < 2) + return(0); + + if(acc > langopts.max_roman) + return(0); + + Lookup("_roman",ph_out); // precede by "roman" if _rom is defined in *_list + p = &ph_out[strlen(ph_out)]; + + sprintf(number_chars," %d ",acc); + TranslateNumber(&number_chars[1],p,&flags,0); + return(1); +} // end of TranslateRoman int Translator::LookupNum2(int value, int control, char *ph_out) @@ -589,7 +664,7 @@ int Translator::TranslateNumber_1(char *word, char *ph_out, unsigned int *flags, { if((thousandplex > 0) && (value < 1000)) { - if(langopts.numbers & 0x40000) + if(langopts.numbers2 & 0x100) { if((thousandplex == 1) && (value >= 100)) { diff --git a/src/readclause.cpp b/src/readclause.cpp index 343f55a2..f76b1111 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -1546,6 +1546,10 @@ f_input = f_in; // for GetC etc c1 = j; } } + if((sayas_mode == 0x14) && (c1 <= 0x20)) + { + c1 += 0xe000; // move into unicode private usage area + } } else if(c1 == '<') diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 03eaf37f..91568033 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.27.05 05.Jul.07"; +const char *version_string = "1.27.06 07.Jul.07"; const int version_phdata = 0x012701; int option_device_number = -1; diff --git a/src/tr_english.cpp b/src/tr_english.cpp index 7eb0cf06..8634b230 100644 --- a/src/tr_english.cpp +++ b/src/tr_english.cpp @@ -44,8 +44,7 @@ Translator_English::Translator_English() : Translator() langopts.stress_rule = 0; langopts.word_gap = 0; - langopts.numbers = 0x41; - + langopts.numbers = 0x41 + NUM_ROMAN; } diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index e76d1be2..5088c150 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -122,7 +122,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_PREFIXES] = 1; memcpy(tr->stress_lengths,stress_lengths_de,sizeof(tr->stress_lengths)); - tr->langopts.numbers = 0x11c19; + tr->langopts.numbers = 0x11c19 + NUM_ROMAN; SetLetterVowel(tr,'y'); } break; @@ -213,7 +213,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels - tr->langopts.numbers = 0x529; + tr->langopts.numbers = 0x529 + NUM_ROMAN; } break; @@ -271,7 +271,8 @@ Translator *SelectTranslator(const char *name) tr->langopts.stress_rule = 6; // stress on last heaviest syllable tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable - tr->langopts.numbers = 0x811 + 0x40000; + 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; @@ -302,7 +303,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.max_initial_consonants = 5; tr->langopts.spelling_stress = 1; - tr->langopts.numbers = 0x1c0d + 0x4000; + tr->langopts.numbers = 0x1c0d + 0x4000 + NUM_ROMAN; tr->langopts.numbers2 = 0x4a; // variant numbers before thousands,milliards tr->langopts.replace_chars = replace_cyrillic; tr->langopts.replacement_chars = replace_cyrillic_latin; @@ -336,7 +337,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word tr->langopts.long_stop = 130; - tr->langopts.numbers = 0x1809; + tr->langopts.numbers = 0x1809 + NUM_ROMAN; SetLetterVowel(tr,'y'); tr->langopts.spelling_stress = 1; //SetLengthMods(tr,3); // all equal @@ -384,7 +385,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_IT_DOUBLING] = 2; // double the first consonant if the previous word ends in a stressed vowel tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list - tr->langopts.numbers = 0x2709 + 0x800; + tr->langopts.numbers = 0x2709 + 0x800 + NUM_ROMAN; } break; @@ -397,6 +398,8 @@ Translator *SelectTranslator(const char *name) tr->langopts.unstressed_wd1 = 0; tr->langopts.unstressed_wd2 = 2; tr->langopts.param[LOPT_DIERESES] = 1; + tr->langopts.numbers = 0x1 + NUM_ROMAN; + tr->langopts.max_roman = 5000; } break; @@ -483,7 +486,7 @@ Translator *SelectTranslator(const char *name) // tr->langopts.vowel_pause = 1; tr->langopts.stress_rule = 3; // stress on final syllable tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000; - tr->langopts.numbers = 0xa69 + 0x2000; + tr->langopts.numbers = 0xa69 + 0x2000 + NUM_ROMAN; tr->punct_to_tone[0][3] = 2; // use exclamation intonation SetLetterVowel(tr,'y'); } @@ -505,7 +508,7 @@ Translator *SelectTranslator(const char *name) 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; + tr->langopts.numbers = 0x1829+0x6000 + NUM_ROMAN; tr->langopts.numbers2 = 0x1e; // variant numbers before all thousandplex } break; @@ -576,7 +579,8 @@ Translator *SelectTranslator(const char *name) tr->langopts.stress_rule = 2; tr->langopts.stress_flags = 0x6 | 0x10; - tr->langopts.numbers = 0x408e1; + tr->langopts.numbers = 0x8e1; + tr->langopts.numbers2 = 0x100; } break; @@ -942,7 +946,7 @@ Translator_Afrikaans::Translator_Afrikaans() : Translator() langopts.param[LOPT_PREFIXES] = 1; SetLetterVowel(this,'y'); // add 'y' to vowels - langopts.numbers = 0x0d1; + langopts.numbers = 0x0d1 + NUM_ROMAN; memcpy(stress_lengths,stress_lengths2,sizeof(stress_lengths)); } diff --git a/src/translate.cpp b/src/translate.cpp index 42b03ea8..ad20be78 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -438,6 +438,7 @@ Translator::Translator() langopts.length_mods0 = length_mods_en0; langopts.long_stop = 100; + langopts.max_roman = 49; langopts.thousands_sep = ','; langopts.decimal_sep = '.'; @@ -667,7 +668,13 @@ if((wmark > 0) && (wmark < 8)) found = TranslateNumber(word,phonemes,&dictionary_flags,wflags); } - if((wflags & FLAG_ALL_UPPER) && (clause_upper_count <= clause_lower_count) && + if(!found & ((word_flags & FLAG_UPPERS) != FLAG_FIRST_UPPER)) + { + // either all upper or all lower case + found = TranslateRoman(word,phonemes); + } + + if(!found && (wflags & FLAG_ALL_UPPER) && (clause_upper_count <= clause_lower_count) && !(dictionary_flags & (FLAG_ABBREV | FLAG_SKIPWORDS)) && (word_length>1) && (word_length<4) && iswalpha(first_char)) { // An upper case word in a lower case clause. This could be an abbreviation. @@ -1635,6 +1642,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ int phoneme_mode = 0; int dict_flags; // returned from dictionary lookup int word_flags; // set here + int next_word_flags; int embedded_count = 0; int letter_count = 0; char *word; @@ -1715,6 +1723,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ word_count = 0; single_quoted = 0; word_flags = 0; + next_word_flags = 0; expect_verb=0; expect_past=0; expect_verb_s=0; @@ -1827,7 +1836,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ } } else - if((option_sayas2 & 0xf0) != 1) + if((option_sayas2 & 0xf0) != 0x10) { if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)) { @@ -1937,6 +1946,7 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out) c = ' '; // change from upper to lower case, start new word at the last uppercase prev_in2 = c; source_index = prev_source_index; // unget + next_word_flags |= FLAG_NOSPACE; } //#endif } @@ -2116,7 +2126,8 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out) for(k=j; charix[k]!=0; k++); words[word_count].length = k-j; - word_flags = 0; + word_flags = next_word_flags; + next_word_flags = 0; pre_pause = 0; word_mark = 0; all_upper_case = FLAG_ALL_UPPER; diff --git a/src/translate.h b/src/translate.h index c0c867da..ef2451b1 100755 --- a/src/translate.h +++ b/src/translate.h @@ -69,12 +69,14 @@ // wordflags, flags in source word #define FLAG_ALL_UPPER 0x1 /* no lower case letters in the word */ #define FLAG_FIRST_UPPER 0x2 /* first letter is upper case */ +#define FLAG_UPPERS 0x3 // FLAG_ALL_UPPER | FLAG_FIRST_UPPER #define FLAG_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */ #define FLAG_PHONEMES 0x8 /* word is phonemes */ #define FLAG_LAST_WORD 0x10 /* last word in clause */ #define FLAG_STRESSED_WORD 0x20 /* this word has explicit stress */ #define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ #define FLAG_HYPHEN 0x80 +#define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space #define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 #define FLAG_SUFFIX_REMOVED 0x2000 #define FLAG_HYPHEN_AFTER 0x4000 @@ -275,6 +277,7 @@ typedef struct { unsigned char *length_mods; unsigned char *length_mods0; +#define NUM_ROMAN 0x20000 // bits0-1=which numbers routine to use. // bit2= thousands separator must be space // bit3= , decimal separator, not . @@ -289,15 +292,16 @@ typedef struct { // bit12=allow space as thousands separator (in addition to langopts.thousands_sep) // bits13-15 post-decimal-digits 0=single digits, 1=(LANG=it) 2=(LANG=pl) 3=(LANG=ro) // bit16=dot after number indicates ordinal - // bit18=special word for 100,000s LANG=sw + // bit17=recognize roman numbers int numbers; // bits 1-4 use variant form of numbers before thousands,millions,etc. // bit6=(LANG=pl) two forms of plural, M or MA // 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; int intonation; // 1=tone language @@ -388,6 +392,7 @@ private: int LookupNum3(int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands); int LookupThousands(int value, int thousandplex, char *ph_out); int TranslateNumber_1(char *word1, char *ph_out, unsigned int *flags, int wflags); + int TranslateRoman(char *word, char *ph_out); void InitGroups(void); void AppendPhonemes(char *string, int size, const char *ph);