mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-02 14:04:27 +00:00
[1.41.17]
espeakedit: add "format *_rules file" feature. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@228 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+1
-1
@@ -504,7 +504,6 @@ ausgeschamt aUsg@SA:mt
|
||||
außerdem aUs3d'e:m
|
||||
aventurin avEntu:*'i:n
|
||||
ave A:ve:
|
||||
avenue av@n'y:
|
||||
|
||||
balkan $1
|
||||
balkon $2
|
||||
@@ -600,6 +599,7 @@ intern Int'E*n
|
||||
januar janu:A:*
|
||||
|
||||
kamelie $alt
|
||||
kanoe kan'u:
|
||||
kastanie $alt
|
||||
kid kId
|
||||
komödie $alt
|
||||
|
||||
+12
-2
@@ -293,7 +293,7 @@
|
||||
&) e (BB_ E2
|
||||
e (gt_+ e:
|
||||
&) el (_ @l
|
||||
&) eln (_S1 n
|
||||
&) eln (_NS1 n
|
||||
&) elnd (_S2 nt
|
||||
&) e (lt_ @
|
||||
&) em (_NS2 @m
|
||||
@@ -464,6 +464,7 @@
|
||||
graph (_ g@-*'A:f
|
||||
green _^_EN
|
||||
guide _^_EN
|
||||
gue (_ k
|
||||
|
||||
|
||||
.group h
|
||||
@@ -767,6 +768,7 @@
|
||||
_) ober (ste o:b3
|
||||
_) ob (jek %Op
|
||||
_) obst (reP4 'o:pst
|
||||
oe (_ o:@
|
||||
@) o (g_ 'o:
|
||||
t) ogen (_ o:g'e:n
|
||||
@) o (gin_ 'o:
|
||||
@@ -821,6 +823,7 @@
|
||||
_) q (_ ku:
|
||||
q k
|
||||
qu kv
|
||||
@) que (_ =k
|
||||
|
||||
.group r
|
||||
_) r (_ E*
|
||||
@@ -872,11 +875,15 @@
|
||||
&) schaft (_S6 Saft
|
||||
|
||||
ä) schen sC@n // but not wäschen
|
||||
wä) schen S@n
|
||||
fe) schen sC@n
|
||||
ie) schen sC@n
|
||||
h) schen sC@n
|
||||
ö) schen sC@n // but not löschen
|
||||
lö) schen S@n
|
||||
rö) schen S@n
|
||||
äu) schen sC@n // but not täuschen
|
||||
täu) schen S@n
|
||||
|
||||
schein (lich S'aIn
|
||||
_) schul (@P5 S'u:l
|
||||
@@ -955,7 +962,9 @@
|
||||
uh (+ u:
|
||||
uell u:'El
|
||||
ue y:
|
||||
&) ue (_ u:@ // statue
|
||||
r) ue (_ u:@
|
||||
t) ue (_ u:@
|
||||
ue (_ 'y:
|
||||
|
||||
u (C% U
|
||||
u (CC U
|
||||
@@ -1026,6 +1035,7 @@
|
||||
_) v (ie f
|
||||
_) v (iet v
|
||||
_) v (iz f
|
||||
v (og f
|
||||
v (oll f
|
||||
v (olk f
|
||||
v (ölC f
|
||||
|
||||
@@ -485,11 +485,11 @@ Dictionary ta_dict
|
||||
a a: aI aU e E e: i
|
||||
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
|
||||
|
||||
@@ -219,6 +219,7 @@ _₠ jU@roU
|
||||
∞ Inf'InI2tI2
|
||||
≠ n0t'i:kw@LtU
|
||||
№ nju:m@roU
|
||||
। dVnda2
|
||||
|
||||
ß S,A@p'Es
|
||||
ə SwA:
|
||||
@@ -2125,6 +2126,7 @@ tone toUn
|
||||
tonight t@naIt
|
||||
tonne tVn
|
||||
tornado tO@n'eIdoU
|
||||
tortilla tO@t'i:a2
|
||||
touche tu:SeI $only
|
||||
toupee tu:peI
|
||||
transcript $1 $onlys
|
||||
@@ -2641,6 +2643,7 @@ Leanne li:'an
|
||||
Lenore lEn'o@
|
||||
Leroy li:rOI
|
||||
Liam li:@m
|
||||
Lois loUIs
|
||||
Louis lu:I
|
||||
Louise lu:w'i:z
|
||||
Madeline mad@lI2n
|
||||
@@ -2712,6 +2715,7 @@ Stuart stju:3t
|
||||
?3 Stuart stu:3t
|
||||
Suzy su:zI
|
||||
Theresa t@ri:z@
|
||||
Therese t@ri:z
|
||||
Thomas t0m@s
|
||||
Tina ti:n@
|
||||
Tracy treIsI
|
||||
|
||||
@@ -5401,17 +5401,8 @@
|
||||
A_) - (_D _
|
||||
C_) - (_D _
|
||||
|
||||
+ plVs
|
||||
_) ++ (_ plVspl'Vs
|
||||
\+\+\+) + // ignore + after the first 3
|
||||
|
||||
\#\#) # (_ _::
|
||||
A_) # haS
|
||||
C_) # haS
|
||||
\#) #
|
||||
|
||||
. d0t
|
||||
D) . (D+ ,pOInt
|
||||
. (. _:
|
||||
\.) .
|
||||
|
||||
|
||||
@@ -172,6 +172,9 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ?
|
||||
फ़ f@
|
||||
य़ j@
|
||||
|
||||
// Punctuation
|
||||
। dVn.d.V
|
||||
|
||||
// Pronouns
|
||||
मैं $u // main: I
|
||||
मुझे $u
|
||||
|
||||
+45
-70
@@ -1,9 +1,6 @@
|
||||
// Translations for Hungarian words
|
||||
// This file is UTF-8 encoded.
|
||||
|
||||
// Conditional rules:
|
||||
// ?1 speak "i" as Roman number
|
||||
?1 elso:
|
||||
// Numbers
|
||||
|
||||
_0 nullA
|
||||
@@ -51,6 +48,8 @@ _0Z3 EzR2Ed
|
||||
_0Z4 ti:zEzR2Ed
|
||||
_0Z5 sa:zEzR2Ed
|
||||
_0Z6 miliomod
|
||||
_0Z7 ti:zmiliomod
|
||||
_0Z8 sa:zmiliomod
|
||||
|
||||
// ordinal numbers
|
||||
|
||||
@@ -78,6 +77,37 @@ _0M1o EzR2Edik
|
||||
_1M1o EzR2Edik
|
||||
_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
|
||||
január $alt
|
||||
február $alt
|
||||
@@ -135,10 +165,12 @@ _tld tildE
|
||||
|
||||
// characters
|
||||
_#9 tAb
|
||||
_#13 vAlAmi
|
||||
_#32 so:kYz
|
||||
_cap n'AJ_|
|
||||
|
||||
// Abbreviations
|
||||
ÁNTSZ a:Ente:Es $allcaps
|
||||
km kilo:me:tER2
|
||||
mm milime:tER2
|
||||
|
||||
@@ -405,6 +437,8 @@ z ze:
|
||||
_é e:
|
||||
é $atend
|
||||
|
||||
V // this means that "v ve:" is only used for lower-case
|
||||
X
|
||||
|
||||
cs tSe:
|
||||
dz dze:
|
||||
@@ -440,7 +474,7 @@ ny En^
|
||||
° fokjEl
|
||||
Ft foR2int
|
||||
\ bEks2lES $max3
|
||||
^ fölfelényíl $text
|
||||
^ fYlfEle:n^i:l
|
||||
|
||||
_, vEss2Y:
|
||||
_; pontoSvEss2Y:
|
||||
@@ -452,7 +486,7 @@ __ Ala:hu:za:S $max3
|
||||
_' ApostR2o:f
|
||||
_– nAJkYtY:
|
||||
_— kviR2tmi:nus
|
||||
_" ide:zY:jEl $max3
|
||||
_" ide:zY:jEl
|
||||
_( b'Alza:R2o:jEl $max3
|
||||
_) j'obbza:R2o:jEl $max3
|
||||
_[ n^'ito:sYglEtES $max3
|
||||
@@ -461,6 +495,10 @@ _{ k'EzdY:kAptSoS $max3
|
||||
_} v'e:gkAptSoS $max3
|
||||
_… pontpontpont $max3
|
||||
_• di:spont
|
||||
_| fyg:Y:lEgESvonAl
|
||||
_> nAJob
|
||||
_< kiSSEb
|
||||
_¤ pe:nznEmjEl
|
||||
|
||||
|
||||
// Main Exceptions List
|
||||
@@ -471,74 +509,11 @@ nato na:to:
|
||||
$textmode
|
||||
MSZP emeszpé
|
||||
SZDSZ eszdéesz
|
||||
|
||||
colon kettőspont
|
||||
(://) kettőspontperper $pause
|
||||
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
|
||||
(edik szeptember) szeptember
|
||||
|
||||
|
||||
+407
-379
@@ -10,496 +10,524 @@
|
||||
|
||||
|
||||
.group a
|
||||
a A
|
||||
_) a (_ %A
|
||||
_) alattvaló _!'AlAtvAlo:
|
||||
a A
|
||||
_) a (_ %A
|
||||
_) alattvaló _!'AlAtvAlo:
|
||||
|
||||
.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
|
||||
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
|
||||
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 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
|
||||
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
|
||||
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
|
||||
_szé) che (ny tSe:
|
||||
_szé) ché (ny tSe:
|
||||
_sto) ck (holm k
|
||||
|
||||
_) church tSYR2tS
|
||||
_) church tSYR2tS
|
||||
|
||||
|
||||
.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
|
||||
e E
|
||||
e E
|
||||
|
||||
D_-_) es (_ %ES
|
||||
_) egyezség _!'EJ:ESSe:g
|
||||
|
||||
D_-_) es (_ %ES
|
||||
_) egyezség _!'EJ:ESSe:g
|
||||
.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 ë
|
||||
ë Y
|
||||
ë Y
|
||||
|
||||
.group f
|
||||
f f
|
||||
f f
|
||||
|
||||
|
||||
.group g
|
||||
g g
|
||||
gg g:
|
||||
gy J
|
||||
ggy 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:
|
||||
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 (ik J:
|
||||
_e) gy (üt J:
|
||||
e) gyj (elentésű Jj
|
||||
gyön) gy (sor J
|
||||
_minde) gy (ik 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
|
||||
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
|
||||
_) 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
|
||||
h h
|
||||
h h
|
||||
|
||||
.group i
|
||||
i i
|
||||
@) i (_S1 i
|
||||
i i
|
||||
@) i (_S1 i
|
||||
|
||||
_) itthon ithon
|
||||
_) itthon ithon
|
||||
|
||||
.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
|
||||
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
|
||||
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
|
||||
l l
|
||||
lj j
|
||||
ly j
|
||||
lly jj
|
||||
l l
|
||||
lj l^j
|
||||
cé) l (já 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
|
||||
ly j
|
||||
lly jj
|
||||
|
||||
mi) ll (i l
|
||||
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
|
||||
m m
|
||||
m m
|
||||
|
||||
ko) mm (uni m
|
||||
ko) mm (uni m
|
||||
|
||||
|
||||
|
||||
.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
|
||||
o o
|
||||
o o
|
||||
|
||||
_r) oose (velt u:z
|
||||
_) otthon othon
|
||||
_r) oose (velt u:z
|
||||
_) otthon othon
|
||||
|
||||
.group ó
|
||||
ó o:
|
||||
ó o:
|
||||
|
||||
.group ö
|
||||
ö Y
|
||||
ö Y
|
||||
|
||||
.group ő
|
||||
ő Y:
|
||||
ő Y:
|
||||
|
||||
.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
|
||||
q kv
|
||||
qu kv
|
||||
q kv
|
||||
qu kv
|
||||
|
||||
.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
|
||||
s S
|
||||
sz s
|
||||
ssz ss2
|
||||
szts stS:
|
||||
föld) s (ánc S
|
||||
s (színű S
|
||||
hel) s (inki z
|
||||
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
|
||||
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
|
||||
_) semmelweiss sEmmElvEjs
|
||||
_) semmelweis 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
|
||||
|
||||
_) 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: //
|
||||
// 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
|
||||
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:
|
||||
|
||||
felej) ts tS
|
||||
_ka) ty (n ti
|
||||
|
||||
gyapo) t t
|
||||
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:
|
||||
|
||||
gráni) t t
|
||||
pillan) ts tS
|
||||
|
||||
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:
|
||||
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
|
||||
|
||||
_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:
|
||||
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
|
||||
u u
|
||||
u u
|
||||
|
||||
.group ú
|
||||
ú u:
|
||||
ú u:
|
||||
|
||||
.group ü
|
||||
ü y
|
||||
ü y
|
||||
ütt yt:
|
||||
|
||||
.group ű
|
||||
ű y:
|
||||
ű y:
|
||||
|
||||
.group v
|
||||
v v
|
||||
v v
|
||||
_) v (_ ve:
|
||||
_) versailles vER2sa:j
|
||||
|
||||
.group w
|
||||
w v
|
||||
w v
|
||||
|
||||
.group x
|
||||
x ks
|
||||
_) x (_ iks
|
||||
x ks
|
||||
|
||||
.group y
|
||||
_) y j
|
||||
y i
|
||||
K) y (K i
|
||||
_) y j
|
||||
y i
|
||||
K) y (K i
|
||||
|
||||
.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
|
||||
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
|
||||
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
|
||||
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 (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
|
||||
_gá) zsz (ámla zs:
|
||||
@@ -514,12 +542,12 @@ _szára) zs (ág SS
|
||||
|
||||
|
||||
.group
|
||||
_) :-) v'iJoR2
|
||||
_) :-) v'iJoR2
|
||||
|
||||
$ dolla:R2
|
||||
ä E
|
||||
æ E
|
||||
ß s
|
||||
ç tS
|
||||
ñ n^
|
||||
ø Y
|
||||
$ dolla:R2
|
||||
ä E
|
||||
æ E
|
||||
ß s
|
||||
ç tS
|
||||
ñ n^
|
||||
ø Y
|
||||
|
||||
+61
-12
@@ -65,19 +65,35 @@ z zEd
|
||||
// symbols
|
||||
_?? kuRij,i:d.U_
|
||||
_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
|
||||
|
||||
// abbreviations
|
||||
ரூ ru:ba:j $dot $only
|
||||
Rs ru:pi:z $dot $only
|
||||
|
||||
// numbers
|
||||
_0 suz.ijVm // சுழியம்
|
||||
@@ -162,10 +178,10 @@ _dpt _pul.l.i
|
||||
|
||||
// exceptions
|
||||
பாபு $alt // initial ப as [b]
|
||||
பாலு $alt
|
||||
பவானி $alt
|
||||
பகவதி $alt
|
||||
பானம் $alt
|
||||
பாணம் $alt
|
||||
பாறம் $alt
|
||||
பாரதி $alt
|
||||
பாரதம் $alt
|
||||
@@ -174,6 +190,33 @@ _dpt _pul.l.i
|
||||
பாகம் $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
|
||||
@@ -202,6 +245,7 @@ _dpt _pul.l.i
|
||||
திக் $alt
|
||||
தடக் $alt
|
||||
தீக்ஷை $alt
|
||||
தடியன் $alt
|
||||
|
||||
|
||||
|
||||
@@ -221,8 +265,13 @@ _dpt _pul.l.i
|
||||
குகை $alt
|
||||
கிரி $alt
|
||||
கோமதி $alt
|
||||
|
||||
|
||||
கயா $alt
|
||||
காயத்ரி $alt
|
||||
கங்கை $alt
|
||||
கங்கா $alt
|
||||
குரு $alt
|
||||
குகன் $alt
|
||||
|
||||
|
||||
பப pVpV
|
||||
டாக்டர் d.a:ktVr
|
||||
|
||||
+22
-2
@@ -90,6 +90,11 @@
|
||||
ட்) ச (B tS
|
||||
ஞ்) ச dZV
|
||||
ஞ்) ச (B dZ
|
||||
_) ச (ட் tS
|
||||
_) ச (Bட் tS
|
||||
_) ச (ன் tS
|
||||
_) ச (Bன் tS
|
||||
|
||||
|
||||
|
||||
ஜ dZV
|
||||
@@ -102,8 +107,8 @@
|
||||
|
||||
ட d.V
|
||||
ட (B d.
|
||||
_) ட t.V
|
||||
_) ட (B t.
|
||||
// _) ட t.V
|
||||
// _) ட (B t.
|
||||
ட்ட t.t.V
|
||||
ட்ட (B t.t.
|
||||
|
||||
@@ -129,6 +134,7 @@
|
||||
_) த (ெய்வ d
|
||||
_) த (ுஷ் d
|
||||
_) த (க்ஷிணா dV
|
||||
_) த (ண்ட dV
|
||||
|
||||
ந nV
|
||||
ந (B n // dental n
|
||||
@@ -153,6 +159,14 @@
|
||||
ஃ) ப fV
|
||||
ஃ) ப (B f
|
||||
|
||||
_) ப (ால b
|
||||
_) ப (ாலு b
|
||||
_) ப (ானு b
|
||||
_) ப (ீம b
|
||||
_) ப (காசுர bV
|
||||
_) ப (ோஜ b
|
||||
_) ப (தில bV
|
||||
|
||||
|
||||
ம mV
|
||||
ம (B m
|
||||
@@ -246,3 +260,9 @@
|
||||
் // virama
|
||||
$ dolV
|
||||
D) . (D+ _pul.l.i
|
||||
|
||||
!) rs (_.D ru:pi:z // Rs.
|
||||
|
||||
__) - (_D kVz.ittVl // minus கழித்தல்
|
||||
A_) - (_D _
|
||||
C_) - (_D _
|
||||
|
||||
+26
-14
@@ -59,6 +59,7 @@ const char *path_data;
|
||||
extern void TestTest(int control);
|
||||
extern void CompareLexicon(int);
|
||||
extern void ConvertToUtf8();
|
||||
extern void FormatDictionary(const char *dictname);
|
||||
|
||||
extern void init_z();
|
||||
extern void CompileInit(void);
|
||||
@@ -73,6 +74,10 @@ extern void MakeWordFreqList();
|
||||
|
||||
extern const char *dict_name;
|
||||
|
||||
extern wxMenu *speak_menu;
|
||||
extern wxMenu *data_menu;
|
||||
|
||||
|
||||
MyFrame *myframe = NULL;
|
||||
SpectDisplay *currentcanvas = NULL;
|
||||
|
||||
@@ -158,21 +163,21 @@ extern void VoiceReset(int control);
|
||||
|
||||
|
||||
// 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 |
|
||||
wxNO_FULL_REPAINT_ON_RESIZE |
|
||||
wxHSCROLL | wxVSCROLL);
|
||||
|
||||
|
||||
// Make a menubar
|
||||
myframe->SetMenuBar(MakeMenu(0));
|
||||
// Make a menubar
|
||||
myframe->SetMenuBar(MakeMenu(0));
|
||||
myframe->CreateStatusBar();
|
||||
myframe->SetVoiceTitle(voice_name2);
|
||||
|
||||
myframe->CreateStatusBar();
|
||||
myframe->Maximize();
|
||||
myframe->Show(TRUE);
|
||||
|
||||
myframe->Maximize();
|
||||
myframe->Show(TRUE);
|
||||
|
||||
SetTopWindow(myframe);
|
||||
SetTopWindow(myframe);
|
||||
wxInitAllImageHandlers();
|
||||
// wxImage::AddHandler(wxPNGHandler);
|
||||
return TRUE;
|
||||
@@ -194,6 +199,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame)
|
||||
EVT_MENU(MENU_COMPILE_PH, MyFrame::OnTools)
|
||||
EVT_MENU(MENU_COMPILE_DICT, 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_CLOSE_ALL, MyFrame::OnQuit)
|
||||
EVT_MENU(MENU_QUIT, MyFrame::OnQuit)
|
||||
@@ -284,10 +290,6 @@ wxSashLayoutWindow *win;
|
||||
wxLogError(_T("Failed to load voice data"));
|
||||
strcpy(dictionary_name,"en");
|
||||
}
|
||||
else
|
||||
{
|
||||
SetVoiceTitle(voice_name2);
|
||||
}
|
||||
WavegenSetVoice(voice);
|
||||
|
||||
for(param=0; param<N_SPEECH_PARAM; param++)
|
||||
@@ -312,7 +314,15 @@ wxSashLayoutWindow *win;
|
||||
|
||||
void MyFrame::SetVoiceTitle(char *voice_name)
|
||||
{//==========================================
|
||||
char buf[100];
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -605,6 +615,10 @@ void MyFrame::OnTools(wxCommandEvent& event)
|
||||
fclose(log);
|
||||
break;
|
||||
|
||||
case MENU_FORMAT_DICTIONARY:
|
||||
FormatDictionary(dictionary_name);
|
||||
break;
|
||||
|
||||
case MENU_VOWELCHART1:
|
||||
MakeVowelLists();
|
||||
break;
|
||||
@@ -623,8 +637,6 @@ void MyFrame::OnTools(wxCommandEvent& event)
|
||||
}
|
||||
}
|
||||
|
||||
extern wxMenu *speak_menu;
|
||||
|
||||
void MyFrame::OnSpeak(wxCommandEvent& event)
|
||||
{//=========================================
|
||||
switch(event.GetId())
|
||||
|
||||
+257
@@ -1312,6 +1312,263 @@ void ConvertToUtf8()
|
||||
|
||||
//******************************************************************************************************
|
||||
|
||||
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
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ class MyFrame: public wxMDIParentFrame
|
||||
|
||||
void OnNewWindow(wxCommandEvent& event);
|
||||
void OnProsody(wxCommandEvent& event);
|
||||
void SetVoiceTitle(char *voice_name);
|
||||
|
||||
|
||||
protected:
|
||||
@@ -58,7 +59,6 @@ protected:
|
||||
wxSashLayoutWindow* m_leftWindow1;
|
||||
wxSashLayoutWindow* m_leftWindow2;
|
||||
wxSashLayoutWindow* m_bottomWindow;
|
||||
void SetVoiceTitle(char *voice_name);
|
||||
wxTimer m_timer;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
@@ -135,6 +135,7 @@ enum {
|
||||
MENU_COMPILE_PH,
|
||||
MENU_COMPILE_DICT,
|
||||
MENU_COMPILE_DICT_DEBUG,
|
||||
MENU_FORMAT_DICTIONARY,
|
||||
MENU_COMPILE_MBROLA,
|
||||
|
||||
MENU_SPEAK_TRANSLATE,
|
||||
|
||||
+4
-2
@@ -24,6 +24,7 @@
|
||||
|
||||
|
||||
wxMenu *speak_menu;
|
||||
wxMenu *data_menu = NULL;
|
||||
|
||||
wxMenuBar *MakeMenu(int type)
|
||||
{//==========================
|
||||
@@ -32,7 +33,6 @@ wxMenuBar *MakeMenu(int type)
|
||||
wxMenu *help_menu;
|
||||
wxMenu *option_menu = NULL;
|
||||
wxMenu *paths_menu;
|
||||
wxMenu *data_menu = NULL;
|
||||
wxMenu *tools_menu;
|
||||
wxMenu *voice_menu;
|
||||
wxMenu *vowelchart_menu;
|
||||
@@ -86,8 +86,10 @@ wxMenuBar *MakeMenu(int type)
|
||||
data_menu = new wxMenu;
|
||||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data"));
|
||||
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->AppendSeparator();
|
||||
data_menu->Append(MENU_FORMAT_DICTIONARY, _("&Format *_rules file"));
|
||||
|
||||
// OPTIONS MENU
|
||||
paths_menu = new wxMenu;
|
||||
|
||||
+55
-24
@@ -751,8 +751,40 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars)
|
||||
|
||||
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;
|
||||
char *p;
|
||||
const char *p2;
|
||||
@@ -761,7 +793,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
|
||||
int value;
|
||||
int subtract;
|
||||
int repeat = 0;
|
||||
WORD_TAB wtab[2];
|
||||
int n_digits = 0;
|
||||
unsigned int flags;
|
||||
char ph_roman[30];
|
||||
char number_chars[N_WORD_BYTES];
|
||||
@@ -772,7 +804,9 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
|
||||
acc = 0;
|
||||
prev = 0;
|
||||
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++) != ' ')
|
||||
{
|
||||
@@ -807,9 +841,10 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
|
||||
else
|
||||
acc += prev;
|
||||
prev = value;
|
||||
n_digits++;
|
||||
}
|
||||
acc += prev;
|
||||
if(acc < 2)
|
||||
if(acc < tr->langopts.min_roman)
|
||||
return(0);
|
||||
|
||||
if(acc > tr->langopts.max_roman)
|
||||
@@ -826,12 +861,22 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out)
|
||||
|
||||
sprintf(number_chars," %d ",acc);
|
||||
|
||||
if(tr->langopts.numbers & NUM_ROMAN_ORDINAL)
|
||||
if(CheckDotOrdinal(tr, word, wtab, 0))
|
||||
wtab[0].flags |= FLAG_ORDINAL;
|
||||
|
||||
if(tr->langopts.numbers & NUM_ROMAN_ORDINAL)
|
||||
{
|
||||
if((n_digits <= 1) && !(wtab[0].flags & FLAG_ORDINAL))
|
||||
return(0);
|
||||
wtab[0].flags |= FLAG_ORDINAL;
|
||||
}
|
||||
|
||||
|
||||
TranslateNumber(tr, &number_chars[1], p, &flags, wtab);
|
||||
|
||||
if(tr->langopts.numbers & NUM_ROMAN_AFTER)
|
||||
strcat(ph_out,ph_roman);
|
||||
|
||||
return(1);
|
||||
} // end of TranslateRoman
|
||||
|
||||
@@ -1313,8 +1358,6 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
|
||||
char ph_buf[200];
|
||||
char ph_buf2[50];
|
||||
char suffix[20];
|
||||
char *wordptr;
|
||||
unsigned int dictflags;
|
||||
|
||||
static const char str_pause[2] = {phonPAUSE_NOLINK,0};
|
||||
|
||||
@@ -1325,22 +1368,10 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
|
||||
value = this_value = atoi(word);
|
||||
|
||||
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
|
||||
ix++;
|
||||
|
||||
+12
-2
@@ -357,6 +357,15 @@ int towlower2(unsigned int 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)
|
||||
{//==========================
|
||||
// This is only called with UTF8 input, not wchar input
|
||||
@@ -2388,10 +2397,11 @@ if(option_ssml) parag=1;
|
||||
|
||||
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
|
||||
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)
|
||||
}
|
||||
else
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.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;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
@@ -164,6 +164,7 @@ static Translator* NewTranslator(void)
|
||||
tr->langopts.long_stop = 100;
|
||||
|
||||
tr->langopts.max_roman = 49;
|
||||
tr->langopts.min_roman = 2;
|
||||
tr->langopts.thousands_sep = ',';
|
||||
tr->langopts.decimal_sep = '.';
|
||||
tr->langopts.break_numbers = BREAK_THOUSANDS; // 1000, 1000,000 1,000,000 etc
|
||||
@@ -588,7 +589,8 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.param[LOPT_IT_DOUBLING] = 1;
|
||||
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');
|
||||
tr->langopts.spelling_stress = 1;
|
||||
SetLengthMods(tr,3); // all equal
|
||||
|
||||
+1
-1
@@ -740,7 +740,7 @@ if((wmark > 0) && (wmark < 8))
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -352,6 +352,7 @@ typedef struct {
|
||||
#define NUM_ROMAN_AFTER 0x200000
|
||||
#define NUM_VIGESIMAL 0x400000
|
||||
#define NUM_ROMAN_ORDINAL 0x800000
|
||||
#define NUM_ROMAN_CAPITALS 0x1000000
|
||||
|
||||
// bits0-1=which numbers routine to use.
|
||||
// bit2= thousands separator must be space
|
||||
@@ -374,6 +375,7 @@ typedef struct {
|
||||
// bit21= say "roman" after the number, not before
|
||||
// bit22= vigesimal number, if tens are not found
|
||||
// bit23=Roman numbers are ordinal numbers
|
||||
// bit24=Roman numbers must be capital letters
|
||||
int numbers;
|
||||
|
||||
// bits 1-4 use variant form of numbers before thousands,millions,etc.
|
||||
@@ -386,6 +388,7 @@ typedef struct {
|
||||
#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 max_roman;
|
||||
int min_roman;
|
||||
int thousands_sep;
|
||||
int decimal_sep;
|
||||
|
||||
@@ -570,7 +573,7 @@ void DeleteTranslator(Translator *tr);
|
||||
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 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 SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars);
|
||||
|
||||
Reference in New Issue
Block a user