@@ -620,6 +620,7 @@ ablaut ablaUt | |||
aborigine ab@r'IdZ@ni | |||
abracadabra abr@k@d'abr@ | |||
absence abs@ns | |||
absent $1 | |||
absent abs'Ent $verb | |||
absentia abs'Ent2i:@ | |||
absinthe absInT | |||
@@ -902,6 +903,7 @@ bias baI@s | |||
biased baI@st | |||
bible baIb@L | |||
bidet bi:deI | |||
bigot bIg@t // -ed | |||
bijou bi:Zu: | |||
bikini bIk'i:ni | |||
binman bInman | |||
@@ -1606,6 +1608,7 @@ gourmet gU@meI | |||
graduate gradju:@t | |||
graduate gradju:eIt $verb | |||
graffiti $alt3 | |||
grandson gr'andsVn | |||
gredient gri:di@nt // ingredient | |||
grenade gr@neId | |||
griffon grIf@n |
@@ -4082,6 +4082,7 @@ | |||
m) otor oUt3 | |||
n) o (tor oU | |||
otro (py '0tr@ | |||
&) o (try @ | |||
c) otyle 0tIl'i: | |||
m) o (x @ | |||
o (x++ 0 | |||
@@ -4192,7 +4193,6 @@ | |||
?3 ag) on (_ 0n | |||
rg) on (_ @n | |||
&s) on (_ @n | |||
ds) on (_ Vn | |||
&t) on (_ @n | |||
&tr) on (_ 0n | |||
fl) on (_ 0n | |||
@@ -4209,7 +4209,9 @@ | |||
pers) on @n | |||
pers) on (i '0n | |||
postp) on 'oUn | |||
_sp) on 0n | |||
on (ald 0n | |||
&) on (age_ @n | |||
d) on (at %oUn | |||
on (an_ oUn | |||
_) on (io Vn | |||
@@ -4585,7 +4587,7 @@ | |||
?3 h) ov (er Vv | |||
l) ov Vv | |||
l) ov (e Vv | |||
_l) ove Vv | |||
_l) ove (@ Vv | |||
cl) ov (e oUv | |||
_sl) ov (enA oUv | |||
pl) ov oUv |
@@ -244,6 +244,7 @@ | |||
@) ent (st_ 'Ent | |||
@) ent (ste_ 'Ent | |||
ag) ent 'Ent | |||
X) es (_ Es | |||
@j) es (_S1 s | |||
@z) es (_S1 s | |||
@) es (_S2qd 'Es // double the previous vowel | |||
@@ -323,6 +324,7 @@ | |||
_) ge (@P2 Q@ | |||
ge (bied Q@ | |||
_) gee Qe: | |||
_) gei QEI | |||
gener (aal Q,e:n@r | |||
_) gelijk Q@lEIk | |||
_) ge (rC QE | |||
@@ -628,8 +630,10 @@ _) inn (@P2 'I // ?? inneren | |||
sj S | |||
@) sje (_ sj@ | |||
@) s (_S1 s | |||
a) s (_ s | |||
@) s (_$w_alt =s | |||
_) samen(@P5 s'a:m@n | |||
sc (oop sk | |||
sc (opi sk | |||
&) sel (_ =s@l |
@@ -757,12 +757,10 @@ der $alt | |||
derdes $alt | |||
desapego $alt2 $noun | |||
descabelo $alt | |||
desce $alt | |||
descem $alt | |||
descordo $alt | |||
desespero $alt2 $noun | |||
desfecho $alt2 | |||
desprezo $alt $verb | |||
desprezo $alt2 $noun | |||
deveras $alt | |||
dez $alt | |||
diarreia $alt | |||
@@ -781,10 +779,17 @@ encosto $alt $verb | |||
endereço $alt2 | |||
endereço $alt $verb | |||
enforco $alt | |||
enforque $alt | |||
enforquem $alt | |||
engordo $alt | |||
enumerem $alt | |||
ensopa $alt | |||
ensopam $alt | |||
ensope $alt | |||
ensopem $alt | |||
ensopo $alt | |||
enredo $alt $verb | |||
enterro $alt2 $noun | |||
enumerem $alt | |||
envelope $alt | |||
envolto $alt2 | |||
enxerto $alt2 $noun | |||
@@ -818,8 +823,6 @@ estorvo $alt $verb | |||
etiqueta $alt2 | |||
europa $alt | |||
exagero $alt $verb | |||
expeça $alt2 | |||
expeço $alt2 | |||
explore $alt | |||
faceta $alt2 | |||
farelo $alt | |||
@@ -833,14 +836,15 @@ fezes $alt | |||
fizerdes $alt | |||
fizermos $alt | |||
foda $alt2 $verb | |||
folheto $alt2 | |||
folga $alt | |||
fogos $alt | |||
foguete $alt2 | |||
foice $alt2 | |||
forca $alt2 | |||
força $alt2 $noun | |||
forço $alt | |||
forças $alt2 | |||
forço $alt | |||
fordes $alt2 | |||
fores $alt2 | |||
forro $alt $verb | |||
@@ -882,10 +886,9 @@ joguem $alt | |||
joguete $alt2 | |||
lambreta $alt2 | |||
lebre $alt | |||
lerda $alt | |||
lerdo $alt | |||
líderes $alt2 | |||
lopes $alt | |||
maior $alt | |||
maleta $alt2 | |||
mantiverdes $alt | |||
mantiveres $alt | |||
@@ -894,6 +897,8 @@ marcelo $alt | |||
marmelo $alt | |||
marreta $alt2 | |||
martelo $alt | |||
melhor $alt | |||
menor $alt | |||
merda $alt | |||
megera $alt | |||
melo $alt | |||
@@ -917,8 +922,7 @@ morda $alt2 | |||
moreia $alt | |||
mortos $alt | |||
motora $alt2 | |||
?2 mulher mulj'Er | |||
?4 mulher mul^'Er | |||
mulher $alt | |||
mui mwi | |||
muito mw'iNtU // -s is included as a suffix | |||
muita mw'iNt& | |||
@@ -931,8 +935,6 @@ naquele $alt2 $nounf | |||
nervo $alt2 | |||
novos $alt | |||
obstetra $alt | |||
obsoleta $alt2 | |||
obsoleto $alt2 | |||
obtivera $alt | |||
obtivermos $alt | |||
odisseia $alt | |||
@@ -948,6 +950,7 @@ pachorra $alt2 | |||
paexa paeSa | |||
palacete $alt2 | |||
palheta $alt2 | |||
panfleto $alt2 | |||
pangeia $alt | |||
pantera $alt | |||
paralelo $alt | |||
@@ -956,15 +959,12 @@ pastora $alt2 | |||
pedra $alt | |||
pelego $alt2 | |||
pelo $alt $verb | |||
perde $alt | |||
perdem $alt | |||
pesa $alt | |||
pesam $alt | |||
pesque $alt | |||
pesquem $alt | |||
peso $alt $verb | |||
piloto $alt2 $noun | |||
pintora $alt2 | |||
pior $alt | |||
pirueta $alt2 | |||
plateia $alt | |||
plebeia $alt | |||
@@ -976,8 +976,7 @@ portos $alt | |||
pose $alt2 | |||
povos $alt | |||
poxa p'oS& | |||
preta $alt2 | |||
preto $alt2 | |||
preço $alt2 | |||
primavera $alt | |||
provo $alt | |||
puder $alt | |||
@@ -985,6 +984,7 @@ puderdes $alt | |||
pudermos $alt | |||
puserdes $alt | |||
quarteto $alt2 | |||
queda $alt | |||
quinteto $alt2 | |||
quiserdes $alt | |||
quisermos $alt | |||
@@ -1018,8 +1018,6 @@ rosno $alt | |||
rumores $alt2 | |||
saleta $alt2 | |||
sarjeta $alt | |||
severa $alt | |||
severo $alt | |||
seborreia $alt | |||
seca $alt2 $noun | |||
secas $alt2 | |||
@@ -1030,11 +1028,9 @@ selvagem seUv'aZeIN | |||
sexteto $alt2 | |||
?1 senhora $alt2 | |||
senhores $alt2 | |||
sincera $alt | |||
sincero $alt | |||
sinopse $alt | |||
sobe $alt | |||
sobem $alt | |||
sobem $alt | |||
soco $alt2 | |||
soco $alt $verb | |||
sofrem $alt | |||
@@ -1042,7 +1038,7 @@ sofre $alt | |||
sofreste $alt2 | |||
sogra $alt | |||
sopre $alt | |||
soprem $alt | |||
soprem $alt | |||
sopro $alt $verb | |||
soro $alt2 | |||
sorvete $alt2 | |||
@@ -1052,8 +1048,6 @@ soubermos $alt | |||
suborno $alt $verb | |||
sufoco $alt2 $noun | |||
sufocos $alt2 | |||
sugere $alt | |||
sugerem $alt | |||
suporto $alt | |||
suor swOr | |||
tapete $alt2 | |||
@@ -1098,8 +1092,6 @@ zero $alt | |||
zorra $alt2 | |||
// foreign words | |||
?1 alt 'alt | |||
?2 agosto &g'ostU | |||
@@ -1144,7 +1136,6 @@ zorra $alt2 | |||
?1 install ,inst'al | |||
?2 internet iNtern'Et | |||
?2 Intranet iNtRan'Et | |||
?2 inveja iNv'EZ& | |||
?1 kernel k'Ern,El | |||
?2 kernel k'Ern@l | |||
?1 line l'ain | |||
@@ -1153,16 +1144,6 @@ zorra $alt2 | |||
?1 lock l'Ok | |||
mail m'eIl | |||
mails m'eIls | |||
?1 maior m,&j'Or- | |||
?2 maior maI'Or | |||
?2 maiores maI'O*is | |||
?1 menor myn'Or- | |||
?2 menor men'Or | |||
?2 menores men'O*is | |||
?2 melhor melj'Or | |||
?2 melhores melj'O*is | |||
?4 melhor mel^'Or | |||
?4 melhores mel^'O*is | |||
?2 mouse m'aUzi | |||
?1 menu menu | |||
?1 next n'Ekst | |||
@@ -1173,11 +1154,7 @@ zorra $alt2 | |||
?1 ovo 'ovu | |||
?1 pause p'au:z | |||
page p'eIdZ | |||
?2 pior pi'Or | |||
?2 piores pi'O*is | |||
preço $alt2 | |||
python p'aIT&~N | |||
queda $alt | |||
?1 readme r'i:dmi: | |||
?1 sapi s,ap'i | |||
?1 scanner sk'En&r |
@@ -304,7 +304,7 @@ | |||
?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas. | |||
?1 e (la_ 'E // eg: cadela, janela, vela, etc... | |||
?1 C) e (cC ,E // eg: seleccionar, efectuar, etc... | |||
?1 C) ecç 'Es // eg: selecção, etc... | |||
?1 C) ecç 'Es // eg: selecção, etc... | |||
?1 C) e (ã i // leão, panteão, etc. | |||
?1 C) e (a i // oceano, etc. | |||
?1 C) e (o 'i // eg: geologia, etc... | |||
@@ -345,69 +345,69 @@ | |||
sf) e (ra_ E // esfera, biosfera | |||
//sort | |||
_com) e (L05_ e | |||
fiz) e (L05_ E | |||
tiv) e (L05_ E // es- | |||
_com) e (L05_ e | |||
_coub) e (L05_ E | |||
_exag) e (L05_ E | |||
_houv) e (L05_ E | |||
_perd) e (L05_ e | |||
_soub) e (L05_ E | |||
tiv) e (L05_ E // es- | |||
_rend) e (L06_ e | |||
_vend) e (L06_ e | |||
_atend) e (L06_ e | |||
_compreend) e (L06_ e | |||
_entend) e (L06_ e | |||
_estend) e (L06_ e | |||
_rend) e (L06_ e | |||
_vend) e (L06_ e | |||
respond) e (L06_ e // cor- | |||
bat) e (L07_ e // re- com- | |||
ced) e (L07_ e // pro- con- su- | |||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
viv) e (L07_ e // re- | |||
_beb) e (L07_ e | |||
_com) e (L07_ e | |||
_tem) e (L07_ e | |||
colh) e (L07_ e // & es- | |||
corr) e (L07_ e // per- con- in- so- dis- | |||
torc) e (L07_ e // con- | |||
venc) e (L07_ e // con- | |||
vert) e (L07_ e // in- re- con- | |||
_eleg) e (L07_ e | |||
_ergu) e (L07_ e | |||
_mord) e (L07_ e | |||
_morr) e (L07_ e | |||
_perd) e (L07_ e | |||
_sofr) e (L07_ e | |||
merec) e (L07_ e // des- | |||
padec) e (L07_ e // com- | |||
parec) e (L07_ e // a- rea- com- desa- | |||
_aborrec) e (L07_ e | |||
_rejuvenec) e (L07_ e | |||
_adoec) e (L07_ e | |||
_adormec) e (L07_ e | |||
_amanhec) e (L07_ e | |||
_anoitec) e (L07_ e | |||
_arrepend) e (L07_ e | |||
_beb) e (L07_ e | |||
_com) e (L07_ e | |||
_defend) e (L07_ e | |||
_depend) e (L07_ e | |||
_eleg) e (L07_ e | |||
_enlouquec) e (L07_ e | |||
_entristec) e (L07_ e | |||
_envaidec) e (L07_ e | |||
_envelhec) e (L07_ e | |||
_ergu) e (L07_ e | |||
_esclarec) e (L07_ e | |||
_escond) e (L07_ e | |||
_escurec) e (L07_ e | |||
_esquec) e (L07_ e | |||
_interromp) e (L07_ e | |||
_mord) e (L07_ e | |||
_morr) e (L07_ e | |||
_obedec) e (L07_ e | |||
_perd) e (L07_ e | |||
_sofr) e (L07_ e | |||
_tem) e (L07_ e | |||
_perec) e (L07_ e | |||
_rejuvenec) e (L07_ e | |||
aprend) e (L07_ e // re- | |||
bat) e (L07_ e // re- com- | |||
ced) e (L07_ e // pro- con- su- | |||
colh) e (L07_ e // & es- | |||
conhec) e (L07_ e // & re- des- | |||
corr) e (L07_ e // per- con- in- so- dis- | |||
entend) e (L07_ e | |||
merec) e (L07_ e // des- | |||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
padec) e (L07_ e // com- | |||
parec) e (L07_ e // a- rea- com- desa- | |||
preend) e (L07_ e // sur- com- | |||
_perec) e (L07_ e | |||
respond) e (L07_ e // cor- | |||
torc) e (L07_ e // con- | |||
venc) e (L07_ e // con- | |||
vert) e (L07_ e // in- re- con- | |||
viv) e (L07_ e // re- | |||
qu) e (brL04_ E | |||
_hosp) e (dL03_ E | |||
_d) e (vL03_ e | |||
_gr) e (gL03_ e | |||
_n) e (grL03_ e | |||
_estr) ei (L03_ EI | |||
@@ -416,57 +416,67 @@ respond) e (L07_ e // cor- | |||
_s) e (quL02_ E | |||
_p) e (quL02_ E | |||
l) e (que_ E | |||
_sug) e (rL02_ E | |||
_imp) e (rL03_ E | |||
_sev) e (rL03_ E | |||
_reit) e (rL03_ E | |||
_sinc) e (rL03_ E | |||
_g) e (rL04_ E | |||
_op) e (rL04_ E | |||
_qu) e (rL04_ E | |||
_alt) e (rL04_ E | |||
_sup) e (rL04_ E | |||
_tol) e (rL04_ E | |||
_ven) e (rL04_ E | |||
_coop) e (rL04_ E | |||
_temp) e (rL04_ E | |||
_ven) e (rL04_ E | |||
_v) e (rbL03_ E | |||
_p) e (rdL02_ E | |||
_l) e (rdL03_ E | |||
_h) e (rdL04_ E | |||
_) e (rguL02_ E | |||
_alb) e (rguL02_ E | |||
_enx) e (rguL02_ E | |||
_bez) e (rrL03_ e | |||
_rejuven) e (çL03_ e | |||
_inv) e (rtL03_ e | |||
_f) e (rvL03_ e | |||
_p) e (sL01_ E | |||
_d) e (scL02_ E | |||
_p) e (scL03_ E | |||
_m) e (sclL04 E | |||
_l) e (ssL02_ e | |||
_esp) e (ssL03_ e | |||
_m) e (tL03_ e | |||
_com) e (tL03_ e | |||
_rem) e (tL03_ e | |||
prom) e (tL03_ e // com- | |||
_derr) e (tL03_ e | |||
_rem) e (tL03_ e | |||
_obsol) e (tL03_ e | |||
_pr) e (tL03_ e | |||
_sol) e (trL03_ E | |||
_pen) e (trL04_ E | |||
_atr) e (vL03_ e | |||
scr) e (vL03_ e // e- in- pre- ree- de- | |||
_pr) e (zL04_ E | |||
_d) e (vL03_ e | |||
_atr) e (vL03_ e | |||
_embel) e (zL04_ E | |||
pr) e (zL04_ E / des- menos- | |||
_acont) e (çL01_ e | |||
_arref) e (çL01_ e | |||
par) e (çL03_ e // a- re- com- rea- desa- | |||
_ado) e (çL03_ e | |||
_aqu) e (çL03_ e | |||
_car) e (çL03_ e | |||
_estrem) e (çL03_ e | |||
_mer) e (çL03_ e | |||
_pad) e (çL03_ e // com- | |||
_per) e (çL03_ e | |||
par) e (çL03_ e // a- re- com- rea- desa- | |||
_rejuven) e (çL03_ e | |||
conh) e (çL03_ e // re- | |||
_esqu) e (çL03_ e | |||
_forn) e (çL03_ e | |||
_obed) e (çL03_ e | |||
_ofer) e (çL03_ e | |||
abast) e (çL03_ e // re- | |||
_aborr) e (çL03_ e | |||
_fortal) e (çL03_ e | |||
_ado) e (çL03_ e | |||
_amanh) e (çL03_ e | |||
_anoit) e (çL03_ e | |||
_enfraqu) e (çL03_ e | |||
@@ -476,8 +486,8 @@ _entrist) e (çL03_ e | |||
_envaid) e (çL03_ e | |||
_envelh) e (çL03_ e | |||
_esclar) e (çL03_ e | |||
_forn) e (çL03_ e | |||
conh) e (çL03_ e // re- | |||
_estrem) e (çL03_ e | |||
_fortal) e (çL03_ e | |||
//endsort | |||
@@ -787,6 +797,8 @@ _desenv) o (lvL02_ O | |||
_m) o (rrL01_ o | |||
_c) o (spL02_ O | |||
p) ostos (_ Ost=Us# // dispostos etc. | |||
_s) o (bL02_ O | |||
_s) o (prL02_ O | |||
//endsort | |||
.group ô |
@@ -379,6 +379,7 @@ tamil தமிழ் $text | |||
பாதிக்கக் $alt | |||
புசு $alt | |||
புஸு $alt | |||
பாதிக்காம $alt | |||
// initial த as [d] | |||
@@ -398,7 +399,6 @@ tamil தமிழ் $text | |||
தைவதம் $alt | |||
தாட்சண்யம் $alt | |||
தனம் $alt | |||
திக்கற்ற $alt | |||
தானு $alt | |||
திட $alt | |||
தோ $alt | |||
@@ -446,6 +446,8 @@ tamil தமிழ் $text | |||
தம்ம $alt | |||
தாயம் $alt | |||
திமு $alt | |||
தாவா $alt | |||
// initial ட | |||
டார்ச் t.a:rtS |
@@ -1,6 +1,6 @@ | |||
/*************************************************************************** | |||
* Copyright (C) 2009 to 2012 by Jonathan Duddington * | |||
* Copyright (C) 2009 to 2013 by Jonathan Duddington * | |||
* email: [email protected] * | |||
* * | |||
* This program is free software; you can redistribute it and/or modify * | |||
@@ -168,6 +168,7 @@ | |||
_) க (ங்கூலி gV | |||
_) க (ங்கை gV | |||
_) க (ங்கோத gV | |||
_) கஜ (க்ஸ்தான kVzV | |||
_) க (ஞ்சா gV | |||
_) க (டகட gV | |||
_) க (டத்தில gV | |||
@@ -224,6 +225,7 @@ | |||
_) க (லீர gV | |||
_) க (லீல gV | |||
_) க (லீஷிய gV | |||
_) கல்த (ா gVlt | |||
_) க (ளுக் gV | |||
_) க (வண gV | |||
_) க (வன gV | |||
@@ -329,6 +331,7 @@ | |||
_) கி (ளாL04ி k | |||
_) கி (ளாL04ு k | |||
_) கி (ளாL04ை k | |||
_) கி (ளாமர g | |||
_) கி (ளாஸ்_ g | |||
_) கி (ளாஸ்_மேட k | |||
_) கிளிக் (_L29 kl.ik | |||
@@ -351,6 +354,7 @@ | |||
_) க (ுகநாத g | |||
_) க (ுகன g | |||
_) க (ுகராஜ g | |||
_) க (ுகா g | |||
_) க (ுகை g | |||
_மன்மதக்) க (ுகை g | |||
_) க (ுஜராத g | |||
@@ -378,10 +382,13 @@ _மன்மதக்) க (ுகை g | |||
_) க (ுண்டத் k | |||
_) க (ுண்டம k | |||
_) க (ுண்டல k | |||
_) க (ுண்டாக்கள k | |||
_) குண்டாந்த (டி gun.d.a:ntV | |||
_) க (ுண்டானில k | |||
_) க (ுண்டானை k | |||
_) க (ுண்டான் k | |||
_) க (ுண்டாவி k | |||
_) க (ுண்டாவை k | |||
_) க (ுண்டி k | |||
_) க (ுண்டின g | |||
_) குண்ட (ூர gun.t.V# | |||
@@ -390,9 +397,11 @@ _மன்மதக்) க (ுகை g | |||
_) க (ுதித் g | |||
_) க (ுதிப் g | |||
_) க (ுதிப்பகுதி k | |||
_) க (ுதியாட்ட g | |||
_) க (ுபீர g | |||
_) க (ுபுகுபு g | |||
_) க (ுபுக் g | |||
_) க (ுபேர g | |||
_) குப் (த gup | |||
_) க (ுப்புன g | |||
_) க (ுப்பென்ற g | |||
@@ -425,10 +434,12 @@ _மன்மதக்) க (ுகை g | |||
_) க (ுருமூர்த்தி g | |||
_) க (ுருரா g | |||
_) க (ுருவடி g | |||
_) க (ுருவருள g | |||
_) க (ுருவா g | |||
_) க (ுருவாய g | |||
_) க (ுருவிட g | |||
_) க (ுருவின g | |||
_) க (ுருவிற்க g | |||
_) க (ுருவு g | |||
_) க (ுருவுடை g | |||
_) க (ுருவை g | |||
@@ -520,6 +531,7 @@ _மன்மதக்) க (ுகை g | |||
_) க (ோர_முடிய k | |||
_) க (ோர_வேண்ட k | |||
_) க (ோரக g | |||
_) க (ோரக்கூட k | |||
_) க (ோரத்_தாண்ட g | |||
_) க (ோரத்தால g | |||
_) க (ோரத்தை g | |||
@@ -553,6 +565,7 @@ _மன்மதக்) க (ுகை g | |||
_) க் (ரீன g | |||
_) க் (ரூப g | |||
_) க் (ரௌண்ட g | |||
_) க் (ளாமர g | |||
_) க் (ளாஸ்_ g | |||
_) க்வ (A kw | |||
_) க் (வாலியர g | |||
@@ -704,6 +717,8 @@ _தொன்ம) க (ால k | |||
தென்) க (ிழ k | |||
_பா) க (ிஸ்தான k | |||
அப) க (ீர்த்தி k | |||
க (ீழே_ k | |||
க (ீழ்_ k | |||
_பல்) க (ு k | |||
மலைக்) க (ுகை g | |||
_பால்) க (ுட k | |||
@@ -767,6 +782,7 @@ _நினைவு) க (ூர k | |||
ம) க (ேசுவர H // need to restrict to _ம) and _வீரம) ?? | |||
சீர்) க (ேட k | |||
_லொ) கேட ke:t.V# | |||
_நசி) க (ேத k | |||
ம) க (ேந்திர H | |||
_ரா) க (ேஷ k | |||
_மு) க (ேஷ k | |||
@@ -842,6 +858,7 @@ _கர்ப்ப) க்கி (ர gg | |||
_வி) க்க (ிரக gg | |||
சத்தியா) க்கி (ரக gg | |||
L03) க்கி (ரஹ gg // a,i | |||
_சத்தியா) க்கி (ரஹ gg | |||
கு) க்கி (ராம gg | |||
அ) க்கி (ராம gg | |||
இ) க்கி (ராம gg | |||
@@ -925,9 +942,12 @@ _துப்பாக்கி) க்க (ுண்ட gg | |||
//sort | |||
_ராஞ்) ச tSV# | |||
எபிL09ே) ச zV# | |||
ராகவா) ச )(ாரி tS | |||
_ப) சக் tSVk | |||
_) ச (க்கரவர்த்தி tSV | |||
_) ச (க்கிலி tSV | |||
_க) ச (க்ஸ்தான zV | |||
சங்க (ர s.VNkV | |||
_) ச (ட்டL08ஸ்கர tSV | |||
_) ச (ட்டினி tSV | |||
@@ -960,6 +980,7 @@ _விமோ) ச (ன tSV | |||
_நீலலோ) ச (னி tSV | |||
_மீனலோ) ச (னி tSV | |||
_) ச (ப்பL11் tSV | |||
_) ச (ப்பலா tSV | |||
_) ச (ப்பா tSV | |||
_) ச (ப்பி tSV | |||
_) ச (ப்பு tSV | |||
@@ -970,6 +991,7 @@ _மீனலோ) ச (னி tSV | |||
_பங்) ச (ர tSV | |||
_பன்) ச (ர tSV | |||
_) சரசு (வதி sVrVs | |||
_ந) சரத் zVrVt | |||
_ந) ச (ருதீன zV | |||
_) சர்ச (ி tSVrtS | |||
_) ச (ர்ச்சில tSV | |||
@@ -984,6 +1006,7 @@ _L04்விட்) ச (ர்லாந்த zV | |||
மருதா) ச (ல tSV | |||
வேதா) ச (ல tSV | |||
_சேஷா) ச (ல tSV | |||
_ஹிமா) ச (ல tSV | |||
_தணிகா) ச (ல tSV | |||
அருணா) ச (ல tSV | |||
வெங்கடா) ச (ல tSV | |||
@@ -1025,7 +1048,18 @@ _தணிகா) ச (ல tSV | |||
ஆ) ச (ாரங்கள tS | |||
ஆ) ச (ாரத் tS | |||
ஆ) ச (ாரம tS | |||
_ரங்கா) ச (ாரி tS | |||
_வரதா) ச (ாரி tS | |||
_வேதா) ச (ாரி tS | |||
_கிருஷ்ணமா) ச (ாரி tS | |||
_தேசிகா) ச (ாரி tS | |||
_பட்டா) ச (ாரி tS | |||
அனந்தா) ச (ாரி tS | |||
அன்னமா) ச (ாரி tS | |||
ஆ) ச (ாரிய_ tS | |||
ஆ) ச (ாரியார tS | |||
அ) ச (ாருதீன z | |||
_) ச (ாருமதி tS | |||
_) சாருலத (ா tSa:rUlVt | |||
_) ச (ாருவ tS | |||
_ஹ) ச (ாரே z | |||
@@ -1086,6 +1120,7 @@ _தணிகா) ச (ல tSV | |||
_) சிம்பன்ச (ி tSimpVnz | |||
_மலே) ச (ிய s. | |||
இந்தோனே) ச (ிய s. | |||
_) ச (ியர்ஸ tS | |||
_பக்தி_) சிரத் (தை srVd | |||
_) சிரத்த (ைL27 srVdd | |||
சி (ரம s | |||
@@ -1203,10 +1238,12 @@ _மங்களே) சு (வர s | |||
_) ச (ேரி tS | |||
_தல) ச (ேரி tS | |||
_) ச (ேர்கள tS | |||
_) ச (ேர்மன tS | |||
_) ச (ேர்மேன tS | |||
_) ச (ேலஞ் tS | |||
_) ச (ேஷ்டை tS | |||
_) ச (ேஸ்_ tS | |||
_) சைத (ன்ய tSaItV | |||
_) ச (ைத்திய tS | |||
_) ச (ைனா tS | |||
_) ச (ைனா_நேவால s | |||
@@ -1214,12 +1251,14 @@ _மங்களே) சு (வர s | |||
_) ச (ைனீஸ tS | |||
_) ச (ோட்டா tS | |||
ஓ) ச (ோன z | |||
அரி) ச (ோன z | |||
_) ச (ோன்ன tS | |||
_) ச (ோவு tS | |||
_) ச (ோவெ tS | |||
_) ச (ௌக்கிதார tS | |||
_) ச (ௌதரி tS | |||
_) ச (ௌதிரி tS | |||
_) ச (ௌத்தாலா tS | |||
_) சௌப (ாத்தி tSaUp | |||
_) ச (ௌபே tS | |||
_) ச (ௌஹான tS | |||
@@ -1246,11 +1285,16 @@ _மங்களே) சு (வர s | |||
_ப) ஜ (ார z | |||
அ) ஜ (ாருதீன z | |||
_நா) ஜ (ி z | |||
_) ஜிப்(_ zip | |||
_) ஜ (ிப்ப z | |||
_) ஜ (ியா z | |||
_) ஜ (ீனத் z | |||
_) ஜ (ீப்ரா z | |||
_) ஜ (ீரோ z | |||
_) ஜ (ுல்ஃபி z | |||
_) ஜ (ுல்பி z | |||
_) ஜு (வால dZ | |||
_) ஜ (ெனித் z | |||
_) ஜ (ெராக்ஸ z | |||
//endsort | |||
@@ -1401,9 +1445,11 @@ _செண்) டிமெண்ட t.imen.t.V# | |||
_) டி (ரங் t. | |||
_) டி (ரங்கு t. | |||
_) டி (ரபிள t. | |||
_) டி (ரம d. | |||
_) டிரம்பெட் t.rVmpet. | |||
_) டிர (ஸ d.re | |||
_) டிர (ஸ்ட t.rV | |||
_) டி (ரா_ d. | |||
_) டிராஃபிக் t.ra:fik | |||
_) டி (ராகுலா d. | |||
_) டிராக் t.ra:k | |||
@@ -1427,12 +1473,15 @@ _செண்) டிமெண்ட t.imen.t.V# | |||
_) டி (ராயிங் d. | |||
கொலஸ்) டி (ரால _|t. | |||
_) டி (ராலி t. | |||
_) டி (ராவ d. | |||
_) டி (ராவல t. | |||
_) டி (ராவெல t. | |||
_) டிரிக (ர t.riggV | |||
_) டிரிக் t.rik | |||
_) டிரிக்க (ர t.riggV | |||
_) டி (ரிங்_ t. | |||
_) டி (ரிங்க் d. | |||
_) டி (ரிங்ஸ d. | |||
_) டிரினிட (ி t.rinit. | |||
_) டிரிப் t.rip | |||
_) டி (ரிம் t. | |||
@@ -1518,6 +1567,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_) டைப (ாய்ட t.aIf | |||
_) டைப் t.aIp | |||
_) ட (ைம்_ t. | |||
_) ட (ைல்ஸ t. | |||
_) டொக் t.ok | |||
_) ட (ோக்கன t. | |||
_) ட (ோக்கியோ t. | |||
@@ -1527,6 +1577,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_) டோரண்ட (ோ t.o:rVn.t. | |||
_ப்ரி) ட (ோரிய t. | |||
_) டோர்னமெண்ட t.o:rnVmen.t.V# | |||
_) ட (ோலிவுட் t. | |||
_லே) ட் t. | |||
@மெண்) ட் t. // -ment | |||
_பேண்) ட் t. | |||
@@ -1535,6 +1586,11 @@ _ஹெல்மெ) ட் t. | |||
ல) ட்சு (மண ks. | |||
ல) ட்சு (மி ks. | |||
_ல) ட்ட d.d.V# | |||
_கோலிவு) ட்ட d.d.V# | |||
_டோலிவு) ட்ட d.d.V# | |||
_பாலிவு) ட்ட d.d.V# | |||
_மாலிவு) ட்ட d.d.V# | |||
_ஹாலிவு) ட்ட d.d.V# | |||
_ரெ) ட்ட (ிய d.d. | |||
இ) ட்ட (ிலி d.d. | |||
அப்பாயிண்) ட்மெண்ட t.men.t.V# | |||
@@ -1577,6 +1633,7 @@ _ஹெல்மெ) ட் t. | |||
_) ட்ரிக (ர t.riggV | |||
_) ட்ரிக் t.rik | |||
_) ட்ரிக்க (ர t.riggV | |||
_) ட் (ரிங்_ t. | |||
_நியூ) ட் (ரின t. | |||
_) ட்ரினிட (ி t.rinit. | |||
_) ட் (ரிம் t. | |||
@@ -1642,6 +1699,8 @@ _நடுரோ) ட் (ல t. | |||
ஸ்) த (B t | |||
ப்) த tV | |||
ப்) த (B t | |||
ட்) த tV | |||
ட்) த (B t | |||
த் (_த t | |||
// exceptions, த as [d] | |||
@@ -1654,6 +1713,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (கன dV | |||
_) த (கி dV | |||
_) த (க்க்ஷிண dV | |||
_) த (க்ஷன dV | |||
_) த (க்ஷிண dV | |||
_) த (க்ஷிணா dV | |||
_) த (சகண்ட dV | |||
@@ -1686,6 +1746,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (ட்சன dV | |||
_) த (ட்சிண dV | |||
_) த (ண்டக் dV | |||
_) த (ண்டச்செலவ dV | |||
_) த (ண்டச்சோற dV | |||
_) த (ண்டத் dV | |||
_) த (ண்டன dV | |||
@@ -1714,6 +1775,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (னுச dV | |||
_) த (னுஷ dV | |||
_) த (ன்மந்திரி dV | |||
_) த (ன்ய dV | |||
_) த (ன்ராஜ dV | |||
_) த (ன்வந்தரி dV | |||
_) தபதப dVbVdVbV# | |||
@@ -1723,6 +1785,8 @@ _நடுரோ) ட் (ல t. | |||
_) த (ம்பதி dV | |||
_) த (ம்பிடி dV | |||
_) த (ம்மடிL11் dV | |||
_) த (ம்மத் dV | |||
_) த (ம்மம dV | |||
_) த (யவ dV | |||
_) த (யாணந்த dV | |||
_) த (யான dV | |||
@@ -1762,13 +1826,16 @@ _நடுரோ) ட் (ல t. | |||
_) த (ர்ப்பை dV | |||
_) த (ர்ம dV | |||
_) த (லித் dV | |||
_) தலீத் dVli:t | |||
_அகாலி_) த (ள dV | |||
_) த (ளவாய dV | |||
_) த (வக்கால dV | |||
_) த (வக்கோல dV | |||
_) த (வத்த dV | |||
_) த (வப் dV | |||
_) த (வம dV | |||
_) தவுலதாப (ாத dVvUlVda:b | |||
_) த (வே dV | |||
_) த (ாக்கா d | |||
_) த (ாக்காத t | |||
_) த (ாக்காம t | |||
@@ -1804,12 +1871,14 @@ _அகாலி_) த (ள dV | |||
_) த (ாராள d | |||
_) த (ாராவி d | |||
_) த (ாவணி d | |||
_) த (ாவா d | |||
_) த (ாவாக்க d | |||
_) த (ாவாவ d | |||
_) த (ாவேய d | |||
_) த (ாஸ d | |||
_) த (ிகம்பர d | |||
_) த (ிகில d | |||
_) த (ிகுதிகு d | |||
_) த (ிக்கற்ற d | |||
_) த (ிக்கித்த d | |||
_) த (ிக்கில d | |||
_) த (ிக்கு d | |||
@@ -1853,7 +1922,7 @@ _அகாலி_) த (ள dV | |||
_) த (ிம்ம d | |||
_) தி (யாக t | |||
_) தி (யான d | |||
_) தி (யேட்டர t | |||
_) த (ியோபந்த d | |||
_) த (ிரவ d | |||
_) த (ிரவிய d | |||
_) தி (ராட்சை d | |||
@@ -1881,7 +1950,10 @@ _அகாலி_) த (ள dV | |||
_) த (ிவால d | |||
_) த (ிவ்ய d | |||
_) த (ிவ்விய d | |||
_) தீக்ஷணி (ய di:ks.Vn | |||
_) த (ீக்ஷண்ய d | |||
_) த (ீக்ஷிதர d | |||
_) தீட்சணி (ய di:d.tSVn. | |||
_) த (ீட்சண்ய d | |||
_) த (ீட்சித d | |||
_) த (ீட்சை d | |||
@@ -1894,6 +1966,7 @@ _அகாலி_) த (ள dV | |||
_) த (ீரச் d | |||
_) த (ீரத்துட d | |||
_) த (ீரன d | |||
_) த (ீரமிக d | |||
_) த (ீரமில்ல d | |||
_) த (ீரமுட d | |||
_) த (ீரம்மிக d | |||
@@ -1909,6 +1982,7 @@ _) தீர்க்க (_சுமங்கலி di:rggV | |||
_) தீர்க்க (முள்ள di:rggV# | |||
_) தீர்க்க (ம்_ di:rggV | |||
_) தீர்க்க (ாயு di:rggV# | |||
_) த (ீர்க்காலோசனை d | |||
_) த (ீவாளி d | |||
_) து(ரோக d | |||
_) த (ுக்க d | |||
@@ -1923,12 +1997,13 @@ _) தீர்க்க (_சுமங்கலி di:rggV | |||
_) த (ுன்மதி d | |||
_) த (ுன்மார்க்க d | |||
_) த (ுபாய d | |||
_) த (ுபாஷி d | |||
_) த (ுபாஷ d | |||
_) த (ுப்பட்டா d | |||
_) த (ுமளி d | |||
_) த (ுரதிருஷ்ட d | |||
_) த (ுரதிர்ஷ்ட d | |||
_) த (ுரதிஷ்ட d | |||
_) துராக்க (ிர dra:gg | |||
_) த (ுராசை d | |||
_) த (ுரியோதனன d | |||
_) த (ுரியோதனா d | |||
@@ -2041,6 +2116,7 @@ _வசந்) த tV# | |||
_கௌ) த (மி tV | |||
_புல்) த (ரை tV | |||
_மண்) த (ரை tV | |||
_சகுந்) த (லா tV | |||
_சாந்) த (லிங்க tV# | |||
_கீ) த (ா t | |||
_சீ) த (ா t | |||
@@ -2051,6 +2127,7 @@ _வசந்) த tV# | |||
அனி) த (ா t | |||
சுஜா) த (ா t | |||
லலி) த (ா t | |||
_சமந்) த (ா t | |||
_சுனி) த (ா t | |||
_மம்) த (ா t | |||
_ஹரி) த (ா t | |||
@@ -2163,9 +2240,13 @@ L03வ்வு) த்த (ியோக dd | |||
_சுப) த்த (ிர dd | |||
_ரு) த்த (ிர dd | |||
_ரௌ) த்த (ிர dd | |||
_சூ) த்த (ிரச் dd | |||
_சூ) த்த (ிரச்சி dd | |||
_சூ) த்த (ிரத் dd | |||
_சூ) த்த (ிரன dd | |||
_சூ) த்த (ிரப் dd | |||
_சூ) த்த (ிரரி dd | |||
_சூ) த்த (ிரரே dd | |||
_சூ) த்த (ிரர் dd | |||
ஆதி) த்தி (ராவிட dd | |||
_சேஷா) த்த (ிரி dd | |||
@@ -2199,6 +2280,7 @@ _மொழி) த்து (வே dd | |||
_வில்_வி) த்த (ை dd | |||
_வில்வி) த்த (ை dd | |||
_வி) த்த (ைகள dd | |||
_வி) த்த (ைக்க dd | |||
_வி) த்த (ைக்காக dd | |||
_வி) த்த (ைக்கு dd | |||
வி) த்த (ையாக dd | |||
@@ -2296,6 +2378,7 @@ _சி) த்ரலேக (ா trVle:k | |||
_) ப (கீர bV | |||
_) ப (குள bV | |||
_) ப (க்கிங்L06ாம bV | |||
_) ப (க்கீர fV | |||
_) ப (க்கெட் bV | |||
_) ப (க்கென்ற bV | |||
_) பக் (த bVk | |||
@@ -2305,6 +2388,7 @@ _சி) த்ரலேக (ா trVle:k | |||
_) ப (ங்கம bV | |||
_) பங்க (ர bVNkV | |||
_) ப (ங்களா bV | |||
_) ப (ங்களூர bV | |||
_) ப (ங்கார bV | |||
_) ப (ங்க் bV | |||
_) ப (சவகல்யாண bV | |||
@@ -2394,6 +2478,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
_) ப (ராக்_ஒபாமா bV | |||
_) ப (ரிதா_ fV | |||
_) ப (ரிதாவ fV | |||
_) ப (ரீத fV | |||
_) பரூக் fVrU:k | |||
_) ப (ரோட bV | |||
_) ப (ர்ஃபி bV | |||
@@ -2454,6 +2539,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
_) ப (லராம bV | |||
_) ப (லவந்த bV | |||
_) ப (லவான bV | |||
_) ப (லவானவ pV | |||
_) ப (லவீன bV | |||
_) ப (லஹீன bV | |||
_) பலாத்க (ார bVla:dk | |||
@@ -2511,6 +2597,7 @@ _டீயும்_) ப (ன்னும்_ bV | |||
_) பாங்க (ாக் ba:Nk | |||
_) ப (ாங்கில b | |||
_) ப (ாங்க் b | |||
_) ப (ாசிL04 f | |||
_) ப (ாசில f | |||
_) ப (ாசு b | |||
_) பாசுப (த pa:sUpV | |||
@@ -2544,9 +2631,10 @@ _டெட்_) ப (ாடி b | |||
_) ப (ாதிக்கப்பட b | |||
_) ப (ாதிக்கப்பட b | |||
_) ப (ாதிக்கலாம b | |||
_) ப (ாதிக்கவ b | |||
_) ப (ாதிக்கவா b | |||
_) ப (ாதிக்கவில் b | |||
_) ப (ாதிக்காத b | |||
_) ப (ாதிக்காமல b | |||
_) ப (ாதிக்கால p | |||
_) ப (ாதிக்கின்ற b | |||
_) ப (ாதிக்கிற b | |||
@@ -2561,6 +2649,7 @@ _டெட்_) ப (ாடி b | |||
_) ப (ாதிக்கும்_மேற் p | |||
_) ப (ாதிக்கும்_மேற்பட்ட_ p | |||
_) ப (ாதிக்கும்_மேல p | |||
_) ப (ாதிச்ச b | |||
_) ப (ாதித்த b | |||
_) ப (ாதிப்படை b | |||
_) ப (ாதிப்படைகி b | |||
@@ -2603,6 +2692,7 @@ _டெட்_) ப (ாடி b | |||
_) பாப (ாவ ba:b | |||
_) ப (ாபிலோன b | |||
_) ப (ாபுவ b | |||
_டைம்_) ப (ாம b | |||
_) ப (ாமாவ b | |||
_) ப (ாமினி b | |||
_) ப (ாம்பே b | |||
@@ -2616,6 +2706,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) ப (ாரதி b | |||
_) ப (ாரத்த b | |||
_) ப (ாரம b | |||
_) ப (ாரமை p | |||
_) ப (ாரம்பரிய p | |||
_) ப (ாரம்மா p | |||
_) ப (ாரவி b | |||
@@ -2661,6 +2752,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) ப (ாலுவ b | |||
_) ப (ாலே_L25 b | |||
_) ப (ாலை p | |||
_) ப (ாலையா b | |||
_) ப (ால் p | |||
_) ப (ால்_தாக்கரே b | |||
_) பால்க (னி ba:lkV | |||
@@ -2726,6 +2818,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) ப (ினிஷ f | |||
_) ப (ின்_லேடன b | |||
_) ப (ின்னங்கள b | |||
_) ப (ின்னத்த b | |||
_) ப (ின்னத்தால b | |||
_) ப (ின்னத்தை b | |||
_) ப (ின்னம b | |||
@@ -2791,6 +2884,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரமுகர p | |||
_) பி (ரமை b | |||
_) பி (ரமோஷன p | |||
_) பி (ரமோஸ b | |||
_) ப (ிரம்ம b | |||
_) பி (ரம்ம b | |||
_) பி (ரம்மன b | |||
@@ -2805,6 +2899,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரளய p | |||
_) பி (ரவகி p | |||
_) பி (ரவாக p | |||
_) பி (ரவாள p | |||
_) பி (ரவீண p | |||
_) பி (ரவீன p | |||
_) பி (ரவுச b | |||
@@ -2812,6 +2907,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரவேசி p | |||
_) பி (ரஷ் b | |||
_) பி (ரஷ்ட p | |||
_) பி (ரஸ p | |||
_) பி (ரஸல்ஸ b | |||
_) பி (ரஸாத p | |||
_) பி (ரஸ்தா p | |||
@@ -2845,6 +2941,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரான்ச f | |||
_) பி (ரான்தி_ b | |||
_) பி (ரான்ஸ f | |||
_) பி (ராபல்ய p | |||
_) பி (ராப் p | |||
_) பி (ராமண b | |||
_) பி (ராமணன b | |||
@@ -2852,6 +2949,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ராமிக் b | |||
_) பி (ராமின்_ b | |||
_) பி (ராமிஸ p | |||
_) பி (ராம்மண b | |||
_) பி (ராய்லர b | |||
_) பி (ரார்தன p | |||
_) பி (ரார்தி p | |||
@@ -2864,6 +2962,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ராவுக்கு b | |||
_) பி (ராவை b | |||
_) பி (ரிகேட b | |||
_) பி (ரிஜேஷ b | |||
_) பி (ரிட b | |||
_) பிரிட (ோரிய prit. | |||
_) பி (ரிட்டோரிய p | |||
@@ -2887,6 +2986,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரியாவின p | |||
_) பி (ரியாவு p | |||
_) பி (ரியாவை p | |||
_) பி (ரில்லிய b | |||
_) பி (ரிஸ்டன b | |||
_) பி (ரிஸ்டல b | |||
_) பிரிஸ்ப (ேன brisb | |||
@@ -2914,6 +3014,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பி (ரோகிதர p | |||
_) பி (ரௌச b | |||
_) பி (ரௌன b | |||
_) ப (ிர்லா b | |||
_) ப (ிலாஸ்பூர b | |||
_) பிலிடெல்ப (ிய filidelf | |||
_) பிலிம filmV# | |||
@@ -2966,6 +3067,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) ப (ீடித்த p | |||
_) ப (ீடிப்புகை b | |||
_) ப (ீடிய b | |||
_) ப (ீடியாட் p | |||
_) ப (ீட்டில்ஸ b | |||
_) பீட்ரூட் bi:t.ru:t. | |||
_) பீத (ோவன bi:t | |||
@@ -2979,6 +3081,7 @@ _விளையாடு_) ப (ாம்பே p | |||
_) பீ (ராமண b | |||
_) ப (ீராமணர b | |||
_) ப (ீரிட p | |||
_) ப (ீரியட p | |||
_) ப (ீரோ b | |||
_) ப (ீர்_முகமத p | |||
_) ப (ீர்_முஹமத p | |||
@@ -3083,6 +3186,8 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ெங்களூர b | |||
_) ப (ெங்கால b | |||
_) பெசண்ட besVn.t.V# | |||
_) பெச (வாடா bezV | |||
_) பெஜ (வாடா bezV | |||
_) பெஞ்ச ben^tSV# | |||
_) ப (ெஞ்சமின b | |||
_) பெஞ்ச (மின ben^dZV | |||
@@ -3104,6 +3209,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ெப்ரவரி f | |||
_) ப (ெயில f | |||
_) பெரோஸ fero:zV# | |||
_) ப (ெர்க்கிலி b | |||
_) பெர்ட் (ரண்ட bert. | |||
_) ப (ெர்த் b | |||
_) ப (ெர்னாட்ஷா b | |||
@@ -3152,6 +3258,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ைகுக்கு b | |||
_) ப (ைக்கின b | |||
_) ப (ைக்கிற்க b | |||
_) ப (ைக்கில b | |||
_) ப (ைக்குகள b | |||
_) ப (ைக்கும b | |||
_) ப (ைசன b | |||
@@ -3171,6 +3278,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ொம்மனாட்டி p | |||
_) ப (ொம்மல b | |||
_) ப (ொம்மை b | |||
_) ப (ோஃபர்ஸ b | |||
_) ப (ோஃபோர் b | |||
_) ப (ோக_L13 b | |||
_) ப (ோகங்க b | |||
@@ -3188,6 +3296,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ோகிய b | |||
_) ப (ோக்கஸ f | |||
_) ப (ோங்கா b | |||
_) ப (ோங்கானும p | |||
_) ப (ோங்கு b | |||
_) ப (ோஜ b | |||
_) ப (ோடோ b | |||
@@ -3195,6 +3304,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ோட்டோக்க f | |||
_) போட்டோக்ராப (ர fo:t.t.o:gra:fV | |||
_) ப (ோட்டோதான f | |||
_) ப (ோணி b | |||
_) ப (ோண்டா b | |||
_) ப (ோண்டி b | |||
_) ப (ோதகன b | |||
@@ -3223,6 +3333,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ோன்கூட f | |||
_) ப (ோன்லகூட f | |||
_) ப (ோன்ஸ்லே b | |||
_) போப (ர்ஸ bo:fV | |||
_) போப (ால bo:p | |||
_) போப (ோர் bo:f | |||
_) ப (ோரடி b | |||
@@ -3365,6 +3476,7 @@ _விரகதா) ப (+ bV# | |||
_மீள்) ப (தி pV | |||
சீதா) பதி pVti | |||
சேது) பதி pVti | |||
_விடு) ப (தி pV | |||
தரணி) பதி pVti | |||
திரௌ) ப (தி pV | |||
பிரஜா) பத (ி pVt | |||
@@ -3389,6 +3501,7 @@ _ராஷ்டிர) ப (தி pV | |||
_க) ப (த் bV | |||
அரா) பத் fVt | |||
அல்) ப (த் pV | |||
_கிலா) பத் fVt | |||
_தா) ப (த்த bV | |||
வீர) ப (த்தினி pV | |||
_ரிஷி) ப (த்தினி pV | |||
@@ -3419,6 +3532,7 @@ _சொந்த) ப (ந்த bV | |||
_ஊடு) ப (யிர pV | |||
_நடை) ப (யிற்சி pV | |||
கா) ப (ர bV | |||
_ஜெனி) ப (ர fV | |||
நாகா) ப (ரண bV | |||
_ஒலி) ப (ரப் pV | |||
_ஒளி) ப (ரப் pV | |||
@@ -3429,6 +3543,7 @@ _சொந்த) ப (ந்த bV | |||
_கார்) ப (ரேஷன pV | |||
_பம்) ப (ர்_ pV | |||
_கன்) ப (ர்ம fV | |||
இன்) ப (ர்ம fV | |||
கரம்) ப (ற் pV | |||
_தீ) ப (ற்ற pV | |||
ஆள்) ப (ற்ற pV | |||
@@ -3463,6 +3578,7 @@ _முனிசி) ப (ல pV | |||
_ஷில்) ப (ா p | |||
_முஸ்த) ப (ா f | |||
_ஹனி) ப (ா f | |||
_ஹனீ) ப (ா f | |||
_போதும்) ப (ா p | |||
_போலாம்) ப (ா p | |||
_வேண்டாம்) ப (ா p | |||
@@ -3506,8 +3622,10 @@ _வெளிப்) ப (ாக b | |||
ஒரு) ப (ாத p | |||
_படு) ப (ாத p | |||
_மறு) ப (ாத p | |||
பரீதா) ப (ாத b | |||
ஆமதா) ப (ாத b | |||
அL06மதா) ப (ாத b | |||
அலாகா) ப (ாத b | |||
இஸ்லாமா) ப (ாத b | |||
ஒளரங்கா) ப (ாத b | |||
ஔரங்கா) ப (ாத b | |||
@@ -3554,6 +3672,7 @@ _ப்ரின்சி) ப (ால p | |||
முக) ப (ாவ b | |||
அட) ப (ாவ p | |||
வீண்) ப (ாவ p | |||
_படு) ப (ாவ p | |||
அடி) ப (ாவி p | |||
_நவ) ப (ாஷ p | |||
_தமிழ்ப்) ப (ாஷ _b | |||
@@ -3605,6 +3724,7 @@ _கன்னா) ப (ின்னா p | |||
@) ப (ின்னால்_ p | |||
_) ப (ிப்ரவரி f | |||
_லெஸ்) ப (ியன b | |||
_மா) ப (ியா f | |||
_கன்) பி (யுச f | |||
_பெர்) பி (யூம f | |||
_வரப்) பி (ரL04ாத p | |||
@@ -3625,6 +3745,7 @@ _ஞானப்) பிரக (ா prVk | |||
வீண்) பி (ரமை b | |||
துஷ்) பி (ரயோக p | |||
L03ந்தப்) பி (ரளய p | |||
_சொற்) பி (ரவாக p | |||
எக்ஸ்) பிர (ஸ pre | |||
ஆ) பி (ரஹாம b | |||
பயப்) பி (ராந்தி b | |||
@@ -3654,6 +3775,7 @@ L03ந்தப்) பி (ராய p | |||
ஆண்) ப (ிள்ளை p | |||
பெண்) ப (ிள்ளை p | |||
அச்சா) ப (ீ f | |||
_ர) பீக் fi:k | |||
உப) ப (ீட p | |||
விக்கி) ப (ீடியா p | |||
இம்) ப (ீரியல p | |||
@@ -3661,6 +3783,7 @@ L03ந்தப்) பி (ராய p | |||
_அன்) ப (ுட b | |||
_மார்) ப (ுட b | |||
ராஜ) ப (ுதன p | |||
_மின்) ப (ுத்தக p | |||
_) புத்தம்ப (ுத puttVmp | |||
ராஜ) ப (ுத்திர p | |||
வாயு) ப (ுத்திர p | |||
@@ -3679,6 +3802,7 @@ L03ந்தப்) பி (ராய p | |||
_பா) ப (ுலர p | |||
_) பு (ளோரன்ஸ f | |||
மண்) ப (ுழு p | |||
_ஷாம்) ப (ூ p | |||
ப (ூச்சி p | |||
ம்) ப (ூச்சி b | |||
உறுதி) ப (ூண்ட p | |||
@@ -3708,6 +3832,7 @@ _கோலாலம்) ப (ூர p | |||
_கை) ப (ேசி p | |||
_செல்) ப (ேசி p | |||
அலை) ப (ேசி p | |||
_திரை) ப (ேசி p | |||
தொலை) ப (ேசி p | |||
_மறு) ப (ேச்ச p | |||
ஒரு) ப (ேச்ச p | |||
@@ -3732,6 +3857,7 @@ _கோலாலம்) ப (ூர p | |||
_ வெடி) ப (ொரு p | |||
_பழம்) ப (ொருள p | |||
_தொல்) ப (ொருள p | |||
_தேடு) ப (ொறி p | |||
வீண்) ப (ொழுத p | |||
ப (ொழுதிலா_+ p | |||
ப (ொழுதிலும்_+ p | |||
@@ -3743,6 +3869,7 @@ _ வெடி) ப (ொரு p | |||
ப (ொழுதே_+ p | |||
ப (ொழுதோ_+ p | |||
_விலை) ப (ோ p | |||
_பிர) ப (ோL04 p | |||
_ஏக) ப (ோக b | |||
ராஜ) ப (ோக b | |||
ப (ோக_ p | |||
@@ -3780,6 +3907,7 @@ _விலை) ப (ோ p | |||
ப (ோன_ p | |||
ப (ோனது_ p | |||
ப (ோனா p | |||
அல்) ப (ோன்சா f | |||
ப (ோன்ற+ p // ?? end-of-word + suffix ?? | |||
அல்) ப (ோன்ஸ f | |||
ப (ோயிரு p | |||
@@ -3802,7 +3930,9 @@ _விலை) ப (ோ p | |||
_டே) ப (் p | |||
_போ) ப் p | |||
_லாக) ப் p | |||
ஆசி) ப் f | |||
_டெஸ்க்டா) ப் p | |||
ஆ) ப் (கன f | |||
ஆ) ப் (கான f | |||
_பா) ப்க (ார்ன pk | |||
_ர) ப்ச (ர ptSV | |||
@@ -3810,6 +3940,11 @@ _டெஸ்க்டா) ப் p | |||
_லி) ப் (ட f | |||
_மைக்ரோசா) ப் (ட f | |||
_சா) ப்ட் (வேர ft | |||
_ச) ப் (த_ p | |||
_ச) ப்த (மி_ ptV | |||
_ச) ப்த (மிய ptV | |||
_ச) ப் (தரிஷி p | |||
_ச) ப் (தஸ்வர p | |||
_ஹி) ப்னாட (ிச pna:t. | |||
கர்) ப்ப bbV# | |||
_நவா) ப்ப bbV# | |||
@@ -3822,6 +3957,7 @@ _மைக்ரோசா) ப் (ட f | |||
_ர) ப்ப (ர bbV | |||
ஆ) ப்ப (ரிக்க fV | |||
தென்னா) ப்ப (ரிக்க fV | |||
_துர்) ப்ப (ல bbV | |||
உ) ப்ப (லா bbV | |||
உ) ப்ப (லாக bbV | |||
உ) ப்ப (லான bbV | |||
@@ -3837,6 +3973,8 @@ _மைக்ரோசா) ப் (ட f | |||
_ஜ) ப்ப (ார bb | |||
_துர்) ப்ப (ாஷ bb | |||
அ) ப்ப (ாஸ bb | |||
அ) ப்ப (ாஸாமி pp | |||
அ) ப்ப (ாஸ்வாமி pp | |||
உ) ப்ப (ி_ bb | |||
_ட) ப்ப (ிங் bb | |||
உ) ப்ப (ின_ bb | |||
@@ -3848,6 +3986,8 @@ _யாதவ) ப்பி (ரகாச pp | |||
L03) ப்பி (ரகார pp | |||
_வெளி) ப்பி (ரகார pp | |||
அதிக) ப்பி (ரசங்க pp | |||
_வன) ப்பி (ரதேச pp | |||
_காட்டு) ப்பி (ரதேச pp | |||
_நில) ப்பி (ரபு pp | |||
_சத்திய) ப்பி (ரமா pp | |||
மன) ப்பி (ரமை bb | |||
@@ -3861,10 +4001,12 @@ _சத்திய) ப்பி (ரமா pp | |||
_மன) ப்பி (ரவாக pp | |||
_ரத்த) ப்பி (ரவாக pp | |||
இசை) ப்பி (ரவாக pp | |||
உரை) ப்பி (ரவாக pp | |||
இரத்த) ப்பி (ரவாக pp | |||
_ஒL10ி) ப்பி (ரவாக pp | |||
தேச) ப்பி (ரஷ்ட pp | |||
_ஜாதி) ப்பி (ரஷ்ட pp | |||
_வான) ப்பி (ரஸ்த pp | |||
ஆ) ப்பி (ரிக்க f | |||
தென்னா) ப்பி (ரிக்க fV | |||
_கஜ) ப்ப (ிருஷ்ட bb | |||
@@ -4028,6 +4170,8 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
_உ) ஸ்பெக் zbek | |||
_நவா) ஸ zV# | |||
பெர்னாண்ட) ஸ zV# | |||
_ம) ஸ்த (ூர zd | |||
அரி) ஸ (ோன z | |||
.group ஹ | |||
ஹ HV |
@@ -1,4 +1,4 @@ | |||
// This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) | |||
// This ur_list file is prepared by Him Prasad Gautam (Kathmandu, Nepal) | |||
// This file is UTF8 encoded | |||
// Letter Names, Numbers and exceptional pronounciation of Urdu | |||
@@ -162,11 +162,28 @@ _0M5 'khaRab | |||
_dpt _ISaRI'Ia_ | |||
// Exception of phonemes | |||
// pronouns | |||
یہ jE $u | |||
کہ kE $u | |||
وہ wo: $u | |||
پ $u | |||
تم tUm $u | |||
ہم Ham $u | |||
اس Is $u | |||
ان In $u | |||
// unstressed prepositions | |||
کا $u | |||
کی $u | |||
کے $u | |||
سے $u | |||
اور OR $u $brk | |||
// unstressed verbs | |||
ہے $u | |||
ہیں $u | |||
// Pronunciation exceptions | |||
پاکستان p'a:k'i:st'a:n |
@@ -1,4 +1,4 @@ | |||
| |||
// This ur_rules file is written by Him Prasad Gautam (Kathmandu, Nepal). | |||
// This file is UTF8 encoded | |||
// phoneme rules for Urdu | |||
@@ -70,12 +70,14 @@ _) ای i: | |||
وٗ u: | |||
و (L01 v | |||
_) و vV | |||
وع (_ u: | |||
.group ی | |||
ی e: | |||
ی (L01 j | |||
ی (_ i: | |||
_) ی jV | |||
یع(_ i: | |||
.group ے // yeh barree | |||
@@ -244,8 +246,12 @@ _) ای i: | |||
.group ء | |||
ء | |||
.group ہ | |||
.group ہ | |||
ہ H | |||
_) ہ Ha | |||
_) ہ (L01 H | |||
_) ہ (ند HI | |||
ہ (_ a | |||
@@ -4,9 +4,6 @@ language en-gb 2 | |||
language en 2 | |||
gender male | |||
replace 03 I i | |||
replace 03 I2 i | |||
//pitch 80 118 | |||
tunes s1 c1 q1 e1 |
@@ -162,7 +162,7 @@ endphoneme | |||
phoneme @L | |||
vowel starttype #@ endtype l | |||
ipa əl | |||
ipa ə|l | |||
unstressed | |||
length 160 | |||
CALL vowelstart_l |
@@ -168,7 +168,9 @@ phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in Ameri | |||
vowel starttype #a endtype #@ | |||
length 250 | |||
ipa aː | |||
AppendPhoneme(r) | |||
IF NOT nextPhW(r) THEN | |||
AppendPhoneme(r) | |||
ENDIF | |||
FMT(vowelr/aa_r) | |||
endphoneme | |||
@@ -211,7 +213,9 @@ phoneme O@ | |||
vowel starttype #o endtype #@ | |||
length 230 | |||
ipa ɔ | |||
AppendPhoneme(r) | |||
IF NOT nextPhW(r) THEN | |||
AppendPhoneme(r) | |||
ENDIF | |||
FMT(vowelr/oo_r) | |||
endphoneme | |||
@@ -219,7 +223,9 @@ phoneme o@ | |||
vowel starttype #o endtype #@ | |||
length 230 | |||
ipa o | |||
AppendPhoneme(r) | |||
IF NOT nextPhW(r) THEN | |||
AppendPhoneme(r) | |||
ENDIF | |||
FMT(vowelr/oo_r) | |||
endphoneme | |||
@@ -305,7 +311,9 @@ phoneme e@ | |||
vowel starttype #e endtype #@ | |||
length 220 | |||
ipa e | |||
AppendPhoneme(r) | |||
IF NOT nextPhW(r) THEN | |||
AppendPhoneme(r) | |||
ENDIF | |||
FMT(vdiph2/e@) | |||
endphoneme | |||
@@ -314,7 +322,9 @@ phoneme i@3 | |||
vowel starttype #i endtype #@ | |||
ipa ɪ | |||
length 240 | |||
AppendPhoneme(r) | |||
IF NOT nextPhW(r) THEN | |||
AppendPhoneme(r) | |||
ENDIF | |||
FMT(vowelr/i_r) | |||
endphoneme | |||
@@ -380,11 +390,11 @@ phoneme r | |||
liquid rhotic | |||
lengthmod 7 | |||
trill | |||
IF nextPh(isNotVowel) THEN | |||
ChangePhoneme(r/) | |||
ENDIF | |||
CALL base/r | |||
ipa r | |||
endphoneme | |||
@@ -151,7 +151,7 @@ endphoneme | |||
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American | |||
vowel starttype #a endtype #a | |||
ipa ɑːɹ | |||
ipa ɑː|ɹ | |||
IF nextPh(r-) THEN | |||
ipa ɑː | |||
ENDIF | |||
@@ -192,7 +192,7 @@ endphoneme | |||
phoneme O@ | |||
vowel starttype #o endtype #@ | |||
length 250 | |||
ipa ɔːɹ | |||
ipa ɔː|ɹ | |||
IF nextPhW(r) THEN | |||
ipa ɔː | |||
ENDIF | |||
@@ -204,7 +204,7 @@ endphoneme | |||
phoneme o@ | |||
vowel starttype #o endtype #@ | |||
length 250 | |||
ipa oːɹ | |||
ipa oː|ɹ | |||
IF nextPhW(r) THEN | |||
ipa oː | |||
ENDIF | |||
@@ -269,7 +269,7 @@ endphoneme | |||
phoneme e@ | |||
vowel starttype #e endtype #@ | |||
length 280 | |||
ipa ɛɹ | |||
ipa ɛ|ɹ | |||
IF nextPhW(r) THEN | |||
ipa ɛ | |||
ENDIF | |||
@@ -288,7 +288,7 @@ endphoneme | |||
phoneme i@3 | |||
vowel starttype #i endtype #@ | |||
length 280 | |||
ipa ɪɹ | |||
ipa ɪ|ɹ | |||
IF nextPhW(r) THEN | |||
ipa ɪ | |||
ENDIF | |||
@@ -300,7 +300,7 @@ endphoneme | |||
phoneme U@ | |||
vowel starttype #@ endtype #@ | |||
length 250 | |||
ipa ʊɹ | |||
ipa ʊ|ɹ | |||
IF nextPhW(r-) THEN | |||
ipa ʊ | |||
ENDIF |
@@ -44,6 +44,7 @@ | |||
extern void FindPhonemesUsed(void); | |||
extern void DisplayErrorFile(const char *fname); | |||
extern int utf8_in(int *c, const char *buf); | |||
extern int utf8_out(unsigned int c, char *buf); | |||
extern void DrawEnvelopes(); | |||
extern void ReadPhondataManifest(); | |||
@@ -157,6 +158,7 @@ static keywtab_t k_properties[] = { | |||
enum { | |||
kPHONEMESTART = 1, | |||
kUTF8_BOM, | |||
kPROCEDURE, | |||
kENDPHONEME, | |||
kENDPROCEDURE, | |||
@@ -210,6 +212,8 @@ enum { | |||
kTUNE_SPLIT, | |||
}; | |||
static const char utf8_bom[] = {0xef,0xbb,0xbf,0}; | |||
static keywtab_t k_intonation[] = { | |||
{"tune", 0, kTUNE}, | |||
{"endtune", 0, kENDTUNE}, | |||
@@ -250,6 +254,7 @@ static keywtab_t keywords[] = { | |||
{"phonemenumber",tSTATEMENT, kPHONEMENUMBER}, | |||
{"phonemetable",tSTATEMENT, kPHONEMETABLE}, | |||
{"include", tSTATEMENT, kINCLUDE}, | |||
{utf8_bom, tSTATEMENT, kUTF8_BOM}, | |||
{"phoneme", tSTATEMENT, kPHONEMESTART}, | |||
{"procedure", tSTATEMENT, kPROCEDURE}, | |||
@@ -2720,11 +2725,14 @@ int CompilePhoneme(int compile_phoneme) | |||
int keyword; | |||
int value; | |||
int phcode = 0; | |||
int flags; | |||
int ix; | |||
unsigned int c; | |||
int start; | |||
int count; | |||
int c; | |||
char *p; | |||
char number_buf[12]; | |||
char ipa_buf[N_ITEM_STRING]; | |||
char ipa_buf[N_ITEM_STRING+1]; | |||
PHONEME_TAB phoneme_out2; | |||
PHONEME_PROG_LOG phoneme_prog_log; | |||
@@ -2852,32 +2860,58 @@ int CompilePhoneme(int compile_phoneme) | |||
strcpy(item_string," "); | |||
// copy the string, recognize characters in the form U+9999 | |||
p = item_string; | |||
ix = 0; | |||
while((c = *p++) != 0) | |||
flags = 0; | |||
count = 0; | |||
ix = 1; | |||
for(p=item_string; *p != 0;) | |||
{ | |||
p += utf8_in(&c, p); | |||
if((c == '|') && (count > 0)) | |||
{ | |||
// '|' means don't allow a tie or joiner before this letter | |||
flags |= (1 << (count -1)); | |||
} | |||
else | |||
if((c=='U') && (p[0]=='+')) | |||
{ | |||
int j; | |||
// U+9999 | |||
memcpy(number_buf,&p[1],4); // U+ should be followed by 4 hex digits | |||
p++; | |||
memcpy(number_buf,p,4); // U+ should be followed by 4 hex digits | |||
number_buf[4] = 0; | |||
c = 0; | |||
c = '#'; | |||
sscanf(number_buf,"%x",&c); | |||
p += 5; | |||
// move past the 4 hexdecimal digits | |||
for(j=0; j<4; j++) | |||
{ | |||
if(!isalnum(*p)) | |||
break; | |||
p++; | |||
} | |||
ix += utf8_out(c, &ipa_buf[ix]); | |||
count++; | |||
} | |||
else | |||
{ | |||
ipa_buf[ix++] = c; | |||
ix += utf8_out(c, &ipa_buf[ix]); | |||
count++; | |||
} | |||
} | |||
ipa_buf[0] = flags; | |||
ipa_buf[ix] = 0; | |||
value = strlen(ipa_buf); // number of UTF-8 bytes | |||
start = 1; | |||
if(flags != 0) | |||
start = 0; // only include the flags byte if bits are set | |||
value = strlen(&ipa_buf[start]); // number of UTF-8 bytes | |||
*prog_out++ = (i_IPA_NAME << 8) + value; | |||
for(ix=0; ix < value; ix += 2) | |||
{ | |||
*prog_out++ = (ipa_buf[ix] << 8) + (ipa_buf[ix+1] & 0xff); | |||
*prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); | |||
} | |||
break; | |||
} | |||
@@ -3400,6 +3434,9 @@ static void CompilePhonemeFiles() | |||
switch(item) | |||
{ | |||
case kUTF8_BOM: | |||
break; // ignore bytes 0xef 0xbb 0xbf | |||
case kINCLUDE: | |||
NextItem(tSTRING); | |||
sprintf(buf,"%s%s",path_source,item_string); |
@@ -524,15 +524,14 @@ unsigned short ipa1[96] = { | |||
}; | |||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa) | |||
{//===================================================================================== | |||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags) | |||
{//=================================================================================================== | |||
int c; | |||
int mnem; | |||
int len; | |||
int first; | |||
int ix = 0; | |||
char *p; | |||
unsigned int ipa_control=0; // first byte of ipa string may control the phoneme name interpretation. 0x20 = ignore this phoneme | |||
PHONEME_DATA phdata; | |||
if(ph->code == phonEND_WORD) | |||
@@ -564,20 +563,28 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int | |||
InterpretPhoneme(NULL, 0, plist, &phdata, NULL); | |||
} | |||
len = strlen(phdata.ipa_string); | |||
p = phdata.ipa_string; | |||
if(*p == 0x20) | |||
{ | |||
// indicates no name for this phoneme | |||
*phon_out = 0; | |||
return(phon_out); | |||
} | |||
if((*p != 0) && ((*p & 0xff) < 0x20)) | |||
{ | |||
// name starts with a flags byte | |||
if(flags != NULL) | |||
*flags = *p; | |||
p++; | |||
} | |||
len = strlen(p); | |||
if(len > 0) | |||
{ | |||
if((ipa_control = phdata.ipa_string[0]) > 0x20) | |||
{ | |||
strcpy(&phon_out[ix], phdata.ipa_string); | |||
ix += len; | |||
} | |||
if(ipa_control >= 0x20) | |||
{ | |||
phon_out = &phon_out[ix]; | |||
*phon_out = 0; | |||
return(phon_out); // 0x20 = ignore phoneme | |||
} | |||
strcpy(phon_out, p); | |||
phon_out += len; | |||
*phon_out = 0; | |||
return(phon_out); | |||
} | |||
} | |||
@@ -630,12 +637,17 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||
unsigned int max_len; | |||
int phon_out_ix=0; | |||
int stress; | |||
unsigned int c; | |||
int c; | |||
char *p; | |||
char *buf; | |||
int count; | |||
int flags; | |||
char phon_buf[30]; | |||
char phon_buf2[30]; | |||
PHONEME_LIST *plist; | |||
static const char *stress_chars = "==,,''"; | |||
static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | |||
if(phon_out != NULL) | |||
{ | |||
@@ -672,22 +684,38 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||
} | |||
} | |||
buf = WritePhMnemonic(buf, plist->ph, plist, use_ipa); | |||
flags = 0; | |||
WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||
count = 0; | |||
for(p=phon_buf2; *p != 0;) | |||
{ | |||
p += utf8_in(&c, p); | |||
if(use_ipa > 1) | |||
{ | |||
// look for non-inital alphabetic character, but not diacritic, superscript etc. | |||
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) | |||
{ | |||
buf += utf8_out(char_tie[use_ipa-2], buf); | |||
} | |||
} | |||
buf += utf8_out(c, buf); | |||
count++; | |||
} | |||
if(plist->ph->code != phonSWITCH) | |||
{ | |||
if(plist->synthflags & SFLAG_LENGTHEN) | |||
{ | |||
buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa); | |||
buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL); | |||
} | |||
if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL)) | |||
{ | |||
// syllablic consonant | |||
buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa); | |||
buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL); | |||
} | |||
if(plist->tone_ph > 0) | |||
{ | |||
buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa); | |||
buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL); | |||
} | |||
} | |||
@@ -67,6 +67,7 @@ static const char *help_text = | |||
"\t Compile pronunciation rules and dictionary from the current\n" | |||
"\t directory. <voice name> specifies the language\n" | |||
"--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
"\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||
"--path=\"<path>\"\n" | |||
"\t Specifies the directory containing the espeak-data directory\n" | |||
"--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
@@ -362,7 +363,7 @@ int main (int argc, char **argv) | |||
{"path", required_argument, 0, 0x107}, | |||
{"phonout", required_argument, 0, 0x108}, | |||
{"pho", no_argument, 0, 0x109}, | |||
{"ipa", no_argument, 0, 0x10a}, | |||
{"ipa", optional_argument, 0, 0x10a}, | |||
{"version", no_argument, 0, 0x10b}, | |||
{0, 0, 0, 0} | |||
}; | |||
@@ -604,6 +605,17 @@ int main (int argc, char **argv) | |||
case 0x10a: // --ipa | |||
option_phonemes = 3; | |||
if(optarg2 != NULL) | |||
{ | |||
value = -1; | |||
sscanf(optarg2,"%d",&value); | |||
if((value<0) || (value>2)) | |||
{ | |||
fprintf(stderr,"Bad value for -ipa=\n"); | |||
value = 0; | |||
} | |||
option_phonemes += value; | |||
} | |||
break; | |||
case 0x10b: // -version |
@@ -653,8 +653,9 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
alphabet = AlphabetFromChar(letter); | |||
if(alphabet != current_alphabet) | |||
{ | |||
// speak the name of the alphabet | |||
current_alphabet = alphabet; | |||
if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME)) | |||
if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME) && (alphabet->offset != translator->letter_bits_offset)) | |||
{ | |||
phontab_1 = tr->phoneme_tab_ix; | |||
ph_buf2[0] = 0; |
@@ -101,6 +101,7 @@ static const char *help_text = | |||
"\t Compile pronunciation rules and dictionary from the current\n" | |||
"\t directory. <voice name> specifies the language\n" | |||
"--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
"\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||
"--path=\"<path>\"\n" | |||
"\t Specifies the directory containing the espeak-data directory\n" | |||
"--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
@@ -485,7 +486,7 @@ int main (int argc, char **argv) | |||
{"path", required_argument, 0, 0x107}, | |||
{"phonout", required_argument, 0, 0x108}, | |||
{"pho", no_argument, 0, 0x109}, | |||
{"ipa", no_argument, 0, 0x10a}, | |||
{"ipa", optional_argument, 0, 0x10a}, | |||
{"version", no_argument, 0, 0x10b}, | |||
{0, 0, 0, 0} | |||
}; | |||
@@ -723,6 +724,17 @@ int main (int argc, char **argv) | |||
case 0x10a: // --ipa | |||
option_phonemes = 3; | |||
if(optarg2 != NULL) | |||
{ | |||
value = -1; | |||
sscanf(optarg2,"%d",&value); | |||
if((value<0) || (value>2)) | |||
{ | |||
fprintf(stderr,"Bad value for -ipa=\n"); | |||
value = 0; | |||
} | |||
option_phonemes += value; | |||
} | |||
break; | |||
case 0x10b: // --version |
@@ -82,12 +82,12 @@ void WVoiceChanged(voice_t *wvoice) | |||
static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
{//====================================================================== | |||
ENTER("dispatch_audio"); | |||
int a_wave_can_be_played = fifo_is_command_enabled(); | |||
#ifdef DEBUG_ENABLED | |||
SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", | |||
(event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, | |||
SHOW("*** dispatch_audio > uid=%d, [write=%p (%d bytes)], sample=%d, a_wave_can_be_played = %d\n", | |||
(event) ? event->unique_identifier : 0, wave_test_get_write_buffer(), 2*length, | |||
(event) ? event->sample : 0, | |||
a_wave_can_be_played); | |||
#endif | |||
@@ -134,8 +134,8 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
while(a_wave_can_be_played) { | |||
// TBD: some event are filtered here but some insight might be given | |||
// TBD: in synthesise.cpp for avoiding to create WORDs with size=0. | |||
// TBD: For example sentence "or ALT)." returns three words | |||
// "or", "ALT" and "". | |||
// TBD: For example sentence "or ALT)." returns three words | |||
// "or", "ALT" and "". | |||
// TBD: the last one has its size=0. | |||
if (event && (event->type == espeakEVENT_WORD) && (event->length==0)) | |||
{ | |||
@@ -171,7 +171,7 @@ static int dispatch_audio(short* outbuf, int length, espeak_EVENT* event) | |||
} | |||
SHOW_TIME("LEAVE dispatch_audio\n"); | |||
return (a_wave_can_be_played==0); // 1 = stop synthesis, -1 = error | |||
} | |||
@@ -183,12 +183,12 @@ static int create_events(short* outbuf, int length, espeak_EVENT* event, uint32_ | |||
int i=0; | |||
// The audio data are written to the output device. | |||
// The list of events in event_list (index: event_list_ix) is read: | |||
// The list of events in event_list (index: event_list_ix) is read: | |||
// Each event is declared to the "event" object which stores them internally. | |||
// The event object is responsible of calling the external callback | |||
// as soon as the relevant audio sample is played. | |||
do | |||
do | |||
{ // for each event | |||
espeak_EVENT* event; | |||
if (event_list_ix == 0) | |||
@@ -231,7 +231,7 @@ int sync_espeak_terminated_msg( uint32_t unique_identifier, void* user_data) | |||
if (my_mode==AUDIO_OUTPUT_PLAYBACK) | |||
{ | |||
while(1) | |||
while(1) | |||
{ | |||
espeak_ERROR a_error = event_declare(event_list); | |||
if (a_error != EE_BUFFER_FULL) | |||
@@ -290,14 +290,14 @@ static void select_output(espeak_AUDIO_OUTPUT output_type) | |||
int GetFileLength(const char *filename) | |||
{//==================================== | |||
struct stat statbuf; | |||
if(stat(filename,&statbuf) != 0) | |||
return(0); | |||
if((statbuf.st_mode & S_IFMT) == S_IFDIR) | |||
// if(S_ISDIR(statbuf.st_mode)) | |||
return(-2); // a directory | |||
return(statbuf.st_size); | |||
} // end of GetFileLength | |||
@@ -337,7 +337,7 @@ static void init_path(const char *path) | |||
{ | |||
sprintf(path_home,"%s/espeak-data",env); | |||
if(GetFileLength(path_home) == -2) | |||
return; // an espeak-data directory exists | |||
return; // an espeak-data directory exists | |||
} | |||
buf[0] = 0; | |||
@@ -362,7 +362,7 @@ static void init_path(const char *path) | |||
{ | |||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",env); | |||
if(GetFileLength(path_home) == -2) | |||
return; // an espeak-data directory exists | |||
return; // an espeak-data directory exists | |||
} | |||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | |||
@@ -561,21 +561,21 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un | |||
ENTER("MarkerEvent"); | |||
espeak_EVENT *ep; | |||
double time; | |||
if((event_list == NULL) || (event_list_ix >= (n_event_list-2))) | |||
return; | |||
ep = &event_list[event_list_ix++]; | |||
ep->type = (espeak_EVENT_TYPE)type; | |||
ep->unique_identifier = my_unique_identifier; | |||
ep->user_data = my_user_data; | |||
ep->text_position = char_position & 0xffffff; | |||
ep->length = char_position >> 24; | |||
time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||
ep->audio_position = int(time); | |||
ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | |||
#ifdef DEBUG_ENABLED | |||
SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); | |||
SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", | |||
@@ -605,22 +605,22 @@ void MarkerEvent(int type, unsigned int char_position, int value, int value2, un | |||
espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, | |||
unsigned int position, espeak_POSITION_TYPE position_type, | |||
espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size, | |||
unsigned int position, espeak_POSITION_TYPE position_type, | |||
unsigned int end_position, unsigned int flags, void* user_data) | |||
{//=========================================================================== | |||
#ifdef DEBUG_ENABLED | |||
ENTER("sync_espeak_Synth"); | |||
SHOW("sync_espeak_Synth > position=%d, position_type=%d, end_position=%d, flags=%d, user_data=0x%x, text=%s\n", position, position_type, end_position, flags, user_data, text); | |||
#endif | |||
espeak_ERROR aStatus; | |||
InitText(flags); | |||
my_unique_identifier = unique_identifier; | |||
my_user_data = user_data; | |||
for (int i=0; i < N_SPEECH_PARAM; i++) | |||
saved_parameters[i] = param_stack[0].parameter[i]; | |||
@@ -629,26 +629,26 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, | |||
case POS_CHARACTER: | |||
skip_characters = position; | |||
break; | |||
case POS_WORD: | |||
skip_words = position; | |||
break; | |||
case POS_SENTENCE: | |||
skip_sentences = position; | |||
break; | |||
} | |||
if(skip_characters || skip_words || skip_sentences) | |||
skipping_text = 1; | |||
end_character_position = end_position; | |||
aStatus = Synthesize(unique_identifier, text, flags); | |||
#ifdef USE_ASYNC | |||
wave_flush(my_audio); | |||
#endif | |||
SHOW_TIME("LEAVE sync_espeak_Synth"); | |||
return aStatus; | |||
} // end of sync_espeak_Synth | |||
@@ -656,29 +656,29 @@ espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, | |||
espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, | |||
const char *index_mark, unsigned int end_position, | |||
espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size, | |||
const char *index_mark, unsigned int end_position, | |||
unsigned int flags, void* user_data) | |||
{//========================================================================= | |||
espeak_ERROR aStatus; | |||
InitText(flags); | |||
my_unique_identifier = unique_identifier; | |||
my_user_data = user_data; | |||
if(index_mark != NULL) | |||
{ | |||
strncpy0(skip_marker, index_mark, sizeof(skip_marker)); | |||
skipping_text = 1; | |||
} | |||
end_character_position = end_position; | |||
aStatus = Synthesize(unique_identifier, text, flags | espeakSSML); | |||
SHOW_TIME("LEAVE sync_espeak_Synth_Mark"); | |||
return (aStatus); | |||
} // end of sync_espeak_Synth_Mark | |||
@@ -710,7 +710,7 @@ void sync_espeak_Char(wchar_t character) | |||
char buf[80]; | |||
my_unique_identifier = 0; | |||
my_user_data = NULL; | |||
sprintf(buf,"<say-as interpret-as=\"tts:char\">&#%d;</say-as>",character); | |||
Synthesize(0, buf,espeakSSML); | |||
} | |||
@@ -722,7 +722,7 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist) | |||
// Set the list of punctuation which are spoken for "some". | |||
my_unique_identifier = 0; | |||
my_user_data = NULL; | |||
wcsncpy(option_punctlist, punctlist, N_PUNCTLIST); | |||
option_punctlist[N_PUNCTLIST-1] = 0; | |||
} // end of sync_espeak_SetPunctuationList | |||
@@ -771,7 +771,7 @@ ENTER("espeak_Initialize"); | |||
setlocale(LC_CTYPE,""); | |||
} | |||
#endif | |||
init_path(path); | |||
initialise(options); | |||
select_output(output_type); | |||
@@ -788,30 +788,30 @@ ENTER("espeak_Initialize"); | |||
outbuf = (unsigned char*)realloc(outbuf,outbuf_size); | |||
if((out_start = outbuf) == NULL) | |||
return(EE_INTERNAL_ERROR); | |||
// allocate space for event list. Allow 200 events per second. | |||
// Add a constant to allow for very small buf_length | |||
n_event_list = (buf_length*200)/1000 + 20; | |||
if((event_list = (espeak_EVENT *)realloc(event_list,sizeof(espeak_EVENT) * n_event_list)) == NULL) | |||
return(EE_INTERNAL_ERROR); | |||
option_phonemes = 0; | |||
option_mbrola_phonemes = 0; | |||
option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA)); | |||
VoiceReset(0); | |||
// SetVoiceByName("default"); | |||
for(param=0; param<N_SPEECH_PARAM; param++) | |||
param_stack[0].parameter[param] = saved_parameters[param] = param_defaults[param]; | |||
SetParameter(espeakRATE,175,0); | |||
SetParameter(espeakVOLUME,100,0); | |||
SetParameter(espeakCAPITALS,option_capitals,0); | |||
SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||
SetParameter(espeakWORDGAP,0,0); | |||
// DoVoiceChange(voice); | |||
#ifdef USE_ASYNC | |||
fifo_init(); | |||
#endif | |||
@@ -821,10 +821,10 @@ ENTER("espeak_Initialize"); | |||
ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
unsigned int position, | |||
ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
unsigned int position, | |||
espeak_POSITION_TYPE position_type, | |||
unsigned int end_position, unsigned int flags, | |||
unsigned int end_position, unsigned int flags, | |||
unsigned int* unique_identifier, void* user_data) | |||
{//===================================================================================== | |||
#ifdef DEBUG_ENABLED | |||
@@ -885,10 +885,10 @@ ESPEAK_API espeak_ERROR espeak_Synth(const void *text, size_t size, | |||
ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
const char *index_mark, | |||
unsigned int end_position, | |||
unsigned int flags, | |||
ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
const char *index_mark, | |||
unsigned int end_position, | |||
unsigned int flags, | |||
unsigned int* unique_identifier, | |||
void* user_data) | |||
{//========================================================================= | |||
@@ -919,15 +919,15 @@ ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||
#ifdef USE_ASYNC | |||
// Create the mark command | |||
t_espeak_command* c1 = create_espeak_mark(text, size, index_mark, end_position, | |||
t_espeak_command* c1 = create_espeak_mark(text, size, index_mark, end_position, | |||
flags, user_data); | |||
// Retrieve the unique identifier | |||
*unique_identifier = c1->u.my_mark.unique_identifier; | |||
// Create the "terminated msg" command (same uid) | |||
t_espeak_command* c2 = create_espeak_terminated_msg(*unique_identifier, user_data); | |||
// Try to add these 2 commands (single transaction) | |||
if (c1 && c2) | |||
{ | |||
@@ -1152,15 +1152,15 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) | |||
value=0 No phoneme output (default) | |||
value=1 Output the translated phoneme symbols for the text | |||
value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) | |||
value=3 as (1), but produces IPA phoneme names rather than ascii | |||
value=3 as (1), but produces IPA phoneme names rather than ascii | |||
bit 4: produce mbrola pho data | |||
*/ | |||
option_phonemes = value & 3; | |||
option_phonemes = value & 7; | |||
option_mbrola_phonemes = value & 16; | |||
f_trans = stream; | |||
if(stream == NULL) | |||
f_trans = stderr; | |||
} // end of espeak_SetPhonemes | |||
@@ -1269,4 +1269,4 @@ ESPEAK_API const char *espeak_Info(const char **ptr) | |||
#pragma GCC visibility pop | |||
@@ -1,5 +1,5 @@ | |||
/*************************************************************************** | |||
* Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
* Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
* email: [email protected] * | |||
* * | |||
* This program is free software; you can redistribute it and/or modify * | |||
@@ -490,7 +490,7 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr | |||
if(ph->code != phonEND_WORD) | |||
{ | |||
char phoneme_name[16]; | |||
WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA); | |||
WritePhMnemonic(phoneme_name, p->ph, p, option_phoneme_events & espeakINITIALIZE_PHONEME_IPA, NULL); | |||
DoPhonemeMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, phoneme_name); | |||
} | |||
@@ -35,8 +35,8 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.46.39 01.Mar.13"; | |||
const int version_phdata = 0x014639; | |||
const char *version_string = "1.46.41 03.Mar.13"; | |||
const int version_phdata = 0x014640; | |||
int option_device_number = -1; | |||
FILE *f_logespeak = NULL; |
@@ -1438,7 +1438,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
} | |||
else | |||
{ | |||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); | |||
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||
done_phoneme_marker = 1; | |||
} | |||
@@ -1751,7 +1751,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
if((option_phoneme_events) && (done_phoneme_marker == 0)) | |||
{ | |||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); | |||
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa, NULL); | |||
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); | |||
} | |||
@@ -1937,8 +1937,8 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
if((option_phonemes > 0) || (phoneme_callback != NULL)) | |||
{ | |||
int use_ipa = 0; | |||
if(option_phonemes == 3) | |||
use_ipa = 1; | |||
if(option_phonemes >= 3) | |||
use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ | |||
GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||
if(option_phonemes > 0) |
@@ -1,5 +1,5 @@ | |||
/*************************************************************************** | |||
* Copyright (C) 2005 to 2011 by Jonathan Duddington * | |||
* Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
* email: [email protected] * | |||
* * | |||
* This program is free software; you can redistribute it and/or modify * | |||
@@ -163,7 +163,7 @@ static void SetLetterBitsRange(Translator *tr, int group, int first, int last) | |||
// ignore these characters | |||
static const unsigned short chars_ignore_default[] = { | |||
0xad, 1, // soft hyphtn | |||
0xad, 1, // soft hyphen | |||
0x200c, 1, // zero width non-joiner | |||
0x200d, 1, // zero width joiner | |||
0, 0 }; | |||
@@ -436,13 +436,16 @@ Translator *SelectTranslator(const char *name) | |||
int name2 = 0; | |||
Translator *tr; | |||
static const short stress_lengths_equal[8] = {250, 250, 250, 250, 0, 0, 250, 250}; | |||
static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; | |||
static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; | |||
static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; | |||
static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; | |||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | |||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
static const short stress_lengths_ta[8] = {240, 240, 250, 250, 0, 0, 270, 270}; | |||
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
// convert name string into a word of up to 4 characters, for the switch() | |||
@@ -836,8 +839,17 @@ Translator *SelectTranslator(const char *name) | |||
{ | |||
tr->letter_bits_offset = OFFSET_GURMUKHI; | |||
} | |||
else | |||
if(name2 == L('g','u')) | |||
{ | |||
SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||
tr->letter_bits_offset = OFFSET_GUJARATI; | |||
tr->langopts.stress_rule = STRESSPOSN_2R; | |||
} | |||
else | |||
if(name2 == L('n','e')) | |||
{ | |||
SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||
tr->langopts.break_numbers = 0x2aaaa8; | |||
tr->langopts.max_digits = 22; | |||
tr->langopts.numbers2 |= NUM2_ENGLISH_NUMERALS; |
@@ -3309,17 +3309,21 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
*pn++ = tr->langopts.thousands_sep; | |||
} | |||
*pn++ = ' '; | |||
if(tr->langopts.break_numbers & (1 << (nx-1))) | |||
{ | |||
// the next group only has 1 digits (i.e. NUM2_10000), make it three | |||
*pn++ = '0'; | |||
*pn++ = '0'; | |||
} | |||
if(tr->langopts.break_numbers & (1 << (nx-2))) | |||
{ | |||
// the next group only has 2 digits (i.e. NUM2_10000), make it three | |||
*pn++ = '0'; | |||
} | |||
if((words[ix].flags & FLAG_INDIVIDUAL_DIGITS) == 0) | |||
{ | |||
if(tr->langopts.break_numbers & (1 << (nx-1))) | |||
{ | |||
// the next group only has 1 digits, make it three | |||
*pn++ = '0'; | |||
*pn++ = '0'; | |||
} | |||
if(tr->langopts.break_numbers & (1 << (nx-2))) | |||
{ | |||
// the next group only has 2 digits (eg. Indian languages), make it three | |||
*pn++ = '0'; | |||
} | |||
} | |||
} | |||
} | |||
pw--; |
@@ -721,7 +721,7 @@ int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix | |||
void SetVoiceStack(espeak_VOICE *v, const char *variant_name); | |||
void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata, WORD_PH_DATA *worddata); | |||
void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); | |||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa); | |||
char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags); | |||
extern FILE *f_trans; // for logging | |||
extern FILE *f_logespeak; |