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); |