espeakedit: add "format *_rules file" feature. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@228 d46cf337-b52f-0410-862d-fd96e6ae7743master
außerdem aUs3d'e:m | außerdem aUs3d'e:m | ||||
aventurin avEntu:*'i:n | aventurin avEntu:*'i:n | ||||
ave A:ve: | ave A:ve: | ||||
avenue av@n'y: | |||||
balkan $1 | balkan $1 | ||||
balkon $2 | balkon $2 | ||||
januar janu:A:* | januar janu:A:* | ||||
kamelie $alt | kamelie $alt | ||||
kanoe kan'u: | |||||
kastanie $alt | kastanie $alt | ||||
kid kId | kid kId | ||||
komödie $alt | komödie $alt |
&) e (BB_ E2 | &) e (BB_ E2 | ||||
e (gt_+ e: | e (gt_+ e: | ||||
&) el (_ @l | &) el (_ @l | ||||
&) eln (_S1 n | |||||
&) eln (_NS1 n | |||||
&) elnd (_S2 nt | &) elnd (_S2 nt | ||||
&) e (lt_ @ | &) e (lt_ @ | ||||
&) em (_NS2 @m | &) em (_NS2 @m | ||||
graph (_ g@-*'A:f | graph (_ g@-*'A:f | ||||
green _^_EN | green _^_EN | ||||
guide _^_EN | guide _^_EN | ||||
gue (_ k | |||||
.group h | .group h | ||||
_) ober (ste o:b3 | _) ober (ste o:b3 | ||||
_) ob (jek %Op | _) ob (jek %Op | ||||
_) obst (reP4 'o:pst | _) obst (reP4 'o:pst | ||||
oe (_ o:@ | |||||
@) o (g_ 'o: | @) o (g_ 'o: | ||||
t) ogen (_ o:g'e:n | t) ogen (_ o:g'e:n | ||||
@) o (gin_ 'o: | @) o (gin_ 'o: | ||||
_) q (_ ku: | _) q (_ ku: | ||||
q k | q k | ||||
qu kv | qu kv | ||||
@) que (_ =k | |||||
.group r | .group r | ||||
_) r (_ E* | _) r (_ E* | ||||
&) schaft (_S6 Saft | &) schaft (_S6 Saft | ||||
ä) schen sC@n // but not wäschen | ä) schen sC@n // but not wäschen | ||||
wä) schen S@n | |||||
fe) schen sC@n | fe) schen sC@n | ||||
ie) schen sC@n | ie) schen sC@n | ||||
h) schen sC@n | h) schen sC@n | ||||
ö) schen sC@n // but not löschen | ö) schen sC@n // but not löschen | ||||
lö) schen S@n | |||||
rö) schen S@n | |||||
äu) schen sC@n // but not täuschen | äu) schen sC@n // but not täuschen | ||||
täu) schen S@n | |||||
schein (lich S'aIn | schein (lich S'aIn | ||||
_) schul (@P5 S'u:l | _) schul (@P5 S'u:l | ||||
uh (+ u: | uh (+ u: | ||||
uell u:'El | uell u:'El | ||||
ue y: | ue y: | ||||
&) ue (_ u:@ // statue | |||||
r) ue (_ u:@ | |||||
t) ue (_ u:@ | |||||
ue (_ 'y: | |||||
u (C% U | u (C% U | ||||
u (CC U | u (CC U | ||||
_) v (ie f | _) v (ie f | ||||
_) v (iet v | _) v (iet v | ||||
_) v (iz f | _) v (iz f | ||||
v (og f | |||||
v (oll f | v (oll f | ||||
v (olk f | v (olk f | ||||
v (ölC f | v (ölC f |
a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
I i: o o: U u u: V | I i: o o: U u u: V | ||||
: ; b c C d d. dZ | |||||
f g h j k l l. m | |||||
n N n. n^ p r R s | |||||
S s. t t. th tS v w | |||||
z z. | |||||
: ; b C d d. dZ f | |||||
g h j k l l. m n | |||||
N n. n^ p r R s S | |||||
s. t t. th tS v w z | |||||
z. | |||||
Dictionary bn_dict | Dictionary bn_dict |
∞ Inf'InI2tI2 | ∞ Inf'InI2tI2 | ||||
≠ n0t'i:kw@LtU | ≠ n0t'i:kw@LtU | ||||
№ nju:m@roU | № nju:m@roU | ||||
। dVnda2 | |||||
ß S,A@p'Es | ß S,A@p'Es | ||||
ə SwA: | ə SwA: | ||||
tonight t@naIt | tonight t@naIt | ||||
tonne tVn | tonne tVn | ||||
tornado tO@n'eIdoU | tornado tO@n'eIdoU | ||||
tortilla tO@t'i:a2 | |||||
touche tu:SeI $only | touche tu:SeI $only | ||||
toupee tu:peI | toupee tu:peI | ||||
transcript $1 $onlys | transcript $1 $onlys | ||||
Lenore lEn'o@ | Lenore lEn'o@ | ||||
Leroy li:rOI | Leroy li:rOI | ||||
Liam li:@m | Liam li:@m | ||||
Lois loUIs | |||||
Louis lu:I | Louis lu:I | ||||
Louise lu:w'i:z | Louise lu:w'i:z | ||||
Madeline mad@lI2n | Madeline mad@lI2n | ||||
?3 Stuart stu:3t | ?3 Stuart stu:3t | ||||
Suzy su:zI | Suzy su:zI | ||||
Theresa t@ri:z@ | Theresa t@ri:z@ | ||||
Therese t@ri:z | |||||
Thomas t0m@s | Thomas t0m@s | ||||
Tina ti:n@ | Tina ti:n@ | ||||
Tracy treIsI | Tracy treIsI |
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
+ plVs | |||||
_) ++ (_ plVspl'Vs | |||||
\+\+\+) + // ignore + after the first 3 | |||||
\#\#) # (_ _:: | |||||
A_) # haS | |||||
C_) # haS | |||||
\#) # | |||||
. d0t | . d0t | ||||
D) . (D+ ,pOInt | |||||
. (. _: | . (. _: | ||||
\.) . | \.) . | ||||
फ़ f@ | फ़ f@ | ||||
य़ j@ | य़ j@ | ||||
// Punctuation | |||||
। dVn.d.V | |||||
// Pronouns | // Pronouns | ||||
मैं $u // main: I | मैं $u // main: I | ||||
मुझे $u | मुझे $u |
// Translations for Hungarian words | // Translations for Hungarian words | ||||
// This file is UTF-8 encoded. | // This file is UTF-8 encoded. | ||||
// Conditional rules: | |||||
// ?1 speak "i" as Roman number | |||||
?1 elso: | |||||
// Numbers | // Numbers | ||||
_0 nullA | _0 nullA | ||||
_0Z4 ti:zEzR2Ed | _0Z4 ti:zEzR2Ed | ||||
_0Z5 sa:zEzR2Ed | _0Z5 sa:zEzR2Ed | ||||
_0Z6 miliomod | _0Z6 miliomod | ||||
_0Z7 ti:zmiliomod | |||||
_0Z8 sa:zmiliomod | |||||
// ordinal numbers | // ordinal numbers | ||||
_1M1o EzR2Edik | _1M1o EzR2Edik | ||||
_2M1o ke:tEzR2Edik | _2M1o ke:tEzR2Edik | ||||
_0-a A | |||||
_0-i Ei | |||||
_0-e E | |||||
_0-án a:n | |||||
_0-ára a:R2A | |||||
_0-ére e:R2E | |||||
_0-ra a:R2A | |||||
_0-re e:R2E | |||||
_0-én e:n | |||||
_0-ai Ai | |||||
_0-ei Ei | |||||
(1-e) elseje $text | |||||
(1-én) elsején $text | |||||
(1-jén) elsején $text | |||||
(1-i) elsejei $text | |||||
(1-ei) elsejei $text | |||||
(1-ére) elsejére $text | |||||
(1-re) elsejére $text | |||||
(2-i) másodikai $text | |||||
(3-i) harmadikai $text | |||||
(6-i) hatodikai $text | |||||
(8-i) nyolcadikai $text | |||||
(13-i) tizenharmadikai $text | |||||
(16-i) tizenhatodikai $text | |||||
(18-i) tizennyolcadikai $text | |||||
(20-i) huszadikai $text | |||||
(23-i) huszonharmadikai $text | |||||
(26-i) huszonhatodikai $text | |||||
(28-i) huszonnyolcadikai $text | |||||
(30-i) harmincadikai $text | |||||
// These words mean that a dot after number, immediately preceding, does not mean an ordinal number | // These words mean that a dot after number, immediately preceding, does not mean an ordinal number | ||||
január $alt | január $alt | ||||
február $alt | február $alt | ||||
// characters | // characters | ||||
_#9 tAb | _#9 tAb | ||||
_#13 vAlAmi | |||||
_#32 so:kYz | _#32 so:kYz | ||||
_cap n'AJ_| | _cap n'AJ_| | ||||
// Abbreviations | // Abbreviations | ||||
ÁNTSZ a:Ente:Es $allcaps | |||||
km kilo:me:tER2 | km kilo:me:tER2 | ||||
mm milime:tER2 | mm milime:tER2 | ||||
_é e: | _é e: | ||||
é $atend | é $atend | ||||
V // this means that "v ve:" is only used for lower-case | |||||
X | |||||
cs tSe: | cs tSe: | ||||
dz dze: | dz dze: | ||||
° fokjEl | ° fokjEl | ||||
Ft foR2int | Ft foR2int | ||||
\ bEks2lES $max3 | \ bEks2lES $max3 | ||||
^ fölfelényíl $text | |||||
^ fYlfEle:n^i:l | |||||
_, vEss2Y: | _, vEss2Y: | ||||
_; pontoSvEss2Y: | _; pontoSvEss2Y: | ||||
_' ApostR2o:f | _' ApostR2o:f | ||||
_– nAJkYtY: | _– nAJkYtY: | ||||
_— kviR2tmi:nus | _— kviR2tmi:nus | ||||
_" ide:zY:jEl $max3 | |||||
_" ide:zY:jEl | |||||
_( b'Alza:R2o:jEl $max3 | _( b'Alza:R2o:jEl $max3 | ||||
_) j'obbza:R2o:jEl $max3 | _) j'obbza:R2o:jEl $max3 | ||||
_[ n^'ito:sYglEtES $max3 | _[ n^'ito:sYglEtES $max3 | ||||
_} v'e:gkAptSoS $max3 | _} v'e:gkAptSoS $max3 | ||||
_… pontpontpont $max3 | _… pontpontpont $max3 | ||||
_• di:spont | _• di:spont | ||||
_| fyg:Y:lEgESvonAl | |||||
_> nAJob | |||||
_< kiSSEb | |||||
_¤ pe:nznEmjEl | |||||
// Main Exceptions List | // Main Exceptions List | ||||
$textmode | $textmode | ||||
MSZP emeszpé | MSZP emeszpé | ||||
SZDSZ eszdéesz | SZDSZ eszdéesz | ||||
colon kettőspont | |||||
(://) kettőspontperper $pause | (://) kettőspontperper $pause | ||||
egyezség eggyesség | egyezség eggyesség | ||||
(1-én) elsején | |||||
(1-jén) elsején | |||||
(2-án) másodikán | |||||
(3-án) harmadikán | |||||
(4-én) negyedikén | |||||
(5-én) ötödikén | |||||
(6-án) hatodikán | |||||
(7-én) hetedikén | |||||
(8-án) nyolcadikán | |||||
(9-én) kilencedikén | |||||
(10-én) tizedikén | |||||
(11-én) tizeneggyedikén | |||||
(12-én) tizenkettedikén | |||||
(13-án) tizenharmadikán | |||||
(14-én) tizennegyedikén | |||||
(15-én) tizenötödikén | |||||
(16-án) tizenhatodikán | |||||
(17-én) tizenhetedikén | |||||
(18-án) tizennyolcadikán | |||||
(19-én) tizenkilencedikén | |||||
(20-án) huszadikán | |||||
(21-én) huszoneggyedikén | |||||
(22-én) huszonkettedikén | |||||
(23-án) huszonharmadikán | |||||
(24-én) huszonnegyedikén | |||||
(25-én) huszonötödikén | |||||
(26-án) huszonhatodikán | |||||
(27-én) huszonhetedikén | |||||
(28-án) huszonnyolcadikán | |||||
(29-én) huszonkilencedikén | |||||
(30-án) harmincadikán | |||||
(31-én) harminceggyedikén | |||||
(1-e) elseje | |||||
(2-a) másodika | |||||
(3-a) harmadika | |||||
(4-e) negyedike | |||||
(5-e) ötödike | |||||
(6-a) hatodika | |||||
(7-e) hetedike | |||||
(8-a) nyolcadika | |||||
(9-e) kilencedike | |||||
(10-e) tizedike | |||||
(11-e) tizeneggyedike | |||||
(12-e) tizenkettedike | |||||
(13-a) tizenharmadika | |||||
(14-e) tizennegyedike | |||||
(15-e) tizenötödike | |||||
(16-a) tizenhatodika | |||||
(17-e) tizenhetedike | |||||
(18-a) tizennyolcadika | |||||
(19-e) tizenkilencedike | |||||
(20-a) huszadika | |||||
(21-e) huszoneggyedike | |||||
(22-e) huszonkettedike | |||||
(23-a) huszonharmadika | |||||
(24-e) huszonnegyedike | |||||
(25-e) huszonötödike | |||||
(26-a) huszonhatodika | |||||
(27-e) huszonhetedike | |||||
(28-a) huszonnyolcadika | |||||
(29-e) huszonkilencedike | |||||
(30-a) harmincadika | |||||
(31-e) harmincegyedike | |||||
(Szvsz) eszvéesz | (Szvsz) eszvéesz | ||||
(edik szeptember) szeptember | (edik szeptember) szeptember | ||||
.group a | .group a | ||||
a A | |||||
_) a (_ %A | |||||
_) alattvaló _!'AlAtvAlo: | |||||
a A | |||||
_) a (_ %A | |||||
_) alattvaló _!'AlAtvAlo: | |||||
.group á | .group á | ||||
á a: | |||||
@) ában (_S4 a:bAn | |||||
@) ának (_S4 a:nAk | |||||
á a: | |||||
@) ában (_S4 a:bAn | |||||
@) ának (_S4 a:nAk | |||||
@) ától (_S4 a:to:l | |||||
.group b | .group b | ||||
b b | |||||
bb b: | |||||
@) ban (_S3 bAn | |||||
@) ben (_S3 bEn | |||||
b b | |||||
bb b: | |||||
@) ban (_S3 bAn | |||||
@) ben (_S3 bEn | |||||
biz (A b'iz, // bizalmas etc. | |||||
biedermeier bi:dER2ma:jER2 | |||||
biz (A b'iz, // bizalmas etc. | |||||
biedermeier bi:dER2ma:jER2 | |||||
.group c | .group c | ||||
c ts | |||||
cc ts: | |||||
cs tS | |||||
ccs tS: | |||||
!) cz ts // in names which start with a capital letter | |||||
ar) csz (e ts | |||||
harmin) c ts | |||||
anar) ch (i C | |||||
hierar) ch (i C | |||||
me) ch (a C | |||||
te) ch (n C | |||||
pszi) ch C | |||||
pszy) ch C | |||||
mün) ch (en C | |||||
maso) ch (istA C | |||||
monar) ch (i C | |||||
_pe) ch C | |||||
szé) ch tS | |||||
_zi) ch (y tS | |||||
c (szín tS | |||||
dA) c (sz ts | |||||
kilen) c (sz ts | |||||
kvar) c (sz ts | |||||
mala) c (sá ts | |||||
nyol) c (sz ts | |||||
har) c (sz ts | |||||
lán) c (sz ts | |||||
pá) c (só ts | |||||
per) c (sz ts | |||||
pol) c (so ts | |||||
por) c (sé ts | |||||
por) c (sz ts | |||||
rán) c (sz ts | |||||
tán) c (sz ts | |||||
_szé) che (ny tSe: | |||||
_szé) ché (ny tSe: | |||||
_sto) ck (holm k | |||||
_) church tSYR2tS | |||||
c ts | |||||
cc ts: | |||||
cs tS | |||||
ccs tS: | |||||
!) cz ts // in names which start with a capital letter | |||||
ar) csz (e ts | |||||
harmin) c ts | |||||
anar) ch (i C | |||||
hierar) ch (i C | |||||
me) ch (a C | |||||
te) ch (n C | |||||
pszi) ch C | |||||
pszy) ch C | |||||
mün) ch (en C | |||||
maso) ch (istA C | |||||
monar) ch (i C | |||||
_pe) ch C | |||||
szé) ch tS | |||||
_zi) ch (y tS | |||||
c (szín tS | |||||
dA) c (sz ts | |||||
kilen) c (sz ts | |||||
kvar) c (sz ts | |||||
mala) c (sá ts | |||||
nyol) c (sz ts | |||||
har) c (sz ts | |||||
lán) c (sz ts | |||||
pá) c (só ts | |||||
per) c (sz ts | |||||
pol) c (so ts | |||||
por) c (sé ts | |||||
por) c (sz ts | |||||
rán) c (sz ts | |||||
tán) c (sz ts | |||||
_szé) che (ny tSe: | |||||
_szé) ché (ny tSe: | |||||
_sto) ck (holm k | |||||
_) church tSYR2tS | |||||
.group d | .group d | ||||
d d | |||||
dd d: | |||||
dts tS: | |||||
dt t: | |||||
apró) d (sz d | |||||
a) dsz ts: | |||||
beszé) d (szin d | |||||
cselé) d d | |||||
enge) dsz ts: | |||||
engedelmeske) dsz ts: | |||||
fogó) dz (kod ts | |||||
hazu) dsz ts: | |||||
ha) d (járat d | |||||
hor) d (szék d | |||||
mara) dsz ts: | |||||
tu) dsz ts: | |||||
kére) dz ts | |||||
mentegető) dz z | |||||
// dd d: | |||||
dz dz | |||||
A) dz (A d:z | |||||
dzs dZ | |||||
A) dzs dZ: | |||||
C) ds tS | |||||
ds (C tS | |||||
A) ds (A tS: | |||||
dsz ts | |||||
dsz (C ts | |||||
A) dsz (A ts: | |||||
dz dz | |||||
C) dzs dZ | |||||
A) dzs (A dZ: | |||||
C) dj J | |||||
A) dj (A J: | |||||
dj J: | |||||
min) dny n^ | |||||
d d | |||||
dd d: | |||||
dts tS: | |||||
dt t: | |||||
apró) d (sz d | |||||
a) dsz ts: | |||||
beszé) d (szin d | |||||
cselé) d d | |||||
enge) dsz ts: | |||||
engedelmeske) dsz ts: | |||||
fogó) dz (kod ts | |||||
fenyegető) dz z | |||||
föl) d (sánc d | |||||
hazu) dsz ts: | |||||
ha) d (járat d | |||||
ha) d (sor d | |||||
hor) d (szék d | |||||
harapó) dz z | |||||
mara) dsz ts: | |||||
pa) d (sor d | |||||
tu) dsz ts: | |||||
kére) dz ts | |||||
mentegető) dz z | |||||
dz dz | |||||
A) dz (A d:z | |||||
dzs dZ | |||||
A) dzs dZ: | |||||
C) ds tS | |||||
ds (C tS | |||||
A) ds (A tS: | |||||
dsz ts | |||||
dsz (C ts | |||||
A) dsz (A ts: | |||||
dz dz | |||||
C) dzs dZ | |||||
A) dzs (A dZ: | |||||
C) dj J | |||||
A) dj (A J: | |||||
dj J: | |||||
min) dny n^ | |||||
.group e | .group e | ||||
e E | |||||
e E | |||||
D_-_) es (_ %ES | |||||
_) egyezség _!'EJ:ESSe:g | |||||
D_-_) es (_ %ES | |||||
_) egyezség _!'EJ:ESSe:g | |||||
.group é | .group é | ||||
é e: | |||||
éi (é e::i: | |||||
@) ében (_S4 e:bEn | |||||
@) ének (_S4 e:nEk | |||||
é e: | |||||
éi (é e::i: | |||||
@) ében (_S4 e:bEn | |||||
@) ének (_S4 e:nEk | |||||
@) étől (_S4 e:tY:l | |||||
.group ë | .group ë | ||||
ë Y | |||||
ë Y | |||||
.group f | .group f | ||||
f f | |||||
f f | |||||
.group g | .group g | ||||
g g | |||||
gg g: | |||||
gy J | |||||
ggy J: | |||||
gys tS | |||||
A) gys (A tS: | |||||
gysz Js | |||||
A) gysz (A Js: | |||||
C) gyj J | |||||
A) gyj (A J: | |||||
ha) gyj J: | |||||
e) gy (jelentésű J | |||||
_e) gy (es J: | |||||
_e) gy (et_ J: | |||||
g g | |||||
gg g: | |||||
gy J | |||||
ggy J: | |||||
gys tS | |||||
A) gys (A tS: | |||||
gysz Js | |||||
A) gysz (A Js: | |||||
C) gyj J | |||||
A) gyj (A J: | |||||
ha) gyj J: | |||||
e) gy (jelentésű J | |||||
_e) gy (es J: | |||||
_e) gy (et_ J: | |||||
_e) gy (etlen J: | _e) gy (etlen J: | ||||
_e) gy (ik J: | |||||
_e) gy (üt J: | |||||
e) gyj (elentésű Jj | |||||
gyön) gy (sor J | |||||
_minde) gy (ik J: | |||||
na) gysz (a Js | |||||
_) goethe gY:tE | |||||
_) goethé gY:te: | |||||
me) g (gyú g | |||||
me) g (győz g | |||||
me) g (gyil g | |||||
me) g (gyű g | |||||
me) g (gyász g | |||||
me) g (gyűr g | |||||
le) g (gy g | |||||
_e) gy (ik J: | |||||
_e) gy (üt J: | |||||
e) gyj (elentésű Jj | |||||
gyön) gy (sor J | |||||
_minde) gy (ik J: | |||||
na) gysz (a Js | |||||
_) goethe gY:tE | |||||
_) goethé gY:te: | |||||
me) g (gyú g | |||||
me) g (győz g | |||||
me) g (gyil g | |||||
me) g (gyű g | |||||
me) g (gyász g | |||||
me) g (gyűr g | |||||
le) g (gy g | |||||
.group h | .group h | ||||
h h | |||||
h h | |||||
.group i | .group i | ||||
i i | |||||
@) i (_S1 i | |||||
i i | |||||
@) i (_S1 i | |||||
_) itthon ithon | |||||
_) itthon ithon | |||||
.group í | .group í | ||||
í i: | |||||
íts i:tS: | |||||
fesz) ítsd i:tSd | |||||
bizony) ítsd i:tSd | |||||
í i: | |||||
íts i:tS: | |||||
fesz) ítsd i:tSd | |||||
bizony) ítsd i:tSd | |||||
.group j | .group j | ||||
j j | |||||
@) jában (_S5 ja:bAn | |||||
@) jának (_S5 ja:nAk | |||||
_) javíts jAvi:tS: | |||||
_) javítsd jAvi:tSd | |||||
j j | |||||
@) jában (_S5 ja:bAn | |||||
@) jának (_S5 ja:nAk | |||||
@) jától (_S5 ja:to:l | |||||
_) javíts jAvi:tS: | |||||
_) javítsd jAvi:tSd | |||||
.group k | .group k | ||||
k k | |||||
kk k: | |||||
kk (C kk | |||||
_) köztársaság k'Ysta:R2SASa:g | |||||
_) központ k'Yspont | |||||
k k | |||||
kk k: | |||||
kk (C kk | |||||
_) köztársaság k'Ysta:R2SASa:g | |||||
központ kYspont | |||||
_) köz kYz | |||||
_) község kYSSe:g | |||||
_) készség ke:SSe:g | |||||
_) kétség ke:tS:e:g | |||||
_) köz kYz | |||||
_) község kYSSe:g | |||||
készség ke:SSe:g | |||||
_) kétség ke:tS:e:g | |||||
.group l | .group l | ||||
l l | |||||
lj j | |||||
ly j | |||||
lly jj | |||||
A) lj (A l^j | |||||
á) ll (j j | |||||
beszé) lj jj | |||||
bére) lj jj | |||||
fáj) l l | |||||
fájla) l (j jj | |||||
gondo) lj jjj | |||||
ke) lj jj | |||||
sajná) lj jjj | |||||
llj jjj | |||||
C) ly (_ li | |||||
_kéth) ly li | |||||
szamue) lly lli | |||||
szamue) ly lli | |||||
mi) ll (i l | |||||
l l | |||||
lj l^j | |||||
cé) l (já jj | |||||
ly j | |||||
lly jj | |||||
A) lj (A l^j | |||||
á) ll (j j | |||||
beszé) lj jj | |||||
bére) lj jj | |||||
fáj) l l | |||||
fájla) l (j jj | |||||
gondo) lj jjj | |||||
ke) lj jj | |||||
sajná) lj jjj | |||||
llj jjj | |||||
C) ly (_ li | |||||
_kéth) ly li | |||||
szamue) lly lli | |||||
szamue) ly lli | |||||
mi) ll (i l | |||||
.group m | .group m | ||||
m m | |||||
m m | |||||
ko) mm (uni m | |||||
ko) mm (uni m | |||||
.group n | .group n | ||||
n n | |||||
n (g N | |||||
n (k N | |||||
n (p m | |||||
ny n^ | |||||
nny n^n^ | |||||
nj n^n^ | |||||
nyj n^n^ | |||||
n n | |||||
n (g N | |||||
n (k N | |||||
n (p m | |||||
ny n^ | |||||
nny n^n^ | |||||
nj n^n^ | |||||
nyj n^n^ | |||||
_) nem (- n,Em // has $alt2 attribute in hu_list, combine with the next word | |||||
me) nny (ország n^ | |||||
me) nny (d n^ | |||||
_) nem (- n,Em // has $alt2 attribute in hu_list, combine with the next word | |||||
me) nny (ország n^ | |||||
me) nny (d n^ | |||||
.group o | .group o | ||||
o o | |||||
o o | |||||
_r) oose (velt u:z | |||||
_) otthon othon | |||||
_r) oose (velt u:z | |||||
_) otthon othon | |||||
.group ó | .group ó | ||||
ó o: | |||||
ó o: | |||||
.group ö | .group ö | ||||
ö Y | |||||
ö Y | |||||
.group ő | .group ő | ||||
ő Y: | |||||
ő Y: | |||||
.group p | .group p | ||||
p p | |||||
pp p: | |||||
pp (C pp | |||||
p (v p_ | |||||
p p | |||||
pp p: | |||||
pp (C pp | |||||
p (v p_ | |||||
_) potsdam potsda:m | |||||
_) potsdam potsda:m | |||||
.group q | .group q | ||||
q kv | |||||
qu kv | |||||
q kv | |||||
qu kv | |||||
.group r | .group r | ||||
r R2 | |||||
rr RR | |||||
rm R2_m | |||||
r (cc R | |||||
r R2 | |||||
rr RR | |||||
rm R2_m | |||||
r (cc R | |||||
_) richa (rd R2iCa: | |||||
_) richá (rd R2iCa: | |||||
_) richa (rd R2iCa: | |||||
_) richá (rd R2iCa: | |||||
.group s | .group s | ||||
s S | |||||
sz s | |||||
ssz ss2 | |||||
szts stS: | |||||
föld) s (ánc S | |||||
s (színű S | |||||
hel) s (inki z | |||||
ki) s (ebb SS | |||||
_má) s (szó S | |||||
_munká) s S | |||||
_nyílá) s S | |||||
_o) slo slo: | |||||
_o) sló slo: | |||||
tojá) s S | |||||
_) semmelweiss sEmmElvEjs | |||||
_) semmelweis sEmmElvEjs | |||||
s S | |||||
sz s | |||||
ssz ss2 | |||||
szts stS: | |||||
sztsze stsE | |||||
föld) s (ánc S | |||||
s (színű S | |||||
hel) s (inki z | |||||
ki) s (ebb SS | |||||
_má) s (szó S | |||||
_munká) s S | |||||
_nyílá) s S | |||||
_o) slo slo: | |||||
_o) sló slo: | |||||
tojá) s S | |||||
_) semmelweiss sEmmElvEjs | |||||
_) semmelweis sEmmElvEjs | |||||
_) semmelweiß sEmmElvEjs | _) semmelweiß sEmmElvEjs | ||||
engel) s s | |||||
mu) ss (olini ss2 | |||||
_) saar sa:R2 | |||||
_wa) sh (ing S | |||||
engel) s s | |||||
mu) ss (olini ss2 | |||||
_) saar sa:R2 | |||||
_wa) sh (ing S | |||||
sz (öld Sz | |||||
va) s (zabl S|| | |||||
sz (öld Sz | |||||
va) s (zabl S|| | |||||
egé) szs (ég S | |||||
egé) szs (ég S | |||||
liszte) szs (ák SZ | |||||
pénze) s S | |||||
rend) sz (er s: | |||||
liszte) szs (ák SZ | |||||
pénze) s S | |||||
rend) sz (er s: | |||||
.group t | .group t | ||||
_) t (_ te: | |||||
-) t (_ t | |||||
t t | |||||
tc ts: | |||||
tt t: | |||||
tt (C tt | |||||
ttn t:n | |||||
ty c | |||||
_) t (_ te: | |||||
-) t (_ t | |||||
t t | |||||
tc ts: | |||||
tt t: | |||||
@) tól (_S3 to:l | |||||
@) től (_S3 tY:l | |||||
tt (C tt | |||||
ttn t:n | |||||
ttr t:R2 | |||||
ty c | |||||
// s) ty c: // | // s) ty c: // | ||||
// z) ty c: // keztyű | // z) ty c: // keztyű | ||||
ttj tc: | |||||
tty c: | |||||
apá) ts (ág tS: | |||||
becsüle) t t | |||||
csalódo) tts (ág tS: | |||||
cson) t t | |||||
cson) tj c | |||||
ezüs) t t | |||||
éle) t t | |||||
felej) ts tS | |||||
gyapo) t t | |||||
gráni) t t | |||||
já) tsz (ani ts: | |||||
tsz ts: | |||||
szorí) ts (a tS: | |||||
ürí) ts (e tS: | |||||
mula) ts tS: | |||||
nemze) ts tS: | |||||
néme) ts (ég tS: | |||||
min) t t | |||||
tse tSE | |||||
tso tSo | |||||
tsa tSA | |||||
tsá tSa: | |||||
tsd tSd | |||||
tsé tSe: | |||||
t (cs t | |||||
ttsé tS:e: | |||||
tsu tSu | |||||
j) ts tS | |||||
C) tj c | |||||
A) tj (A c: | |||||
C) tyj c | |||||
A) tyj (A c: | |||||
_ka) ty (n ti | |||||
vörösmar) ty ti | |||||
á) t (sza t | |||||
á) t (jár t | |||||
á) t (sző t | |||||
á) t (szú t | |||||
á) t (szű t | |||||
á) t (jut t | |||||
á) t (jö t | |||||
bizo) tts (ág tS: | |||||
állí) ts tS: | |||||
állapo) t (sor t | |||||
bará) ts tS: | |||||
dön) ts (ön tS | |||||
elhivato) tts (ág tS: | |||||
folyama) t (jel t | |||||
kiál) ts tS | |||||
köve) ts (ég tS: | |||||
kür) t t | |||||
kür) tj c | |||||
küldö) ttj c: | |||||
korlátozo) tts tS: | |||||
neve) ts (ég tS: | |||||
on) ts (u tS | |||||
o) tt t: | |||||
szen)t (szék t | |||||
szé) t t | |||||
szöve) ts (ég tS: | |||||
söté) ts (ég tS: | |||||
sajá) ts (ág tS: | |||||
pillan) ts tS | |||||
romlo) tts tS: | |||||
tar) ts tS | |||||
á) t (sor t | |||||
á) t (sé t | |||||
ne) t (c t | |||||
ne) t (se t | |||||
ne) t (szo t | |||||
lehe) ts (ég tS: | |||||
tehe) ts (ég tS: | |||||
lá) tsz ts: | |||||
fize) ts (ég tS: | |||||
segí) ts tS: | |||||
á) ts (ó tS: | |||||
ismere) ts (ég tS: | |||||
lé) t (szám t | |||||
ké) t (száz t | |||||
ö) t (száz t | |||||
ha) t (száz t | |||||
hé) t (száz t | |||||
vé) ts (ég tS: | |||||
ttj tc: | |||||
tty c: | |||||
apá) ts (ág tS: | |||||
becsüle) t t | |||||
becsüle) tt t: | |||||
cson) t t | |||||
cson) tt t: | |||||
cson) tj c | |||||
ezüs) t t | |||||
ezüs) tt t: | |||||
éle) t t | |||||
éle) tt t: | |||||
felej) ts tS | |||||
gyapo) t t | |||||
gyapo) tt t: | |||||
gráni) t t | |||||
gráni) tt t: | |||||
já) tsz (ani ts: | |||||
tsz ts: | |||||
szorí) ts (a tS: | |||||
ürí) ts (e tS: | |||||
mula) ts tS: | |||||
nemze) ts tS: | |||||
nemze) t (szo t | |||||
néme) ts (ég tS: | |||||
min) t t | |||||
tse tSE | |||||
tso tSo | |||||
ttsá tS:a: | |||||
tsa tSA | |||||
tsá tSa: | |||||
tsd tSd | |||||
tsé tSe: | |||||
t (cs t | |||||
ttsé tS:e: | |||||
tsu tSu | |||||
tsö tSY | |||||
j) ts tS | |||||
C) tj c | |||||
A) tj (A c: | |||||
C) tyj c | |||||
A) tyj (A c: | |||||
_ka) ty (n ti | |||||
vörösmar) ty ti | |||||
á) t (sza t | |||||
á) t (jár t | |||||
á) t (szö t | |||||
á) t (sző t | |||||
á) t (szú t | |||||
á) t (szű t | |||||
á) t (jut t | |||||
á) t (juss t | |||||
á) t (jö t | |||||
állí) ts tS: | |||||
állapo) t (sor t | |||||
bará) ts tS: | |||||
dön) ts (ön tS | |||||
folyama) t (jel t | |||||
hi) t (sze t | |||||
kattin) ts tS | |||||
kiál) ts tS | |||||
köve) ts (ég tS: | |||||
t (jel t //need this general rule when any not added word contains the tjel part | |||||
kür) t t | |||||
kür) tj c | |||||
kür) t (jel t | |||||
küldö) ttj c: | |||||
neve) ts (ég tS: | |||||
on) ts (u tS | |||||
o) tt t: | |||||
szen) t (szék t | |||||
szé) t t | |||||
szé) tt t: | |||||
szöve) ts (ég tS: | |||||
söté) ts (ég tS: | |||||
sajá) ts (ág tS: | |||||
pillan) ts tS | |||||
tar) ts tS | |||||
á) t (sor t | |||||
á) t (sé t | |||||
(á) t (sze t | |||||
á) t (suh t | |||||
á) t (sur t | |||||
ne) t (c t | |||||
ne) t (se t | |||||
ne) t (szo t | |||||
lehe) ts (ég tS: | |||||
tehe) ts (ég tS: | |||||
lá) tsz ts: | |||||
lá) t (sze t | |||||
fize) ts (ég tS: | |||||
segí) ts tS: | |||||
á) ts (ó tS: | |||||
ismere) ts (ég tS: | |||||
lé) t (szám t | |||||
ké) t (száz t | |||||
ö) t (száz t | |||||
ha) t (száz t | |||||
hé) t (száz t | |||||
vé) ts (ég tS: | |||||
.group u | .group u | ||||
u u | |||||
u u | |||||
.group ú | .group ú | ||||
ú u: | |||||
ú u: | |||||
.group ü | .group ü | ||||
ü y | |||||
ü y | |||||
ütt yt: | |||||
.group ű | .group ű | ||||
ű y: | |||||
ű y: | |||||
.group v | .group v | ||||
v v | |||||
v v | |||||
_) v (_ ve: | |||||
_) versailles vER2sa:j | _) versailles vER2sa:j | ||||
.group w | .group w | ||||
w v | |||||
w v | |||||
.group x | .group x | ||||
x ks | |||||
_) x (_ iks | |||||
x ks | |||||
.group y | .group y | ||||
_) y j | |||||
y i | |||||
K) y (K i | |||||
_) y j | |||||
y i | |||||
K) y (K i | |||||
.group z | .group z | ||||
z z | |||||
zs Z | |||||
zzs Z: | |||||
a) z (t s | |||||
a) z (tán s | |||||
befeje) z (te s | |||||
bi) z (tons s | |||||
bi) z (tos s | |||||
bron) z (sz z | |||||
csontvá) z z | |||||
e) z (t s | |||||
ho) z (ta s | |||||
ho) z (tá s | |||||
helye) z (ked s | |||||
inté) z (ked s | |||||
költö) z (köd s | |||||
lefeje) z (te s | |||||
lefeje) z (ték s | |||||
pén) z (tár s | |||||
ré) z (sz z | |||||
tartó) z s | |||||
gá) z (sz z | |||||
gé) z (sz z | |||||
ké) z (sz zz | |||||
há) z (so z | |||||
há) z (sz z | |||||
lá) z (sz z | |||||
má) zc (sz z | |||||
mé) zc (sz z | |||||
nehé) z (sé S | |||||
iga) zs (ág SS | |||||
ga) zs (ág SS | |||||
pén) z z | |||||
szá) z (sz z | |||||
tí) z (sz z | |||||
tű) z (sz z | |||||
ví) z (sz z | |||||
z z | |||||
zs Z | |||||
zzs Z: | |||||
a) z (t s | |||||
a) z (tán s | |||||
befeje) z (te s | |||||
bi) z (tons s | |||||
bi) z (tos s | |||||
bron) z (sz z | |||||
csontvá) z z | |||||
e) z (t s | |||||
ho) z (ta s | |||||
ho) z (tá s | |||||
helye) z (ked s | |||||
inté) z (ked s | |||||
költö) z (köd s | |||||
lefeje) z (te s | |||||
lefeje) z (ték s | |||||
pén) z (tár s | |||||
ré) z (sz z | |||||
tartó) z s | |||||
gá) z (sz z | |||||
gé) z (sz z | |||||
ké) z (sz zz | |||||
há) z (so z | |||||
há) z (sz z | |||||
lá) z (sz z | |||||
má) zc (sz z | |||||
mé) zc (sz z | |||||
nehé) z (sé S | |||||
iga) zs (ág SS | |||||
ga) zs (ág SS | |||||
pén) z z | |||||
szá) z (sz z | |||||
tí) z (sz z | |||||
tű) z (sz z | |||||
ví) z (sz z | |||||
tor) z (szülött z | tor) z (szülött z | ||||
tor) z (ság z | |||||
_vité) z z | |||||
_ví) z (s z | |||||
tor) z (ság z | |||||
_vité) z z | |||||
_ví) z (s z | |||||
ga) zs (ág zS | ga) zs (ág zS | ||||
_gá) zsz (ámla zs: | _gá) zsz (ámla zs: | ||||
.group | .group | ||||
_) :-) v'iJoR2 | |||||
$ dolla:R2 | |||||
ä E | |||||
æ E | |||||
ß s | |||||
ç tS | |||||
ñ n^ | |||||
ø Y | |||||
_) :-) v'iJoR2 | |||||
$ dolla:R2 | |||||
ä E | |||||
æ E | |||||
ß s | |||||
ç tS | |||||
ñ n^ | |||||
ø Y |
// symbols | // symbols | ||||
_?? kuRij,i:d.U_ | _?? kuRij,i:d.U_ | ||||
_cap kapit.Vl // English | _cap kapit.Vl // English | ||||
_. pul.l.i | |||||
_, kVma: | |||||
_; ka:RbUl.l.,i | |||||
_: araIpp,Ul.l.V | |||||
_? ke:l.vikk,URi | |||||
_! a:ctS:Vr,ijVkk,URi | |||||
% விழுக்காடு $text | |||||
= samVm | |||||
_. mut.RU||pul.l.i // முற்று புள்ளி | |||||
_, ka:l||pul.l.i // கால் புள்ளி | |||||
_; a:raIb||pul.l.i // ஆரைப் புள்ளி | |||||
_: mukka:l||pul.l.i // முக்கால் புள்ளி | |||||
_( id.V||piRaI // இட பிறை | |||||
_) vVlV||piRaI // வல பிறை | |||||
_[ id.V||sadUrVm // இட சதுரம் | |||||
_] vVlV||sadUrVm // வல சதுரம் | |||||
_{ id.V||gVn.Vm // இட கணம் | |||||
_} vVlV||gVn.Vm // வல கணம் | |||||
_" me:Rgo:l. // மேற்கோள் | |||||
_' ot.RaI||m'e:Rgo:l. // ொற்றை மேற்கோள் | |||||
__ ad.ig||ko:d.U // அடிக் கோடு | |||||
_- in.aIppUg // இணைப்புக் | |||||
\ p'in||s,a:jvU // பின் சாய்வு | |||||
! vijVppU // வியப்பு | |||||
_? ke:l.vi // கேள்வி | |||||
# en.||kuRi $max3 // எண் குறி | |||||
= samVnba:d.U $max3 // சமன்பாடு | |||||
+ ku:t.t.Vl $max3 // கூட்டல் | |||||
* perUkkVl $max3 // பெருக்கல் | |||||
/ sa:jvU // சாய்வு | |||||
÷ vVgUttVl // வகுத்தல் | |||||
% viz.Ukka:d.U $max3 // விழுக்காடு | |||||
U+bf9 ru:ba:j | U+bf9 ru:ba:j | ||||
// abbreviations | // abbreviations | ||||
ரூ ru:ba:j $dot $only | ரூ ru:ba:j $dot $only | ||||
Rs ru:pi:z $dot $only | |||||
// numbers | // numbers | ||||
_0 suz.ijVm // சுழியம் | _0 suz.ijVm // சுழியம் | ||||
// exceptions | // exceptions | ||||
பாபு $alt // initial ப as [b] | பாபு $alt // initial ப as [b] | ||||
பாலு $alt | |||||
பவானி $alt | பவானி $alt | ||||
பகவதி $alt | பகவதி $alt | ||||
பானம் $alt | பானம் $alt | ||||
பாணம் $alt | |||||
பாறம் $alt | பாறம் $alt | ||||
பாரதி $alt | பாரதி $alt | ||||
பாரதம் $alt | பாரதம் $alt | ||||
பாகம் $alt | பாகம் $alt | ||||
பண்தம் $alt | பண்தம் $alt | ||||
பவனி $alt | பவனி $alt | ||||
பயில்வான் $alt | |||||
பாபா $alt | |||||
போண்டா $alt | |||||
பஜ்ஜி $alt | |||||
பாதாம் $alt | |||||
பலூன் $alt | |||||
பிராமணன் $alt | |||||
பிரம்மன் $alt | |||||
பம்பாய் $alt | |||||
போகம் $alt | |||||
போதனை $alt | |||||
பூகோலம் $alt | |||||
பூலோகம் $alt | |||||
பூமி $alt | |||||
பூகம்பம் $alt | |||||
பூதம் $alt | |||||
புதன் $alt | |||||
பலி $alt | |||||
பலம் $alt | |||||
பலவான் $alt | |||||
பகவான் $alt | |||||
பாகவதம் $alt | |||||
பகவத் $alt | |||||
பங்கம் $alt | |||||
பீடி $alt | |||||
பீதி $alt | |||||
தானம் $alt // initial த as [d] | தானம் $alt // initial த as [d] | ||||
தேகம் $alt | தேகம் $alt | ||||
திக் $alt | திக் $alt | ||||
தடக் $alt | தடக் $alt | ||||
தீக்ஷை $alt | தீக்ஷை $alt | ||||
தடியன் $alt | |||||
குகை $alt | குகை $alt | ||||
கிரி $alt | கிரி $alt | ||||
கோமதி $alt | கோமதி $alt | ||||
கயா $alt | |||||
காயத்ரி $alt | |||||
கங்கை $alt | |||||
கங்கா $alt | |||||
குரு $alt | |||||
குகன் $alt | |||||
பப pVpV | பப pVpV | ||||
டாக்டர் d.a:ktVr |
ட்) ச (B tS | ட்) ச (B tS | ||||
ஞ்) ச dZV | ஞ்) ச dZV | ||||
ஞ்) ச (B dZ | ஞ்) ச (B dZ | ||||
_) ச (ட் tS | |||||
_) ச (Bட் tS | |||||
_) ச (ன் tS | |||||
_) ச (Bன் tS | |||||
ஜ dZV | ஜ dZV | ||||
ட d.V | ட d.V | ||||
ட (B d. | ட (B d. | ||||
_) ட t.V | |||||
_) ட (B t. | |||||
// _) ட t.V | |||||
// _) ட (B t. | |||||
ட்ட t.t.V | ட்ட t.t.V | ||||
ட்ட (B t.t. | ட்ட (B t.t. | ||||
_) த (ெய்வ d | _) த (ெய்வ d | ||||
_) த (ுஷ் d | _) த (ுஷ் d | ||||
_) த (க்ஷிணா dV | _) த (க்ஷிணா dV | ||||
_) த (ண்ட dV | |||||
ந nV | ந nV | ||||
ந (B n // dental n | ந (B n // dental n | ||||
ஃ) ப fV | ஃ) ப fV | ||||
ஃ) ப (B f | ஃ) ப (B f | ||||
_) ப (ால b | |||||
_) ப (ாலு b | |||||
_) ப (ானு b | |||||
_) ப (ீம b | |||||
_) ப (காசுர bV | |||||
_) ப (ோஜ b | |||||
_) ப (தில bV | |||||
ம mV | ம mV | ||||
ம (B m | ம (B m | ||||
் // virama | ் // virama | ||||
$ dolV | $ dolV | ||||
D) . (D+ _pul.l.i | D) . (D+ _pul.l.i | ||||
!) rs (_.D ru:pi:z // Rs. | |||||
__) - (_D kVz.ittVl // minus கழித்தல் | |||||
A_) - (_D _ | |||||
C_) - (_D _ |
extern void TestTest(int control); | extern void TestTest(int control); | ||||
extern void CompareLexicon(int); | extern void CompareLexicon(int); | ||||
extern void ConvertToUtf8(); | extern void ConvertToUtf8(); | ||||
extern void FormatDictionary(const char *dictname); | |||||
extern void init_z(); | extern void init_z(); | ||||
extern void CompileInit(void); | extern void CompileInit(void); | ||||
extern const char *dict_name; | extern const char *dict_name; | ||||
extern wxMenu *speak_menu; | |||||
extern wxMenu *data_menu; | |||||
MyFrame *myframe = NULL; | MyFrame *myframe = NULL; | ||||
SpectDisplay *currentcanvas = NULL; | SpectDisplay *currentcanvas = NULL; | ||||
// Create the main frame window | // Create the main frame window | ||||
myframe = new MyFrame(NULL, -1, AppName, wxPoint(0, 0), wxSize(1024, 768), | |||||
myframe = new MyFrame(NULL, -1, AppName, wxPoint(0, 0), wxSize(1024, 768), | |||||
wxDEFAULT_FRAME_STYLE | | wxDEFAULT_FRAME_STYLE | | ||||
wxNO_FULL_REPAINT_ON_RESIZE | | wxNO_FULL_REPAINT_ON_RESIZE | | ||||
wxHSCROLL | wxVSCROLL); | wxHSCROLL | wxVSCROLL); | ||||
// Make a menubar | |||||
myframe->SetMenuBar(MakeMenu(0)); | |||||
myframe->CreateStatusBar(); | |||||
// Make a menubar | |||||
myframe->SetMenuBar(MakeMenu(0)); | |||||
myframe->CreateStatusBar(); | |||||
myframe->SetVoiceTitle(voice_name2); | |||||
myframe->Maximize(); | |||||
myframe->Show(TRUE); | |||||
myframe->Maximize(); | |||||
myframe->Show(TRUE); | |||||
SetTopWindow(myframe); | |||||
SetTopWindow(myframe); | |||||
wxInitAllImageHandlers(); | wxInitAllImageHandlers(); | ||||
// wxImage::AddHandler(wxPNGHandler); | // wxImage::AddHandler(wxPNGHandler); | ||||
return TRUE; | return TRUE; | ||||
EVT_MENU(MENU_COMPILE_PH, MyFrame::OnTools) | EVT_MENU(MENU_COMPILE_PH, MyFrame::OnTools) | ||||
EVT_MENU(MENU_COMPILE_DICT, MyFrame::OnTools) | EVT_MENU(MENU_COMPILE_DICT, MyFrame::OnTools) | ||||
EVT_MENU(MENU_COMPILE_DICT_DEBUG, MyFrame::OnTools) | EVT_MENU(MENU_COMPILE_DICT_DEBUG, MyFrame::OnTools) | ||||
EVT_MENU(MENU_FORMAT_DICTIONARY, MyFrame::OnTools) | |||||
EVT_MENU(MENU_COMPILE_MBROLA, MyFrame::OnTools) | EVT_MENU(MENU_COMPILE_MBROLA, MyFrame::OnTools) | ||||
EVT_MENU(MENU_CLOSE_ALL, MyFrame::OnQuit) | EVT_MENU(MENU_CLOSE_ALL, MyFrame::OnQuit) | ||||
EVT_MENU(MENU_QUIT, MyFrame::OnQuit) | EVT_MENU(MENU_QUIT, MyFrame::OnQuit) | ||||
wxLogError(_T("Failed to load voice data")); | wxLogError(_T("Failed to load voice data")); | ||||
strcpy(dictionary_name,"en"); | strcpy(dictionary_name,"en"); | ||||
} | } | ||||
else | |||||
{ | |||||
SetVoiceTitle(voice_name2); | |||||
} | |||||
WavegenSetVoice(voice); | WavegenSetVoice(voice); | ||||
for(param=0; param<N_SPEECH_PARAM; param++) | for(param=0; param<N_SPEECH_PARAM; param++) | ||||
void MyFrame::SetVoiceTitle(char *voice_name) | void MyFrame::SetVoiceTitle(char *voice_name) | ||||
{//========================================== | {//========================================== | ||||
char buf[100]; | |||||
SetTitle(AppName + _T(" - ") + wxString(voice_name,wxConvLocal) + _T(" voice")); | SetTitle(AppName + _T(" - ") + wxString(voice_name,wxConvLocal) + _T(" voice")); | ||||
if(data_menu != NULL) | |||||
{ | |||||
sprintf(buf,"Compile &dictionary '%s'",dictionary_name); | |||||
data_menu->SetLabel(MENU_COMPILE_DICT, wxString(buf,wxConvLocal)); | |||||
sprintf(buf,"&Format '%s_rules' file",dictionary_name); | |||||
data_menu->SetLabel(MENU_FORMAT_DICTIONARY, wxString(buf,wxConvLocal)); | |||||
} | |||||
} | } | ||||
fclose(log); | fclose(log); | ||||
break; | break; | ||||
case MENU_FORMAT_DICTIONARY: | |||||
FormatDictionary(dictionary_name); | |||||
break; | |||||
case MENU_VOWELCHART1: | case MENU_VOWELCHART1: | ||||
MakeVowelLists(); | MakeVowelLists(); | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
extern wxMenu *speak_menu; | |||||
void MyFrame::OnSpeak(wxCommandEvent& event) | void MyFrame::OnSpeak(wxCommandEvent& event) | ||||
{//========================================= | {//========================================= | ||||
switch(event.GetId()) | switch(event.GetId()) |
//****************************************************************************************************** | //****************************************************************************************************** | ||||
void FormatDictionary(const char *dictname) | |||||
{//======================================== | |||||
// Format the *_rules file for the current voice | |||||
FILE *f_in; | |||||
FILE *f_out; | |||||
char *p; | |||||
char *p_start; | |||||
unsigned short *pw; | |||||
unsigned short *pw_match; | |||||
unsigned short *pw_post; | |||||
unsigned short *pw_phonemes; | |||||
int c; | |||||
int ix; | |||||
int n_pre; | |||||
int n_match; | |||||
int n_post; | |||||
int n_phonemes; | |||||
int n_spaces; | |||||
int n_out; | |||||
int formatting; | |||||
int comment; | |||||
char buf[200]; | |||||
unsigned short bufw[200]; | |||||
char conditional[80]; | |||||
char fname_in[200]; | |||||
char fname_out[200]; | |||||
const int tab1 = 8; | |||||
const int tab2 = 18; | |||||
const int tab3 = 28; | |||||
sprintf(fname_in,"%s/%s_rules",path_dsource,dictname); | |||||
sprintf(fname_out,"%s_formatted",fname_in); | |||||
if((f_in = fopen(fname_in,"r")) == NULL) | |||||
{ | |||||
wxLogError(_T("Can't open rules file: ") + wxString(fname_in,wxConvLocal)); | |||||
return; | |||||
} | |||||
if((f_out = fopen(fname_out,"w")) == NULL) | |||||
{ | |||||
wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal)); | |||||
fclose(f_in); | |||||
return; | |||||
} | |||||
formatting = 0; | |||||
n_match = 0; | |||||
while(fgets(buf, sizeof(buf)-1, f_in) != NULL) | |||||
{ | |||||
buf[sizeof(buf)-1] = 0; // ensure zero byte terminator | |||||
ix = strlen(buf) - 1; | |||||
while((buf[ix]=='\n') || (buf[ix]==' ') || (buf[ix]=='\t')) ix--; | |||||
buf[ix+1] = 0; // strip tailing spaces | |||||
p_start = buf; | |||||
while((*p_start==' ') || (*p_start == '\t')) p_start++; // skip leading spaces | |||||
comment = 0; | |||||
if((p_start[0]=='/') && (p_start[1]=='/')) | |||||
comment = 1; | |||||
ix = 0; | |||||
if(*p_start == '?') | |||||
{ | |||||
// conditional rule | |||||
while(!isspace(*p_start) && (*p_start != 0)) | |||||
{ | |||||
conditional[ix++] = *p_start++; | |||||
} | |||||
while((*p_start == ' ') || (*p_start == '\t')) p_start++; | |||||
} | |||||
conditional[ix] = 0; | |||||
if(buf[0] == '.') | |||||
{ | |||||
formatting = 0; | |||||
} | |||||
if(memcmp(p_start, ".group", 6) == 0) | |||||
{ | |||||
formatting = 2; | |||||
if(n_match > 0) | |||||
{ | |||||
// previous line was not blank, so add a blank line | |||||
fprintf(f_out,"\n"); | |||||
} | |||||
} | |||||
n_match = 0; | |||||
if((formatting == 1) && (comment==0)) | |||||
{ | |||||
// convert from UTF-8 to UTF-16 | |||||
p = p_start; | |||||
pw = bufw; | |||||
do { | |||||
p += utf8_in(&c, p); | |||||
*pw++ = c; | |||||
} while (c != 0); | |||||
pw = bufw; | |||||
while((*pw != ')') && (*pw != 0) && !iswspace(*pw)) pw++; | |||||
n_pre = 0; | |||||
n_post = 0; | |||||
n_phonemes = 0; | |||||
n_spaces = 0; | |||||
if(*pw != 0) | |||||
n_spaces = tab1; | |||||
if(*pw == ')') | |||||
{ | |||||
// there is a pre-condition | |||||
n_pre = pw - bufw + 1; | |||||
n_spaces = tab1 - n_pre - 1; | |||||
pw++; | |||||
while((*pw==' ') || (*pw=='\t')) pw++; | |||||
} | |||||
else | |||||
{ | |||||
pw = bufw; | |||||
} | |||||
pw_match = pw; | |||||
while(((c = *pw)!= ' ') && (c != '\t') && (c != '(') && (c != 0)) | |||||
{ | |||||
pw++; | |||||
} | |||||
n_match = pw - pw_match; | |||||
while(((c = *pw)==' ') || (c == '\t')) pw++; | |||||
if(*pw == '(') | |||||
{ | |||||
pw_post = pw; | |||||
while(((c = *pw)!=' ') && (c != '\t') && (c != 0)) pw++; | |||||
n_post = pw - pw_post; | |||||
while(((c = *pw)==' ') || (c == '\t')) pw++; | |||||
} | |||||
if((*pw != 0) && ((*pw != '/') || (pw[1] != '/'))) | |||||
{ | |||||
pw_phonemes = pw; | |||||
while(((c = *pw)!=' ') && (c != '\t') && (c != 0)) pw++; | |||||
n_phonemes = pw - pw_phonemes; | |||||
while(((c = *pw)==' ') || (c == '\t')) pw++; | |||||
} | |||||
// write formatted line | |||||
p = buf; | |||||
if(conditional[0] != 0) | |||||
{ | |||||
ix = 0; | |||||
while(conditional[ix] != 0) | |||||
{ | |||||
*p++ = conditional[ix++]; | |||||
n_spaces--; | |||||
} | |||||
*p++ = ' '; | |||||
n_spaces--; | |||||
} | |||||
while(n_spaces-- > 0) | |||||
{ | |||||
*p++ = ' '; | |||||
} | |||||
if(n_pre > 0) | |||||
{ | |||||
ix = 0; | |||||
for(ix=0; ix<n_pre; ix++) | |||||
{ | |||||
p += utf8_out(bufw[ix], p); | |||||
} | |||||
*p++ = ' '; | |||||
} | |||||
// write the match condition | |||||
if(n_match > 0) | |||||
{ | |||||
ix = 0; | |||||
for(ix=0; ix<n_match; ix++) | |||||
{ | |||||
p += utf8_out(pw_match[ix], p); | |||||
} | |||||
*p++ = ' '; | |||||
} | |||||
// write the post condition | |||||
if(n_post > 0) | |||||
{ | |||||
for(ix=0; ix<n_post; ix++) | |||||
{ | |||||
p += utf8_out(pw_post[ix], p); | |||||
} | |||||
*p++ = ' '; | |||||
n_post++; | |||||
} | |||||
n_out = tab1 + n_match + n_post; | |||||
if(n_pre >= tab1) | |||||
n_out += (n_pre - tab1 + 1); | |||||
if(n_phonemes > 0) | |||||
{ | |||||
n_spaces = tab2 - n_out; | |||||
while(n_spaces-- > 0) | |||||
{ | |||||
*p++ = ' '; | |||||
n_out++; | |||||
} | |||||
// write the phoneme codes | |||||
for(ix=0; ix<n_phonemes; ix++) | |||||
{ | |||||
p += utf8_out(pw_phonemes[ix], p); | |||||
} | |||||
} | |||||
if(*pw != 0) | |||||
{ | |||||
*p++ = ' '; | |||||
n_phonemes++; | |||||
n_spaces = tab3 - (n_out + n_phonemes); | |||||
while(n_spaces-- > 0) | |||||
{ | |||||
*p++ = ' '; | |||||
} | |||||
} | |||||
// write the remainer of the line | |||||
while(*pw != 0) | |||||
{ | |||||
p+= utf8_out(*pw++, p); | |||||
} | |||||
*p = 0; | |||||
} | |||||
if(formatting > 1) | |||||
formatting--; | |||||
fprintf(f_out, "%s\n", buf); | |||||
} | |||||
fclose(f_in); | |||||
fclose(f_out); | |||||
wxLogStatus(_("Written to file: ") + wxString(fname_out,wxConvLocal)); | |||||
} // end of FormatDictionary | |||||
//****************************************************************************************************** | |||||
//#define calcspeedtab | //#define calcspeedtab |
void OnNewWindow(wxCommandEvent& event); | void OnNewWindow(wxCommandEvent& event); | ||||
void OnProsody(wxCommandEvent& event); | void OnProsody(wxCommandEvent& event); | ||||
void SetVoiceTitle(char *voice_name); | |||||
protected: | protected: | ||||
wxSashLayoutWindow* m_leftWindow1; | wxSashLayoutWindow* m_leftWindow1; | ||||
wxSashLayoutWindow* m_leftWindow2; | wxSashLayoutWindow* m_leftWindow2; | ||||
wxSashLayoutWindow* m_bottomWindow; | wxSashLayoutWindow* m_bottomWindow; | ||||
void SetVoiceTitle(char *voice_name); | |||||
wxTimer m_timer; | wxTimer m_timer; | ||||
DECLARE_EVENT_TABLE() | DECLARE_EVENT_TABLE() | ||||
MENU_COMPILE_PH, | MENU_COMPILE_PH, | ||||
MENU_COMPILE_DICT, | MENU_COMPILE_DICT, | ||||
MENU_COMPILE_DICT_DEBUG, | MENU_COMPILE_DICT_DEBUG, | ||||
MENU_FORMAT_DICTIONARY, | |||||
MENU_COMPILE_MBROLA, | MENU_COMPILE_MBROLA, | ||||
MENU_SPEAK_TRANSLATE, | MENU_SPEAK_TRANSLATE, |
wxMenu *speak_menu; | wxMenu *speak_menu; | ||||
wxMenu *data_menu = NULL; | |||||
wxMenuBar *MakeMenu(int type) | wxMenuBar *MakeMenu(int type) | ||||
{//========================== | {//========================== | ||||
wxMenu *help_menu; | wxMenu *help_menu; | ||||
wxMenu *option_menu = NULL; | wxMenu *option_menu = NULL; | ||||
wxMenu *paths_menu; | wxMenu *paths_menu; | ||||
wxMenu *data_menu = NULL; | |||||
wxMenu *tools_menu; | wxMenu *tools_menu; | ||||
wxMenu *voice_menu; | wxMenu *voice_menu; | ||||
wxMenu *vowelchart_menu; | wxMenu *vowelchart_menu; | ||||
data_menu = new wxMenu; | data_menu = new wxMenu; | ||||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | ||||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | ||||
data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (&debug)")); | |||||
data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | |||||
data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | ||||
data_menu->AppendSeparator(); | |||||
data_menu->Append(MENU_FORMAT_DICTIONARY, _("&Format *_rules file")); | |||||
// OPTIONS MENU | // OPTIONS MENU | ||||
paths_menu = new wxMenu; | paths_menu = new wxMenu; |
static char ph_ordinal2[12]; | static char ph_ordinal2[12]; | ||||
int TranslateRoman(Translator *tr, char *word, char *ph_out) | |||||
{//===================================================== | |||||
static int CheckDotOrdinal(Translator *tr, char *word, WORD_TAB *wtab, int lowercase) | |||||
{//================================================================================== | |||||
// nextupper: Next word must start with lower-case | |||||
int ordinal = 0; | |||||
int c2; | |||||
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && (word[0] == '.')) | |||||
{ | |||||
if((lowercase==0) || !(wtab[1].flags & FLAG_FIRST_UPPER)) | |||||
{ | |||||
utf8_in(&c2, &word[2]); | |||||
if(IsAlpha(c2)) | |||||
{ | |||||
// ordinal number is indicated by dot after the number | |||||
// but not if the next word starts with an upper-case letter | |||||
ordinal = 2; | |||||
word[0] = ' '; | |||||
if(tr->translator_name == L('h','u')) | |||||
{ | |||||
// lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt) | |||||
if(TranslateWord(tr, &word[2], 0, NULL) & FLAG_ALT_TRANS) | |||||
ordinal = 0; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return(ordinal); | |||||
} // end of CheckDotOrdinal | |||||
int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) | |||||
{//========================================================================= | |||||
int c; | int c; | ||||
char *p; | char *p; | ||||
const char *p2; | const char *p2; | ||||
int value; | int value; | ||||
int subtract; | int subtract; | ||||
int repeat = 0; | int repeat = 0; | ||||
WORD_TAB wtab[2]; | |||||
int n_digits = 0; | |||||
unsigned int flags; | unsigned int flags; | ||||
char ph_roman[30]; | char ph_roman[30]; | ||||
char number_chars[N_WORD_BYTES]; | char number_chars[N_WORD_BYTES]; | ||||
acc = 0; | acc = 0; | ||||
prev = 0; | prev = 0; | ||||
subtract = 0x7fff; | subtract = 0x7fff; | ||||
memset(wtab, 0, sizeof(wtab)); | |||||
if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) | |||||
return(0); | |||||
while((c = *word++) != ' ') | while((c = *word++) != ' ') | ||||
{ | { | ||||
else | else | ||||
acc += prev; | acc += prev; | ||||
prev = value; | prev = value; | ||||
n_digits++; | |||||
} | } | ||||
acc += prev; | acc += prev; | ||||
if(acc < 2) | |||||
if(acc < tr->langopts.min_roman) | |||||
return(0); | return(0); | ||||
if(acc > tr->langopts.max_roman) | if(acc > tr->langopts.max_roman) | ||||
sprintf(number_chars," %d ",acc); | sprintf(number_chars," %d ",acc); | ||||
if(CheckDotOrdinal(tr, word, wtab, 0)) | |||||
wtab[0].flags |= FLAG_ORDINAL; | |||||
if(tr->langopts.numbers & NUM_ROMAN_ORDINAL) | if(tr->langopts.numbers & NUM_ROMAN_ORDINAL) | ||||
{ | |||||
if((n_digits <= 1) && !(wtab[0].flags & FLAG_ORDINAL)) | |||||
return(0); | |||||
wtab[0].flags |= FLAG_ORDINAL; | wtab[0].flags |= FLAG_ORDINAL; | ||||
} | |||||
TranslateNumber(tr, &number_chars[1], p, &flags, wtab); | TranslateNumber(tr, &number_chars[1], p, &flags, wtab); | ||||
if(tr->langopts.numbers & NUM_ROMAN_AFTER) | if(tr->langopts.numbers & NUM_ROMAN_AFTER) | ||||
strcat(ph_out,ph_roman); | strcat(ph_out,ph_roman); | ||||
return(1); | return(1); | ||||
} // end of TranslateRoman | } // end of TranslateRoman | ||||
char ph_buf[200]; | char ph_buf[200]; | ||||
char ph_buf2[50]; | char ph_buf2[50]; | ||||
char suffix[20]; | char suffix[20]; | ||||
char *wordptr; | |||||
unsigned int dictflags; | |||||
static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | ||||
value = this_value = atoi(word); | value = this_value = atoi(word); | ||||
ph_ordinal2[0] = 0; | ph_ordinal2[0] = 0; | ||||
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && (word[ix] == '.') && IsAlpha(word[ix+2]) && !(wtab[1].flags & FLAG_FIRST_UPPER)) | |||||
{ | |||||
// ordinal number is indicated by dot after the number | |||||
// but not if the next word starts with an upper-case letter | |||||
ordinal = 2; | |||||
word[ix] = ' '; | |||||
if(tr->translator_name == L('h','u')) | |||||
{ | |||||
// lang=hu don't treat dot as ordinal indicator if the next word is a month name ($alt) | |||||
wordptr = &word[ix+2]; | |||||
dictflags = TranslateWord(tr, &word[ix+2], 0, NULL); | |||||
if(dictflags & FLAG_ALT_TRANS) | |||||
ordinal = 0; | |||||
} | |||||
} | |||||
else | |||||
ordinal = CheckDotOrdinal(tr, &word[ix], wtab, 1); | |||||
if(ordinal == 0) | |||||
{ | { | ||||
// look for an ordinal number suffix after the number | // look for an ordinal number suffix after the number | ||||
ix++; | ix++; |
return(towlower(c)); | return(towlower(c)); | ||||
} | } | ||||
static int IsRomanU(unsigned int c) | |||||
{//================================ | |||||
if((c=='I') || (c=='V') || (c=='X') || (c=='L')) | |||||
return(1); | |||||
return(0); | |||||
} | |||||
static void GetC_unget(int c) | static void GetC_unget(int c) | ||||
{//========================== | {//========================== | ||||
// This is only called with UTF8 input, not wchar input | // This is only called with UTF8 input, not wchar input | ||||
if((nl_count==0) && (c1 == '.')) | if((nl_count==0) && (c1 == '.')) | ||||
{ | { | ||||
if(iswdigit(cprev) && (tr->langopts.numbers & NUM_ORDINAL_DOT)) | |||||
if((tr->langopts.numbers & NUM_ORDINAL_DOT) && | |||||
(iswdigit(cprev) || (IsRomanU(cprev) && (IsRomanU(cprev2) || iswspace(cprev2))))) // lang=hu | |||||
{ | { | ||||
// dot after a number indicates an ordinal number | // dot after a number indicates an ordinal number | ||||
if(islower(c_next) || (c_next == '<')) | |||||
if(!iswdigit(cprev) || iswlower(c_next) || (c_next == '<')) | |||||
is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | ||||
} | } | ||||
else | else |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.41.15 12.Oct.09"; | |||||
const char *version_string = "1.41.17 15.Oct.09"; | |||||
const int version_phdata = 0x014100; | const int version_phdata = 0x014100; | ||||
int option_device_number = -1; | int option_device_number = -1; |
tr->langopts.long_stop = 100; | tr->langopts.long_stop = 100; | ||||
tr->langopts.max_roman = 49; | tr->langopts.max_roman = 49; | ||||
tr->langopts.min_roman = 2; | |||||
tr->langopts.thousands_sep = ','; | tr->langopts.thousands_sep = ','; | ||||
tr->langopts.decimal_sep = '.'; | tr->langopts.decimal_sep = '.'; | ||||
tr->langopts.break_numbers = BREAK_THOUSANDS; // 1000, 1000,000 1,000,000 etc | tr->langopts.break_numbers = BREAK_THOUSANDS; // 1000, 1000,000 1,000,000 etc | ||||
tr->langopts.param[LOPT_IT_DOUBLING] = 1; | tr->langopts.param[LOPT_IT_DOUBLING] = 1; | ||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word | ||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_5 | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ORDINAL_DOT | NUM_OMIT_1_HUNDRED; | |||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_5 | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS | NUM_ORDINAL_DOT | NUM_OMIT_1_HUNDRED; | |||||
tr->langopts.min_roman = 1; | |||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
SetLengthMods(tr,3); // all equal | SetLengthMods(tr,3); // all equal |
if((tr->langopts.numbers & NUM_ROMAN) || ((tr->langopts.numbers & NUM_ROMAN_UC) && (wflags & FLAG_ALL_UPPER))) | if((tr->langopts.numbers & NUM_ROMAN) || ((tr->langopts.numbers & NUM_ROMAN_UC) && (wflags & FLAG_ALL_UPPER))) | ||||
{ | { | ||||
if((found = TranslateRoman(tr, word1, phonemes)) != 0) | |||||
if((found = TranslateRoman(tr, word1, phonemes, wtab)) != 0) | |||||
dictionary_flags[0] |= FLAG_ABBREV; // prevent emphasis if capitals | dictionary_flags[0] |= FLAG_ABBREV; // prevent emphasis if capitals | ||||
} | } | ||||
} | } |
#define NUM_ROMAN_AFTER 0x200000 | #define NUM_ROMAN_AFTER 0x200000 | ||||
#define NUM_VIGESIMAL 0x400000 | #define NUM_VIGESIMAL 0x400000 | ||||
#define NUM_ROMAN_ORDINAL 0x800000 | #define NUM_ROMAN_ORDINAL 0x800000 | ||||
#define NUM_ROMAN_CAPITALS 0x1000000 | |||||
// bits0-1=which numbers routine to use. | // bits0-1=which numbers routine to use. | ||||
// bit2= thousands separator must be space | // bit2= thousands separator must be space | ||||
// bit21= say "roman" after the number, not before | // bit21= say "roman" after the number, not before | ||||
// bit22= vigesimal number, if tens are not found | // bit22= vigesimal number, if tens are not found | ||||
// bit23=Roman numbers are ordinal numbers | // bit23=Roman numbers are ordinal numbers | ||||
// bit24=Roman numbers must be capital letters | |||||
int numbers; | int numbers; | ||||
// bits 1-4 use variant form of numbers before thousands,millions,etc. | // bits 1-4 use variant form of numbers before thousands,millions,etc. | ||||
#define BREAK_THOUSANDS 0x49249248 | #define BREAK_THOUSANDS 0x49249248 | ||||
int break_numbers; // which digits to break the number into thousands, millions, etc (Hindi has 100,000 not 1,000,000) | int break_numbers; // which digits to break the number into thousands, millions, etc (Hindi has 100,000 not 1,000,000) | ||||
int max_roman; | int max_roman; | ||||
int min_roman; | |||||
int thousands_sep; | int thousands_sep; | ||||
int decimal_sep; | int decimal_sep; | ||||
int Lookup(Translator *tr, const char *word, char *ph_out); | int Lookup(Translator *tr, const char *word, char *ph_out); | ||||
int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab); | int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab); | ||||
int TranslateRoman(Translator *tr, char *word, char *ph_out); | |||||
int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab); | |||||
void ChangeWordStress(Translator *tr, char *word, int new_stress); | void ChangeWordStress(Translator *tr, char *word, int new_stress); | ||||
void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars); | void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars); |