From 1dddc6e1f699a947866c21302ade01e2dffed35a Mon Sep 17 00:00:00 2001 From: jonsd Date: Sat, 5 May 2012 22:38:43 +0000 Subject: [PATCH] [1.46.17] lang=pt, ordinal numbers and names of accented letters. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@282 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/dict_phonemes | 28 ++++++++--------- dictsource/fr_list | 7 ++++- dictsource/hu_list | 26 +++++++++++++++- dictsource/hu_rules | 3 ++ dictsource/pt_list | 64 +++++++++++++++++++++++++++++++-------- phsource/compile_report | 16 +++++----- phsource/ph_english | 3 +- phsource/ph_english_us | 4 +++ phsource/vowel/a_8 | Bin 0 -> 1627 bytes phsource/vowel/ii_8 | Bin 0 -> 1612 bytes phsource/vowel/u_bck3 | Bin 0 -> 8314 bytes phsource/vowel/y#_4 | Bin 0 -> 10122 bytes src/numbers.cpp | 19 ++++++++---- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 1 + 15 files changed, 128 insertions(+), 45 deletions(-) create mode 100755 phsource/vowel/a_8 create mode 100644 phsource/vowel/ii_8 create mode 100644 phsource/vowel/u_bck3 create mode 100644 phsource/vowel/y#_4 diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 2707fcef..b13d4576 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -66,7 +66,7 @@ R3 s S t T tS v w x Z -Dictionary hu_dict 2012-04-07 +Dictionary hu_dict 2012-05-04 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -152,7 +152,7 @@ l m n N p r R s S s2 t v w Z -Dictionary fr_dict 2012-02-22 +Dictionary fr_dict 2012-05-04 @ @- a a- A~ e E e- E: E~ i I o O O~ u @@ -187,7 +187,7 @@ N n^ p r R R2 s S t tS ts tS; v x z Z -Dictionary hi_dict 2011-05-09 +Dictionary hi_dict 2012-04-12 @ @2 a a: aI aU e E e: E: E~ i I i: l- o @@ -202,7 +202,7 @@ q r r. s S s. t T t. th th. v w x z -Dictionary ta_dict 2012-04-07 +Dictionary ta_dict 2012-04-12 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -375,7 +375,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; -Dictionary pt_dict 2010-09-04 +Dictionary pt_dict 2012-05-04 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -565,18 +565,18 @@ s S s. t T t. th v w x z z. -Dictionary pa_dict 2012-04-07 +Dictionary pa_dict 2012-05-04 -@ a a~ e E e~ E~ i -I i~ I~ o O O~ o~ r- -u U U~ u~ V V~ +@ a a~ e E eI e~ E~ +i I i: i~ I~ o O O~ +o~ r- u U U~ u~ V V~ : ; b bh c ch d d. -dh dh. f g gh h H j -J Jh k kh l l. m n -N n. n^ p ph Q R R2 -s S t t. th th. v x -z +dh dh. dZ f g gh h H +j J Jh k kh l l. m +n N n. n^ p ph Q r +R R2 s S t t. th th. +v w x z Dictionary prs_dict 2009-12-01 diff --git a/dictsource/fr_list b/dictsource/fr_list index 30848607..329e22a9 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -24,7 +24,7 @@ // 2006-11-18 Gilles Casse // -// Updated 2012-02-12 Michel Such +// Updated 2012-04-15 Michel Such // // * Numbers, a few abbreviations and exceptions. // @@ -683,6 +683,7 @@ bissus bisys blues _^_en blum blum bootable boutable $text +brian _^_en broglie breuil $text browglie breuil $text buffer bYfWr @@ -696,6 +697,7 @@ charles Sarl (chef d'oeuvres) chédeuvres $text chienlit SjA~li choeur kWr +cindy sindi cinema sinema cocus kOky couscous kuskus @@ -712,6 +714,7 @@ faut fot2 $u+ feldspath fEldspat fier fjer $verb for $u+ +francesco frA~nSEsko francis frA~sis fred frEd free _^_en @@ -737,6 +740,7 @@ island _^_en jackpot dZakpOt jacques Zak james _^_en +jennifer ZenifEr karaoke karaoke kevin kevin laetitia letisja @@ -759,6 +763,7 @@ mouloud mulud monsieur m@sjY mrs _^_en oasis oazis +oliver _^_en ours urs output _^_en pataquès patakEs diff --git a/dictsource/hu_list b/dictsource/hu_list index b330755a..c1d968bc 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -3359,7 +3359,6 @@ hangjelzés $unstressend (korrigálás révén) koR2R2iga:la:S_||R2e:ve:n $unstressend (épületekhez hasonlította) e:pylEtEkhEz_||hAsonli:tot:A $unstressend (problémájához hasonlította) pR2oble:ma:ja:hoz_||hASonli:tot:A $unstressend -(az akadálymentesítés) Az_||AkAda:jmEntESi:te:S $unstressend (volna meg őket) volnA_||mEg_||Y:kEt $unstressend (értelme felróni) e:R2tElmE_||fElR2o:ni $unstressend (is született) iS_||sylEtEt: $unstressend @@ -5110,6 +5109,31 @@ döntését $unstressend (eső részét) ESY:_||R2e:se:t $unstressend végéig $unstressend (meg kell vizsgálni) mEg_||kEl:_||viZga:lni $unstressend +(döntött arról) dYntYt:_||AR2R2o:l $unstressend +posztról $unstressend +(elnöki posztról) ElnYki_||postR2o:l $unstressend +(élte meg) e:ltE_||mEg $unstressend +érezhette $unstressend +népszerű $unstressend +(is alátámasztotta) iS_||Ala:ta:mAstot:A $unstressend +(három évig bírni) ha:R2om_||e:vig_||bi:R2ni $unstressend +(nap után született meg) nAp_||uta:n_||sylEtEt:_||mEg $unstressend +(szokta meg) soktA_||mEg $unstressend +rendelt $unstressend +(nap alatt tudatosult) nAp_||AlAt:_||tudAtoSult $unstressend +győzni $unstressend +garantálni $unstressend +(tette világossá) tEt:E_||vila:goS:a: $unstressend +(szóló döntés) so:lo:_||dYnte:S $unstressend +sejtik $unstressend +hamarabb $unstressend +erősíti $unstressend +lemondani $unstressend +(volna magát) volnA_||mAga:t $unstressend +(sem került) SEm_||kER2ylt $unstressend +hallgatták $unstressend +(hogyan fog végződni) hoJAn_||fog_||ve:gzY:dni $unstressend +akadálymentesítés // word pairs (mit eszel) mit_||EsEl $unstressend diff --git a/dictsource/hu_rules b/dictsource/hu_rules index c5a24b80..6e1f8046 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -1638,6 +1638,9 @@ _kemene) ssz Ss _szamo) ssz Ss _szilvá) ssz Ss _vámo) ssz Ss +keresé) ssz Ss + cipő) ssz Ss +szorongá) ssz Ss .group sz sz s diff --git a/dictsource/pt_list b/dictsource/pt_list index 40905f6b..23f20898 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -44,20 +44,19 @@ _tld tS'iU // character names -_á $accent -_à $accent -_à $accent -_â $accent -_ã $accent +á $accent +_à $accent // à can be a word +â $accent +ã $accent ç $accent -_é $accent -_ê $accent -_í $accent -_ó $accent -_ô $accent -_õ $accent -_ú $accent -_ü $accent +_é $accent // é can be a word +ê $accent +í $accent +ó $accent +ô $accent +õ $accent +ú $accent +ü $accent ß _^_DE v ve // not Roman numbers @@ -204,6 +203,43 @@ _dpt _v'irgul& // _0Z2 seNt'Ezim& // 100ths // _0Z3 mil'Ezim& // 1000ths +// ordinal numbers +_#º U +_#ª & +_ord o + +_1o pRim'eI* +_2o seg'u~Nd +_3o te*@-s'eI* +_4o kw'a*@-t +_5o k'iNt +_6o s'est +_7o s'EtSim +_8o oIt'av +_9o n'on +_10o d'Esim +_2Xo viZ'Ezim +_3Xo tRiZ'Ezim +_4Xo kwad*aZ'Ezim +_5Xo kiNkwaZ'Ezim +_6Xo seksaZ'Ezim +_7Xo septwaZ'Ezim +_8Xo oktoZ'Ezim +_9Xo nonaZ'Ezim +_0Co seINt'Ezim +_1Co seINt'Ezim +_2Co duseINt'Ezim +_3Co tRiseINt'Ezim +_4Co kwad*iZeINt'Ezim +_5Co kiNZeINt'Ezim +_6Co seIseINt'Ezim +_7Co septSiZeINt'Ezim +_8Co oktSiZeINt'Ezim +_9Co noNZeINt'Ezim +_0M1o mil'Ezim +_1M1o mil'Ezim + + // not roman numbers vi vi @@ -363,6 +399,7 @@ pelos $u ao $u à ,a: +à $atend $accent aos $u às ,a:s @@ -444,6 +481,7 @@ se $u // if ser $u sou $u é E $u +é $atend $accent és Es $u somos $u sois $u diff --git a/phsource/compile_report b/phsource/compile_report index 72e00529..75f74835 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -5,7 +5,7 @@ consonants 10 116 base2 26 123 en 53 153 en-n 33 153 - en-us 40 154 + en-us 41 154 en-sc 40 155 en-rp 34 153 en-wm 31 153 @@ -61,7 +61,7 @@ consonants 10 116 ka 19 112 rw 15 130 ne 18 156 - pa 14 149 + pa 15 150 prs 8 111 sl 10 135 gd 6 107 @@ -402,7 +402,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [hVv] base +l/l@ [hv] base [l#] base [l] fr [l/2] fr @@ -436,7 +436,7 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [hVv] base +l/la [hv] base [l#] base [l] fr [l/2] fr @@ -444,7 +444,7 @@ l/la [hVv] base [K] tn l/l_a [l/3] base [l/] fr -l/le [hVv] base +l/le [hv] base [l#] base [l] fr [l/2] fr @@ -456,7 +456,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [hVv] base +l/li [hv] base [l#] base [l] fr [l/2] fr @@ -470,7 +470,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [hVv] base +l/lo [hv] base [l#] base [l/2] fr [K] nso @@ -480,7 +480,7 @@ l/l_o [l/3] base l^/l_rfx [l.] base [l] ru [l^] ru -l/lu [hVv] base +l/lu [hv] base [l#] base [l] fr [l/2] fr diff --git a/phsource/ph_english b/phsource/ph_english index 2c928ca8..088a6e57 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -1,6 +1,7 @@ phoneme t2 // [t] which doesn't reduce - import_phoneme base/t + vcd alv stop + ChangePhoneme(t) endphoneme diff --git a/phsource/ph_english_us b/phsource/ph_english_us index be1425eb..edf8229f 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -388,3 +388,7 @@ phoneme t WAV(ustop/t, 90) endphoneme + +phoneme t2 // [t] which doesn't reduce + import_phoneme base/t +endphoneme diff --git a/phsource/vowel/a_8 b/phsource/vowel/a_8 new file mode 100755 index 0000000000000000000000000000000000000000..1974c863212f55a9510f67de35012a6eb4cd2610 GIT binary patch literal 1627 zcmd6nu}{-c5XV1le=Vi7l>*jku(lvj6cGz8Y7~A@LDXQxqETZaEG9+=79)$1I2sZb zC5|R);^?L^CT=eJAD9?sO_-dFN&UXp)>Z~5n)oi)yZhdI?d$j6UGc(HVZJz*^#O}F zMjaOA)GycnZKWK$&f7|&hRp~$Q9&W)aU(Z)VlVJSkS9x0VRMBQLLqTlMoF~|>{Fbc~_yniE^?%p~iZ#LPL ztvY{fo^!a&Fv(@s`NVzJc*8rEgdL^8S*9f8(u>^EKRLxT$Mnxn%bsD35mNLsz@X%y zY(~;UucU|WI_aW|G)X!oyRF38#ZEeClXTEZln5=1|NQ(uU~lL8zburm={nEK4mE5R zFXt<0icH8B***IF^xS4>YS!_ow_c3LoIu{lav^Jt|82`0a{Ad}j zvF`fKdp4_v%_=flUXAL6?WshrdQEY=b^Xtk_`dweUf1=%-g<3SqKYjjSDi_lrAAd^ zb6aN8zbX;eq)3y{#7Jm@4C%e!=AP!$y!5W7&@?C6uS{CAC#|=il%~}uN7PBjRoNVe z74=JpG@phU<&cm*?T%~4v|0(_$VTmp52_nN>W45*ij5zT*Mwht0_upMjf^$8>7AhV PwCF@xOvb6~cjWyBoj}K2 literal 0 HcmV?d00001 diff --git a/phsource/vowel/ii_8 b/phsource/vowel/ii_8 new file mode 100644 index 0000000000000000000000000000000000000000..6218e30e802d91fbfee65c86080dc9d25d75057b GIT binary patch literal 1612 zcmdUvO=}ZT6o#J}Cux#8Od6*lrZyI%F-ou`XbsiSfmU#1X-O47z-~mWAm~DHBjg7Z z+`1|*>c0>P2-1a1q1*g|(uFG#;(I4C$z&@5ox{0v?t9O@xj7GWnj5!Px0;(Z2iV!! zUUGP%X!HqU-&?(T;2iW9hT4Xd)xHXQv`@UZ6ZQis#-VPJ-M1>%L&e77V}f+Y>R7vq zjl*H8l`)EAfpMt1?TFItCcPjT&3Ty*9Hacu4&(5qfE`uJ#nOm!!z6`I`A;x-*SO77 zKGUGUJXcwiRjDbe>i@0rh?^9-B6XR&+$Tq#Sr)j&66=~TQlX^yEHfmSBBs$Lr7=O0 zxRkiGIF8(`yLe>Caz^KzR^;Mq{~VXY-=C9O(D@$eFw)hc5&qb!FoQmjd z@rq~C8=9@j=T%={mR6N#G<%cDA=*@5zRJ3JZ7F+8^mt^(5{=q)$21 ff!m4nDc^04DR{wDG$+WnM|zOC+u!u5f0@N^(HzNV literal 0 HcmV?d00001 diff --git a/phsource/vowel/u_bck3 b/phsource/vowel/u_bck3 new file mode 100644 index 0000000000000000000000000000000000000000..05819c41453e9d4f3fb570bd77ddc5023d40329d GIT binary patch literal 8314 zcmbVx2Y6N0y6u{MuC`l3Ae2Y~B=lftf|LMBs3C+T5L)OU1VoCoC zjii330P{O9%4NL^jj~?DNT=y|(l9m|CEasdQnabDH49PWQ7V5 z)e6K9ssCPbP}3qU2evugzHp~ToqKg&*{Nhlt9{2d>8zZFT)g7!viqXPsdylK|B2o{5}2W{TYG7fzm3*2)mMf-CAn(w9>84)@N3@z002L^m8*k9lb4m z@&4ezra;M{Wi${DLKf=q2!(zJZp&IK7 zW{7pwT4Q%|Y)ZM5GuCLUsI|>(WXH0SGF3>W;L3jG)hT+a zKCCUXirL8=Va_u@GqcSF=2$b+tZr&^mmY*VPO8BwTy2vr+ll?S@ z_2mIEU1-@&?vusTXmvxS=uNsXYPe@Mv$j}ac9wm}4s%*NlbyBBcIQiHw$sM3o!Pd> ze#^=>&+4ZtNR^TUM6CEoC^=9blBO!6imL*Osq=EJ94ZrKkUTDCiRL0qT;<>J&-qgR z1>eiBa8nc$wM9FTB_@ld;wy1LoENu+Aw4pmEG&!5QnG}MlwmTLbR?J0#AERY#~ zxFfEJQ(}+E!F#jBBr#FU5R35Zkhm!vSyI-Mo#bFSMJ|*pdG3joD7#*UK9Joaxqf07ga^DxXg3-aNd|l@JH+dJH}42U)eJj%uDcEygBd5 zNAXYiMt*?*%pY(|2f+)Us5Yn7nNV_l9^J;d6?}@ybeFZK4gtpJ=U4cVn4Ec{2hLrr-;j9f~>0o`ikCd zuCp+r#xWp@tHM-C zRYf&c@2DAShq|S5=@{TooUW$J>XN#&uBuz;5&A2AUzax9nd8i*80l>DZ8O@us@Ldg zdNw}4(K&jwE~8f~uS%9f#3H_%^KytRi{D`T*kblROJT(s zW#{Ntx{!{iAJ74G5FJOC(p~flHHJ-LAF~B)Ia|#(vai`Lc7Pp3-?y=BjH?T)fu9=DROgDnoMicO0+1=L%lQ?Ekmn6 zeD>3}msl_~EayduuX_mx|BeNXa5YV58wUA~eg_;6H;NJ?*D-R8>^09B7pdW$NcNM3 zc0Ja{G~@+xf#ma^G91^?f0h5LvWnL*UzF4I#JmQ3b-jPs2lQ3BXrUM7gwjKzKa6>; z!pce!Rky_+jH_OEX=3+emg=PSNNv*i^`wRMThuud-zM%{t*E%4;wHr}iC+=dzUKOB zUsw9NtSEJ}$dNFW=d^#Dv(^kVo10&nm91~BqIPXN$R1C6TAbi5{YixW~`&``i_OB4gy?k?aiVOIxtR?00sOjb#PdM$GOYI+;$z+}EJ5 zVUDxuLz;&fY!ywQ-B4Q3ityGvg9r2W%%!>537#aUsxS0t@US4E``^&2Y%}u$^M>;iygb(G zO0h}|7Zt@3-kA&j6;^B_;$bjmWCmN!m!Y*FWdEHcbwTr1Y`&Fm6wKntR01UNm9ead>X{A?wS zr+<(g_}%D5J|nBie6oUEBT+ztGI+Bu`Q2zh#*twpid;74l2F=? z4yB{%B)XcO1I`4PV)yBNnxD01OOfxxk+1vk(R>Vl7qhMSde)3Rpwnq(dW9?@eMoKM zBS(y1jf&)bvWYw-%rL)SusIX6k^Zchh&LUu@DoWm&^_>)wm&S9592J8>oIG_8LiF(N6DG&r$GJ)JNn zwsz$?Wq&G}8QH&J>3p+7mItbPW1WrWYx;>AsUPUP<^#P5tNmB?wc4$IQ!%=S{zQMP z&*TWP=ErAA;K2dg7;6!7|@m@j&ZPNI((D?S!eMK7$-C;U4;2P--r zYx6s{0l5DfuLsWc2KR9T$leFs>;~A|G$4wPBUa@Q^^OiT`&APCEZIvX>nPJ>h1&5>miwvaQ*SrlGhe!YsDFgNmp{#4 z*ma{gIp_LF_bZ!9V32_!9meGWm7ZpIxM%Aj98aUGc_H z%x5y&O+R2=cqkD3dvOUZtrD5Qn0dSapNTwvlJ2B?>GwD{(Zz_6&NPoMJ^TuN%lBALM$YjJ$U&LW32?Bc5A)Uz_^soR> zrXA|3MT6;SvY7M(V*F`*Zag&Vp*)22AW0;aB$H00D``i1lXZjwgZj|1$kYAsuAg2d z`H@X>v5(ko7K>3X;A^2+M)SJ-3g&1n-A~pUIe4Z#ErdAs(9*~=H4xjoNn^6ncxoh) z?xYubn?ai6b1FGV1fHpdRw@D03ZP$t{!EtR{+qZz3nQCE(n$eez!0*593rR4k3hh6 zWD0uN5Lobdf6*5RAcyyF{G!BPsD^*X0>fzi{O&7Wz-W=bv7n1({EY=$-O+#Zf=ut) z{{{;T;~y+AjDN7eFkWH7HtFV{5LLI#q>7KK9;sEM?i&qaa8U-VII5 z-9Fcppr8F|zMG!a?ks14z0-PRRyC(+re~>Es)0&Zy^u?nsm*Ga+NZu%>(v}JP&HI} zp)=>oW->&c7Av46M~cx{dt;y~TZ&TR4*q*>xSwxj9T{U&!MK(qGdv|#XeY2U!6vd$ zJ_PJyK6F`4E=5(@O}(WHLIE!|yO}5SFKW2_j2~rl#3Q*!g+PPEsh0APXf4x}ty6U| zJwZ*D9mFXx__)LQkEx~mSUx7Aj; zQ~bz(<4lG^sc@59x$M%;oA3^v0uw@g9el%mgM6v*M^<`cy?Z?=p7U-G_o?%t^E*6) z_pOi2fjUFAmTQp38=$3od=>A?!}%WQp;hz=c|s;qFY61&YV#u8;a@P#BI$g(jJ?C3 z@eC;EP2!+90o8p$97iu_iFEOpXYn7{&$KzILEmPzpwi!h&bFY$qh+u>52al~d<8vQ z6sWP4M*?wYK!0}-e(@;~X9_FN>aeXWmEYvUginr_4`m(IUkz8?Rg5|*yUIIapa_U< zU@$FsWxVl#?PlY^&~Je`ha;DJ$z;PtY`jjc8!e22WCA%s2;z((^X@~0d`9Mxv19;Z z_d~LP>>~F_A+YLxK$4+|{E~R;GcuYCB5#oxa?sdrlt7dXBO`H+N34B|=sJZOkCW5n zJUI(w*+X{Y+EwxhvvnQ6rjWYiXQMwNIh9Puy_-ZKgL~;Cas<)ZhGZh&`)Dd1LTBO_ zLeqd!7g3{x;ur=U@C}aD7)uBGCNe#tx5-7cbdlUa3y)CSG4d4{#3wjcVl_hG6(f%EB8NVi@4P#Z!0ZbuWHOGxjK6S?*TX9k_}7xlIBjBt)v+s%XK4C_6+igUnu9nRfAx1C$WJ>b0M zn9dG+k)3THwQVQP>E%ptW;kQuEmUzB?hLi#Y#ZL%Mr*D$9uC`BYr3`A`qKK|`o(%= zS$4qo*@k@{zF}+Y4={lJ`k}fd=Zb@@4_(T`WsJJ7dVrZs)d~6-7&O?tUSQ@}>+LB{ ziu=eN=ka(4c~5%_`fB^?_zL*G@mBD@@A<^dcD?|9Jv39yA9QPdU3G%;zAt{~ds#U1 z^U|V_d?I&(`NWw|%+IX`_9?rOv)uW`;jVTcILDmNoW4$F=e|A9E^n{3{8p0LT@L`x z+=0inNvsni#2av#Ztw{3@{!^L(NH{uFXi&-tTa1LM@Gb_HzLc2b^ zyYj2Y@|@fa1+iJ~l!xURc~<@)*U7Q6xhx`o7e~cT@q@SvP2CZW+Z7qE8mZoJ6(_;1 z%u=n@8%n{s7%t1pb7B~<`5ahQ58y}>-US(UH9y5EG)AmQ6>Xu;yW(sQ^lT1PN(Yv= z1=U9KDcgoxFaIri!?wTX?UWBh!**U#>`*lXYt%= z@V;Bz00I?;YgbDo0-=-fbPe#J{6dK9U`IRP|E=en;8322!{-xG;FR@53TkX9s>AJb z#IJbfWAMmEyfhfkZ|p4F34dWG8_K#v!8T;^tR~JxXok1oJd9y;;T`ONV!g#A598&* z)!O3i;qV9N@P%+gm*H3frZJaK=M(ryxQ2bf*E&MAHhb zqpudUd>-Sma@4MsFEQZN*T4G(FLoYYd525D1eUz?4u??g4#DogU;7BFt-Z!->qR-+ z^UTQh{Ac?Jy^D-0`mprT@(ESS)m&A3SA(qN^=S>8HW)ri!x!H`erdju_igru8on6>V7&@XJf_R zlQ(1qm92`v{o1aN;vA>r^#eHai;?H6>tlM58ENgXn%L*<4$dW~i+k1W>^b2n>+Rtk z>h0k5d53#;y2qSt_5>@@6ncy71*KmD3^N+}H(i!e7gTS3Ro6Br0^x*J&3e!J+7fm> zd$hgDK4V|DPugp+Ltxost=ncLv#TDdrpcLNE*QyXmVi~=73%yJ{P2U|@>Q{Zv$1{# z!{b^2k9sHHg?0QXSZor1jo)Q^*$Qay`B;sI;Iq7rs9VU-@F0;O`if7W=`V(^CkkN4U^ku{#=G&Ra0!Y(S5;lX5c1FxMg)CEXE6)wb28dHh}wSP*ZDpE z2mceX%me|S_zS15pr<$aV?HB$TCn$oWg@k5sWr@HHkweH~@jF}D^Epv^q!!;2#? z)K56HXGtCdJ@qE9ik`f|%b=&Zxx|0wH2a1v0}tvAg;o<7UVwSwNHDmYHqg2-D+fGD z0d{vq&-wyW-h*@cKFfms>cy%*I+4`iB^HbsI^h)vy!`&3u%H?l!mGW+g7LICSj&s} z|HayE{PGeD)_8UpYyLwl7+x%-geN+t+!vJ!Rj(WOtWH?s;6`^F$EP+(z1aBAq$Twq z#22dGrD9n0qsa8|-@_M2jwvx9xm-k6%$}$oTCdg?~>Hr+F1n~oVVC3an#5K8Jb%#S?nI7}9o~euI$~zYxgRx_<+#QQOQtmEtDmYv1D)t&HpOs}E!oFc! zIB&P%L*7MHo<`*5MZS$jzNAnbbCFr{@e^>k+p&u9*excp&T_HWSRs}hKG+(t+M>|n z#o0O*24`_Rp9xfHi){B0QMVkC@j3ezF=_%0YV%geRe$BB_mH=S0w;!IPSX*`m)JBG z3)k!rxW*;=fc`-*({1qFQfWQ(JlH=x<~2@2WH!9$Q`@Qy4UN9BqSkW`T`w zr~ANi_M-K5;5^gdCJvzQz_IIw_#KE}Q{mjLrd#NDcy1s3i5&bMPBT!)Z)82xd}UGs zjJzkAM%I$Oa2alZlM85)5a{^`qg$j_%fkjI$)%&NK<$gHAp!qqBvZg bjUL=5xoKI9yAeiRpH@LzF1-(@^aS}oWrR!> literal 0 HcmV?d00001 diff --git a/phsource/vowel/y#_4 b/phsource/vowel/y#_4 new file mode 100644 index 0000000000000000000000000000000000000000..ca32bcb56968f6765e1ff409fcbf3e5fa4174228 GIT binary patch literal 10122 zcmc(lb$AqK+xB;NZXaFWjX?xR2mzu{AVMIxyK5lDwLyXeXtCf{pcE)joKmC>E`?IO zxJ!WI?iS#^fIdi%?|r@=$M?sVIX0QSXLe?1ve)lE&-2>aHB!pdsa-P)nM|fW!Odg1 zDHYZ}{Yk#-5K8Q(>vgwBcZ{cj+A`6)4QM0|EzrYdo7;Dw=0ntw>&rb&c~UW}cJt=*+CS~FsBhx|7X~EsTbBNP=S8VsH@sN2W%7_>3nQ%gF8haiF4#+3 z!;E?QpISXNLC#^tm@Ib4Ym}?X4yCnPRo`TNW?$m`-PO=N%YEOy&6DPH#_vp?z~FBA zXNL_gbiMG;Mb||>i)c1X}|dd-hoG@#=E6e!$w&w!<24JW;Lkcq*gn zWGgMh(%5foI$tCv$q`DblAs)yo5^-LzdT0vSLQ2rwXvG14pV!m@#+~RSxJ>kiVN%( z?ZnRW3UUj@SM93~RKwN&N>5o9acmEMYA%U6eNC$}#PZX5xRF#81(Oamg&ksHyczG$ zN5Uh8A7CCZzrdHIz*T)C`x)B>tkeWa{cx++#>nrx9%L^EEU6{LB{ zB)kjPCpn}v?FLH?T7;IS^Wj`F-^go-wc??8El!Kk!Y$r!Xr8jl*{wRi*W ziJzf%=!P^&YAS_Fmn=gq4$DgODRV8$PD_k5L$aXOXgxCHqBt4HVFm9-J&_G9kt#{K zmZO%tmP*oYsRr7P?6?T_!w=A9ln>9qK4c)-Nd6?NNoSIao8mEOg7l}Qu2cYRL!t0I z6(`{9aO6eOW=k)TWuQ4|F`A2Jp#^9YI*VQ-e;kWT!%`9_;<~suo{kscskjlo zfL!Q`<-VmS`U!tW66jR=6CFuQ(0!y5$;JioL(~qJBjNNq?Z}q0IjlC@MeVdA8HyjH zJxIen@Or!(PlG)Np@q^LOE0M+x{6Y8d)yYz(*l2wO{5i>Ll%>E4ZiZLl7q}paBfjJ`?uQ8;fNo38q?49Z%M0@abEx@^siOIN z^A&TTrGllIrHduYvet6T;+DdtK{apdjcf6+3zu!s+Yu~;T~O(+7G^B=;P%|8An>C=%&^X4Fr z<>SbIBTSckdqeLP`LkF?;)ZgAtFEhEuHlQOD_S;65sB(x`CtC1n#!){HhqgoREBc@>y1?}~u({)>F~cn`XTE5|X~@s}grdCTc` z-E#JF?s7b}>vpT{s?kC(t8Nt6#Y*i*o1e?%P4Ru;S2^Hro*_X}{taPQ3%xG9y+~4# zMG+0ce+?~=|50%9pq#uL^UMlp?f=TRo6la4zq^a`4|||3-PowzS3Gh(?$2!OKGQ`Z zxug=STD9M`a{2^)g}y;QriU2W#!zclTP6EFdx|68ampTUFK?@Ctz~rAS7|nFuzE{L zR65FOq7XkzgXun+mp2u4Wv&cWPAd+eQvi%}YWfZLO!B$8&(mGlI?Lm$)I^ax!* zThdqLE3zHxy%O*s4nM>L$RYBW+#*{@9}-A5K^@&f)6q1<@h`X)Y)OS0Jxq_%HFO{l zYAS_jSbR~>>w^$j}D;U&^FXfr;-~u8b3jk@oNn%0lN*2_WG!T$9Wt*GK>@Nn@#rP9nE)F#ZMAfd581t;^o9 zuXr}!$Jg^wJn{LrBmCZxBMBed_+GCh;r|n1ET(q<3t@gV8~-584jl6j!UXfQe-Nh7 zTMhGnC5*}RPr{f?|0Imb^zRANGJ0i9c=5}nqLY6s-?1vI-MT^fra!bC)uw#AkWOv7 z1*b=5@XT{V4u4bZo0WrVWen5YlG~r2XHE9jAZ!y}Q$I8o;W9mvRS+N(ypP)Te zlhvL|mOMl><{q|#^uZNT4QUq4)WMeKKyE)NUD_-8LG6x*d1yR*CTAcIK9Bz-d*}u> zhDVB-;*@wGo`}cdnJ~*9IawYmUy^Gon-r&7L9GgE=AtrMDXQ#~o6DC(Q*o5n;TNDT zN->o^qBrOjdI31IiT*(QL-oEP-;jg&B$^}TSk_1rP#~z5>3Am8M=B@;3qB5dVFTKa zuArB|8!L8$5(&bgI6t=Gv+(ZjNM)pJmSkz0w)Yopj6O`0+ zTo0dzwOP6yLtv;gbN4zO@OjGyD7qOs^MI*Q7|Eza*!@JhYsb)}z+= z3a&%42?G^Yfksh650M3A0+|dNY8%WTC&+HH49?Pk6ecQpf$!t%_#EB~3Uo1^i|4>& z7M_6ng7&I~zr=~p|B5R6H(`!e+4q4V?^iz8Fdu!@SlB%KgNB)9)=k;qVe(r3qhYq< z;wBTgq@o`*OdMNfDa}o$i{^`eYnb)wMpGZ<(~-C5oTr&gx6HTx-skPeci@tqnLlb6 zlSu=Y^!W$_m-KPuziAkwRPRz5@!1J46UUcU%Wf~odvzRK2Y<(i>Ul098)e100PV z8y#Jo!(A`j-+L2%*Z5uY&kk_pxfc*0aL4bJPr7G?v!KJzHQ8r%p4}nehnWg*jGP)% zFK&0-h1egXlZ#pkRVXkqXlTGbAk1i=?LMb`miWZ@eC?g@S>Voc)puGQJ8cuKql_JT zN&TqSSM$@>sMXXQrKe(3_Q*@*)pCxUPf1sHgLA2`4p0ZHO;t^usrV@~}R%>3HaO}=Fwu5I4_FIner}KQUVnpFAg*9jKjIvF% zIlT=v_yl}FHBjj#L5+9DeQ*cxMi?JJXHXTGNtcimx|SlSwt`G!CukN8r9YEUG9A3b zIdmFSJi#wvHXn7pXn=F8mKaltz|3OI93;4y`7E#g;s@@13F~T9kd9W3-`Ak z9}Eg)Jb2B)yf5#-t8pK`hqYx-=op$pgQy?%2bXl8tR(e8b&bR6;F6Nbang)}dt!;K z8Y{=bnVIc|E2>02P~(BL73jhzG!F}6ujq2n4vPsVUttxWL4Tkns5c4&)|QnvSSrKZ z@fG-LES=l->;5 zst+!XC0LSyHHj~#PT%{skWESWNco@Muc5a&%iEvN2~+?5pvf@Cnljl(!u(*i0%0=k z9|^Mo=LfM&2HNo|eQvB~0^*-}!7oAL(H-RjZ=~ zBmv7lGN)o07F^X*7T-($9b1~k9nVXA9@#fZ+ND=r#biAis(<}5!wp-Y0n$~px^?b`wQ(Tx<0y1 z?6lbGF$*JaM05{Z8uBX7dS8D}DW}~&+?sBz(79eu%T&KnGUTCR7q7)_{2E)vNT7^7453xtykKR&Fad zm29Pk@{4>$+~rr;Jy6|yU`|>DGgCP-AJliebkba2iUkUE!Uc#gjbn9r0}(Foki(TW z$`ECeG8c|;NO`FEskPK8>R)QK)>HdVo2m8FVzq;6L-nN66i75ccFIddvN*xJb1UD% z#=x?b`SGFrI*%1CMJJf;qs1$51^sz(ev3_o>pDg|QcM?-)}$ol2Q|r1vWuv+ENuq^geA49^^jb+{DkY#jH20#gbsD!P>JCY$2pp2ialvJ8T)r zI=yGyXW%#*@ zme?UKh^yj^*ea%oM#3TX@X?TTCGt>i=P%eeZ;Lcdc0Q?i`CoQz>k+M+){sR96E+;}NXQ?jLMhGZ86_3F!aREqp zj-btG8Tg?=kdU-R9YOz%2VXQD^+P4mZpkY>GiRCaTJ}mEA*)J;*OQwn710{bHbEj|DG^i!dDl1Q6w>DZ}A%O`%0&lOR4;QjfwRl zn^sSq*kNM#^S$|i$%9@GK0N4L|H{3xI~QtmzVU|IcdI-u7gjo^q#k>v@RQIU!F>Z1 zA79s2+a#m8@r!k|y}dKky~Pvd)6e&NztR3>0#*d<4CoWE(m&NN!{@BKxx-=nrFC=c z@!6fXW&YmbCyFFRcZrRUn-{w+`ef1gh}vPj^W_F=dDi${^6BV}_5`^@T`|s5jzmaN zQmu0hYz)+2YHhStkfRh-Cdp;xD7loJBo~w)iCH2>Y~}U2;P;q6pUJz6;qq_FOI6pe z>3xiC#(raw(Z;YE8}u%Eq>lAl+GXvg_Db{UU+B&C;reR*f-a20MtP%_QNu_!A`FM| zO24A-)@SOq^ix_9t*+WosU*h=7e7aPkQLw>YT$U9%jSy&WwrWPyP*#T7Q?^dKSMHcpFiaf_$?sQ4S1XZSKl8T$6^-DX3#?P7Nj_#bQpa=>ws=J z#;!xP{sIakjy(o%F`4!PI#s2mK;_5LiZl(>z)y4!JrAz!7QIT(Kn}H*&ZFaiGy{Mu zW5J!wfc&L5q$@=rJNXN!GX)av#-uK|iSA?=`4;B$;iM_CkvWia6i20`A>c4CNZp{4 z-7s4>0OgYpLk5jvK%dpa-;!ChGozqjX7agw2(QE~Jezf3`Pel$^K?)%-_f1a!Md^i z%$L{X?ZH)5;$D6VQk-%umu{i6=uG-6Jq|p54)6LmxYjbDW-gPP#0!pVHr&Ar@R&vG z&}U>4@b?5B3(lkl@MQu%i@zXK$!!t=`YHu9(=jp_Jk2#wFw60N?1pDANk_UB?!|Sw z8Qg0E^#%Rc2IyK0G@6;01RP9j}kW?Dne5DYm? zC%S~*q@k=S8wx4*GI;$UNU%=O>U1IGGl{u_j~97IjwHPP<~JW0@_yxW!hCc|!(j97 z4=(9|nVG%?m-O8H{O_c9Gj^NKfJ?G|a7p*MYH0y3=??Up-Y2~Y${X_ra7iCW-kx(f zxTKiRx=YhMCR5)}l3wT<`TldH9sup*KL1U_#D^9O)x#1Bjf$LAtYdujA$IKot71AMkUvXZ5-Yz#GH47|4YAI zKOcX|{|7&_UkTqdpE+KWcciDZ$K!e8{@wkRo4AL&oUYx@pPdVw!<`+S#1-Nh=36vR zxuD`92Sa9se4Q^QtY6`XXf=JEF{ zT`e|SNETj$ju;8K?p=bwOW9~aS|5DTLa6}zGP=uX-Iko^2+=s>&c$c z;WR&_;oXQqmI7e}_?VO6bMAvPdWcS-g`i-9fP4Wc75#*6gSTmfC*y(zHSNy6(o{9D4jbx|L?)kn<4bmUzx z`9Iz2EkKwpK$wr+>dpL!c{32^?Z|t=+)xghZUABa-@Das-u(M+^_h@>kdncD^EC)B z9W|!-_;_>a)5#fS=9H;hc3`<#m9EsN+pu5j!kriQ@)>|Kf9x00^J-dJqgvJdDkhhE zP{v;Rc>Kl^KE+?hmXFyMRVH$Nk&6*hp~3|xg|;n_oxfxL%K7d2r{>!ivNd>IP@}+v zyiM{P3ivg^lxJ8TEpN-b>3L`5ofp_LBrEiCq3EJhBBvB}MU*QrEKio}lF`Z0!QI?* z!rjU>(NWNT#`de-$Jxgk4 zx_)yVaNTy<-4X6!_XSs)>k#m%mh-eT$7S~fc@KEaJ}bQsJ?GrxT!oy+?aOT^tX-^` z)*IFyw(GV?dl`E^`xVD_q->>6YUOnMLWAW zp4iver`S8&!|WSvMQmfOkBn}H+qeNb=sqZ+U?a{*GD;hzj3^@nw2%c->C^fyeXYI( z6wz2cLvNuc=yv_GmaR?DdTFh-T3V78q4{fuMzmaD-C1>~x=Nj`j#CGz-PKlV9kr5L zQLPIdt|7q21?qftGW6Y>swrx5HAanA3#)lmp*~QqfO88{yQv4%Fs*|&8c3P0Rn{EZ zDRr*;6)-gc_Ki^UsV>!`-c*h$+kmi>q0642NXj4JDLcsZmL$S(?rb>atk zuCh%1Ra>C9GUPGtRQFJKizJZ|m&eABB37OOuHXn4T zoy`HYG#|8|2WF6YtPJ14Z6Yyu>ZN?|2}3jczwafzd-{ItfB8Pl=Ne|OS^I~EIfM)R zL&MzWN#@TrOn;^3{|628W6b90%8{aQo$yBmH%6pKwJO%UrKXfXrJ|CL zRvuCBn-&AV?AB>o=V=|rrW%cWs$NalQuIP_miLiug}w!H)N)#R!)5CTUEvju!?0X- zL^}^V*SU7M|L}b44e{yhli^d%=dw56+sxD4-QM-P^P;ne*BHku`(}G#d${eKF;1VMRn%r^t@N5k0qYv;BkOr!7QEdw~0b7Ky8q62zWeS?-)8=?~E1|_JHc3az~w>Ew=&KtXoiAEJ8 zSD&qy(l3F&nXb*&=4lhPwpyUJ7pmE#?ofIu`Jk>E$vN;jrs5R8!UG^>*#=2PeR-rj zU;a@ZC>NDCiDF_UufR3%aC{}vsUo5Kwp;up=7PJN3f0$Czl1xK4KsWJz5r;DA-X^%ci|&hTWTR+qA=-z zGzr~>g!&KYCT~VI+y=f2vjGy4{m@5R18QR%D3346U!)1$NKKG$muIPv<17V@vm1VQ zVZLlD?F_vsCww2FI?beW=`Y}d4uQ{#VHs=_y9e17;yI8lRbp45*B(zpXfiP4CauV( zgV%h 0) { - if((value > 100) || ((control & 1) && (thousandplex==0))) + if((control & 2) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)) { - if((tr->langopts.numbers & NUM_HUNDRED_AND) || ((tr->langopts.numbers & NUM_HUNDRED_AND_DIGIT) && (tensunits < 10))) + // Don't use "and" if we apply ordinal to both hundreds and units + } + else + { + if((value > 100) || ((control & 1) && (thousandplex==0))) + { + if((tr->langopts.numbers & NUM_HUNDRED_AND) || ((tr->langopts.numbers & NUM_HUNDRED_AND_DIGIT) && (tensunits < 10))) + { + Lookup(tr, "_0and", ph_hundred_and); + } + } + if((tr->langopts.numbers & NUM_THOUSAND_AND) && (hundreds == 0) && ((control & 1) || (ph_thousands[0] != 0))) { Lookup(tr, "_0and", ph_hundred_and); } } - if((tr->langopts.numbers & NUM_THOUSAND_AND) && (hundreds == 0) && ((control & 1) || (ph_thousands[0] != 0))) - { - Lookup(tr, "_0and", ph_hundred_and); - } } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index e7b1a543..e4766485 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.14 22.Feb.12"; +const char *version_string = "1.46.17 05.May.12"; const int version_phdata = 0x014600; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 81d8665d..01c4cfc1 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1076,6 +1076,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable tr->langopts.stress_flags = 0x6 | 0x10 | 0x2000 | 0x20000; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN; + tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL; SetLetterVowel(tr,'y'); ResetLetterBits(tr,0x2); SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y