Reduce pause when announcing punctuation. Fix crash for list of numbers in some languages, eg: "22,23,24,25,26,27..." Recognise XLL (etc) is not a valid Roman number. espeak_Cancel(), reset punctuation echo. Don't permanently change option_phoneme_input after using [[ ]] internally. lang=af: Only recognise word "'n" as [@] when followed by a space. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@193 d46cf337-b52f-0410-862d-fd96e6ae7743master
alaska al'aska | alaska al'aska | ||||
algerië alx2'e@re@:@- | algerië alx2'e@re@:@- | ||||
antwerpen antv&rp@n | antwerpen antv&rp@n | ||||
asië A:si@ | |||||
babilon babilOn | babilon babilOn | ||||
bangladesh baNglad'ES | bangladesh baNglad'ES | ||||
bastille bast'il | bastille bast'il | ||||
bellevue b&lvju: | |||||
berlyn $2 | berlyn $2 | ||||
bermuda $2 | bermuda $2 | ||||
bethlehem bEt_liEm | bethlehem bEt_liEm | ||||
boedapest budapEst | |||||
boekarest bukarEst | boekarest bukarEst | ||||
bonnievale _^_EN | bonnievale _^_EN | ||||
brittanje $2 | brittanje $2 | ||||
constantia $2 | constantia $2 | ||||
christiana kr@stij'A:na | christiana kr@stij'A:na | ||||
damaskus d@maskWs | damaskus d@maskWs | ||||
doebaai $2 | |||||
duitswes dYytsv'Es | duitswes dYytsv'Es | ||||
ermelo &rm@lo@ | ermelo &rm@lo@ | ||||
franschhoek frA~nsh'uk | franschhoek frA~nsh'uk | ||||
kimberley kimb@rli | kimberley kimb@rli | ||||
kongo kONgu | kongo kONgu | ||||
knysna neIsna | knysna neIsna | ||||
kuruman kuruman | |||||
kwa kwa $u $only // KwaZulu, etc. | |||||
lesotho l@sutu | lesotho l@sutu | ||||
limpopo l@mpo@po@ | limpopo l@mpo@po@ | ||||
macedonië mas@d'o@ni@ | macedonië mas@d'o@ni@ | ||||
milaan $2 | milaan $2 | ||||
mesopotamië mEsuput'A:mi@ | mesopotamië mEsuput'A:mi@ | ||||
montagu mOnt@ky | montagu mOnt@ky | ||||
moreletapark mOr@l,Etap'ark | |||||
moorreesburg mur'e@sbWrx2 | moorreesburg mur'e@sbWrx2 | ||||
mosambiek musamb'ik | mosambiek musamb'ik | ||||
(thaba nchu) tab'A:||ntSu | (thaba nchu) tab'A:||ntSu | ||||
portugal $1 | portugal $1 | ||||
potchefstroom pOtSIfstr'o@m | potchefstroom pOtSIfstr'o@m | ||||
robertson _^_EN | robertson _^_EN | ||||
sahara sah'A:ra | |||||
secunda s@kunda | |||||
senekal se@n@kal | senekal se@n@kal | ||||
singapoer siNgapur | singapoer siNgapur | ||||
soweto suw'E:tu | soweto suw'E:tu | ||||
vesuvius v@su:viWs | vesuvius v@su:viWs | ||||
viëtnam vj'Etnam | viëtnam vj'Etnam | ||||
wallonië val'o@ni@ | wallonië val'o@ni@ | ||||
washington _^_EN | |||||
wellington wEliNt@n | wellington wEliNt@n | ||||
wolseley wulsli | wolseley wulsli | ||||
worcester v'ust@r | worcester v'ust@r | ||||
uganda ug'anda | uganda ug'anda | ||||
zimbabwe zI:mb'ab_wE | zimbabwe zI:mb'ab_wE | ||||
zulu zulu // Kwazulu-Natal | |||||
// People names | // People names | ||||
botha bo@ta | botha bo@ta | ||||
bouwer b@U@r | bouwer b@U@r | ||||
brian _^_EN | brian _^_EN | ||||
bredenkamp bre@d@nkamp | |||||
breytenbach breIt@nbax2 | breytenbach breIt@nbax2 | ||||
brouwer bruw'&:r | brouwer bruw'&:r | ||||
caesar siz@r | caesar siz@r | ||||
david _^_EN | david _^_EN | ||||
debora d@bo@ra | debora d@bo@ra | ||||
debussy d@bus'i: | debussy d@bus'i: | ||||
(de la) d@||la $u // de la Rey/de la Bat, etc. | |||||
der d@r | der d@r | ||||
derick dErik | derick dErik | ||||
deventer d'e@v@nt@r | deventer d'e@v@nt@r | ||||
mike _^_EN | mike _^_EN | ||||
miriam mIri@m | miriam mIri@m | ||||
mohammed muh'am@t | mohammed muh'am@t | ||||
morné mOrn'eI | |||||
mostert m'Ost@rt | mostert m'Ost@rt | ||||
mouton mut'On | mouton mut'On | ||||
mozart mo@tsart | mozart mo@tsart | ||||
zuma zu:ma | zuma zu:ma | ||||
// Other proper names | // Other proper names | ||||
absa absa | |||||
boeing _^_EN | |||||
centaurus $2 | centaurus $2 | ||||
checkers tSEk@rs | checkers tSEk@rs | ||||
chrysler kraIsl@r | chrysler kraIsl@r | ||||
ferrari f@rA:ri | |||||
martini mart'i:ni | martini mart'i:ni | ||||
wimpy wImpi | wimpy wImpi | ||||
jou $u $verbf | jou $u $verbf | ||||
hom $u $verbf | hom $u $verbf | ||||
haar $u $only $verbf | haar $u $only $verbf | ||||
se Es@ $capital | |||||
se Es@ $capital | |||||
dis $u | dis $u | ||||
agterstevoor $4 | agterstevoor $4 | ||||
agterweë $3 | agterweë $3 | ||||
algaande $2 | algaande $2 | ||||
alge alx2@ | |||||
algehele alx2@h,e@l@ | algehele alx2@h,e@l@ | ||||
allegro al'Egru | allegro al'Egru | ||||
alles al@s | alles al@s | ||||
cabernet kab@rn'eI | cabernet kab@rn'eI | ||||
camembert kam@mb'&:r | camembert kam@mb'&:r | ||||
camouflage kamufl'A:Z | camouflage kamufl'A:Z | ||||
casino kas'i:n@U | |||||
charisma kar'Isma | charisma kar'Isma | ||||
chemikalieë $3 | chemikalieë $3 | ||||
crescendo kr@SEndu | crescendo kr@SEndu | ||||
misbruikte $2 | misbruikte $2 | ||||
miskien $2 | miskien $2 | ||||
misterie m@ste@ri | misterie m@ste@ri | ||||
(modus operandi) m,o@dWs||o@p@r'andi | |||||
monsieur _^_FR | monsieur _^_FR | ||||
motore mo@t'o@r@ | motore mo@t'o@r@ | ||||
motor mo@t@r | motor mo@t@r | ||||
numeri nWm@ri | numeri nWm@ri | ||||
oeuvre W:vr@ | oeuvre W:vr@ | ||||
oftewel Oft@v&l | |||||
omgeef $2 | omgeef $2 | ||||
ommekeer Om@ke@r | |||||
omrede $2 | omrede $2 | ||||
omtrent Omtr'Ent | omtrent Omtr'Ent | ||||
onbegrip $1 | onbegrip $1 | ||||
ondeug $1 $only | ondeug $1 $only | ||||
ondeugde $1 $only | ondeugde $1 $only | ||||
onding $1 | onding $1 | ||||
oneer On_e@r $only | |||||
ongeag $1 | ongeag $1 | ||||
ongeduld $1 | ongeduld $1 | ||||
ongeloof $1 | ongeloof $1 | ||||
ongewens $1 | ongewens $1 | ||||
ongewensde $3 | ongewensde $3 | ||||
ongewoons $1 | ongewoons $1 | ||||
onguns $1 | |||||
onkunde $1 | onkunde $1 | ||||
onmag $1 | onmag $1 | ||||
onmin $1 | onmin $1 | ||||
waarskynlik $2 | waarskynlik $2 | ||||
waarskynlike $2 | waarskynlike $2 | ||||
wangedrag vanx2@drax2 | |||||
watwo vatvo@ | watwo vatvo@ | ||||
watwou vatv@U | watwou vatv@U | ||||
weergalm $2 | weergalm $2 |
* ** : b B d D f | * ** : b B d D f | ||||
g j J J^ k l m n | g j J J^ k l m n | ||||
N n^ p Q r R s t | |||||
T tS v v# w x z | |||||
N n^ p Q r R R2 s | |||||
t T tS v v# w x z | |||||
Dictionary fi_dict | Dictionary fi_dict | ||||
Dictionary fr_dict | Dictionary fr_dict | ||||
@ @- @2 a A a2 A~ e | @ @- @2 a A a2 A~ e | ||||
E E~ i i: o O o2 O2 | |||||
O~ u u: W W2 w^i wA W~ | |||||
y Y | |||||
E E2 E~ i i: o O o2 | |||||
O2 O~ u u: W W2 w^i wA | |||||
W~ y Y | |||||
: ; b c d dZ f g | : ; b c d dZ f g | ||||
h j k l m n N n2 | h j k l m n N n2 | ||||
b c d f g h j k | b c d f g h j k | ||||
l m n N p r s t | l m n N p r s t | ||||
tS v w z | tS v w z | ||||
Dictionary ml_dict | |||||
a a: aI aU e E e: i | |||||
I i: l- o o: r- u u: | |||||
V y | |||||
: b c ch d d. dZ f | |||||
g h j J k kh l l. | |||||
m n N n. n^ p ph R | |||||
R2 s s. S; t t. t.h th | |||||
tS v w z z. |
overly oUv3lI2 | overly oUv3lI2 | ||||
overt oUv'3:t | overt oUv'3:t | ||||
overtly oUv'3:tlI2 | overtly oUv'3:tlI2 | ||||
overturn $3 | |||||
oxen 0ks@n | oxen 0ks@n | ||||
padre pA:dreI | padre pA:dreI | ||||
untie Vnt'aI | untie Vnt'aI | ||||
unty Vnt'aI // for untying | unty Vnt'aI // for untying | ||||
unwind Vnw'aInd | unwind Vnw'aInd | ||||
unwise $2 | |||||
unwound Vnw'aUnd | unwound Vnw'aUnd | ||||
update $1 $onlys | update $1 $onlys | ||||
update $verb | update $verb | ||||
Tripoli trIp@lI2 | Tripoli trIp@lI2 | ||||
Ukraine ju:kr'eIn | Ukraine ju:kr'eIn | ||||
Ural ju:@r@L | Ural ju:@r@L | ||||
Utah ju:tA: | |||||
?3 Utah ju:tO: | |||||
Utah ju:t2A: | |||||
?3 Utah ju:t2O: | |||||
Utrecht ju:trECt | Utrecht ju:trECt | ||||
Vancouver $2 | Vancouver $2 | ||||
Vegas veIg@s | Vegas veIg@s |
// *************************************************************************** | // *************************************************************************** | ||||
// * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||||
// * Copyright (C) 2005 to 2008 by Jonathan Duddington * | |||||
// * email: [email protected] * | // * email: [email protected] * | ||||
// * * | // * * | ||||
// * This program is free software; you can redistribute it and/or modify * | // * This program is free software; you can redistribute it and/or modify * | ||||
&) at (eer_ @t | &) at (eer_ @t | ||||
g) at (eau at | g) at (eau at | ||||
p) atrol a2troUl | p) atrol a2troUl | ||||
?3 p) at (r eIt | |||||
?3 p) at (riA eIt | |||||
fr) at (ern a2t | fr) at (ern a2t | ||||
c) atego atIg@ | c) atego atIg@ | ||||
c) atego (ric atIg'0 | c) atego (ric atIg'0 | ||||
@) e (ctive 'E | @) e (ctive 'E | ||||
_) eco (s i:koU | _) eco (s i:koU | ||||
econo (m Ik'0n@ | econo (m Ik'0n@ | ||||
econo (mic Ek@n'0 | |||||
econo (mic i:k@n'0 | |||||
&) ecy (_ @sI2 | &) ecy (_ @sI2 | ||||
ee i: | ee i: | ||||
ee (m 'i: | ee (m 'i: | ||||
l) egion i:dZ@n | l) egion i:dZ@n | ||||
egy (pt i:dZI | egy (pt i:dZI | ||||
n) e (gro i: | n) e (gro i: | ||||
eh (_ eI | |||||
eh (K eI | |||||
ei eI | ei eI | ||||
_) ei aI | _) ei aI | ||||
c) ei i: | c) ei i: | ||||
ep (ox I2p | ep (ox I2p | ||||
e (qual i: | e (qual i: | ||||
_) e (qua i: | _) e (qua i: | ||||
e (quat I2 | |||||
_) e (quat I2 | |||||
fr) e (q i: | fr) e (q i: | ||||
_s) e (que i: | _s) e (que i: | ||||
e (quip I2 | e (quip I2 | ||||
&) eous (_ =i@s | &) eous (_ =i@s | ||||
th) eo (@ I2@ | th) eo (@ I2@ | ||||
th) eo (r i@ | th) eo (r i@ | ||||
th) eo (cracy I'0 | |||||
th) eo (logy I'0 | th) eo (logy I'0 | ||||
th) eo (logis I'0 | th) eo (logis I'0 | ||||
eover oUv@ | eover oUv@ | ||||
s) er (van 3: | s) er (van 3: | ||||
ery (_ @rI2 | ery (_ @rI2 | ||||
ery @rI | ery @rI | ||||
ery (A 3j | |||||
_v) ery ErI2 | _v) ery ErI2 | ||||
_ev) ery rI2 | _ev) ery rI2 | ||||
qu) ery i@rI2 | qu) ery i@rI2 | ||||
o (bstin 0 | o (bstin 0 | ||||
o (bt %0 | o (bt %0 | ||||
o (bu %0 | o (bu %0 | ||||
o (by_ oU | |||||
f) o (cA oU | f) o (cA oU | ||||
ff) o (cA @ | ff) o (cA @ | ||||
_l) o (cA oU | _l) o (cA oU | ||||
ox (ide '0ks | ox (ide '0ks | ||||
oxy 0ksI | oxy 0ksI | ||||
oy OI | oy OI | ||||
oy (A_ 'OI | |||||
d) o (zen V | d) o (zen V | ||||
_) o (zo oU | _) o (zo oU | ||||
o (zy_ oU | o (zy_ oU | ||||
&l) ous (_ @s | &l) ous (_ @s | ||||
&) ous (_ @s | &) ous (_ @s | ||||
&) ousy (_ @sI2 | &) ousy (_ @sI2 | ||||
&m) ous (_ @s | |||||
&n) ous (_ @s | &n) ous (_ @s | ||||
_) out (@P3 %aUt // prefix out | _) out (@P3 %aUt // prefix out | ||||
c) ou (si V | c) ou (si V | ||||
_) un (@P2 %Vn // prefix | _) un (@P2 %Vn // prefix | ||||
_) un (AP2 %Vn // prefix | _) un (AP2 %Vn // prefix | ||||
_) unn %Vnn | _) unn %Vnn | ||||
_) un (u %Vn | |||||
@) un (al 'ju:n | @) un (al 'ju:n | ||||
une (_ ju:n | une (_ ju:n | ||||
?3 d) une (_ u:n | ?3 d) une (_ u:n | ||||
j) une (_ u:n | |||||
j) un (A u:n | |||||
l) une (_ u:n | l) une (_ u:n | ||||
r) une (_ u:n | r) une (_ u:n | ||||
?3 t) une (_ u:n | ?3 t) une (_ u:n |
_tld t'ilde | _tld t'ilde | ||||
// names of symbols | // names of symbols | ||||
_. punto | _. punto | ||||
_, koma | _, koma | ||||
// If a letter has a "word" pronunciation which is different from its | // If a letter has a "word" pronunciation which is different from its | ||||
// "letter" name, then include the letter name here, with the letter | // "letter" name, then include the letter name here, with the letter | ||||
// prefixed by a _ character. | // prefixed by a _ character. | ||||
b be | |||||
c Te | |||||
d de | |||||
f Efe | |||||
g xe | |||||
h atSe | |||||
j xOta | |||||
k ka | |||||
l Ele | |||||
m Eme | |||||
n Ene | |||||
ñ En^e | |||||
p pe | |||||
q ku | |||||
r E**e | |||||
s Ese | |||||
t te | |||||
v uBe | |||||
w ,uBe||d'OBle | |||||
x Ekis | |||||
z TEta | |||||
_a a | _a a | ||||
a a $atend | a a $atend | ||||
_o o | _o o | ||||
_y ,ig**'iEQa | _y ,ig**'iEQa | ||||
y ,ig**'iEQa $atend | y ,ig**'iEQa $atend | ||||
ch tSe | ch tSe | ||||
ll Ejje | |||||
ll EJ^e | |||||
?2 ll Ej:e | |||||
á 'a||aTEntw'aDa | á 'a||aTEntw'aDa | ||||
é 'e||aTEntw'aDa | é 'e||aTEntw'aDa | ||||
í 'i||aTEntw'aDa | í 'i||aTEntw'aDa |
.L02 b d g n m // change [s] to [z] before these | .L02 b d g n m // change [s] to [z] before these | ||||
.group a | .group a | ||||
_) a (_ a | |||||
a a | a a | ||||
ai aI | ai aI | ||||
ay (K aI | ay (K aI | ||||
.group b | .group b | ||||
_) b (_ be | |||||
b B | b B | ||||
_) b b | _) b b | ||||
m) b b | m) b b | ||||
b (uA b | b (uA b | ||||
.group c | .group c | ||||
_) c (_ Te | |||||
c k | c k | ||||
c (Y T // ce, ci | c (Y T // ce, ci | ||||
ch tS | ch tS | ||||
.group d | .group d | ||||
_) d (_ de | |||||
d D | d D | ||||
_) d d | _) d d | ||||
m) d d | m) d d | ||||
.group e | .group e | ||||
_) e (_ e | |||||
e e | e e | ||||
e (CK E | e (CK E | ||||
e (r E | e (r E | ||||
.group f | .group f | ||||
_) f (_ 'Efe | |||||
f f | f f | ||||
.group g | .group g | ||||
_) g (_ xe | |||||
g Q | g Q | ||||
_) g g | _) g g | ||||
m) g g | m) g g | ||||
.group h | .group h | ||||
_) h (_ 'atSe | |||||
h // silent | h // silent | ||||
.group i | .group i | ||||
_) i (_ i | |||||
i i | i i | ||||
i (A J^ | i (A J^ | ||||
C) i (A j | C) i (A j | ||||
.group j | .group j | ||||
_) j (_ x'Ota | |||||
j x | j x | ||||
.group k | .group k | ||||
_) k (_ ka | |||||
k k | k k | ||||
.group l | .group l | ||||
_) l (_ Ele | |||||
l l | l l | ||||
ll J^ | ll J^ | ||||
?2 A) ll (A j: | ?2 A) ll (A j: | ||||
.group m | .group m | ||||
_) m (_ Eme | |||||
m m | m m | ||||
.group n | .group n | ||||
_) n (_ Ene | |||||
n n | n n | ||||
n (b m | n (b m | ||||
n (v m | n (v m | ||||
.group o | .group o | ||||
_) o (_ o | |||||
o o | o o | ||||
o (CK O | o (CK O | ||||
o (r O | o (r O | ||||
.group p | .group p | ||||
_) p (_ pe | |||||
p p | p p | ||||
p (t p: | p (t p: | ||||
.group q | .group q | ||||
_) q (_ ku | |||||
q k | q k | ||||
qu k | qu k | ||||
.group r | .group r | ||||
_) r (_ E**e | |||||
r R | r R | ||||
_) r R | |||||
_) r R2 | |||||
r (_ * | r (_ * | ||||
r (t ** | r (t ** | ||||
A) r (A ** | A) r (A ** | ||||
m) r (A R | m) r (A R | ||||
n) r (A R | n) r (A R | ||||
s) r (A R | s) r (A R | ||||
rr *R | |||||
rr *R2 | |||||
.group s | .group s | ||||
_) s (_ Ese | |||||
s s | s s | ||||
&) s (_S1 s | &) s (_S1 s | ||||
.group t | .group t | ||||
_) t (_ te | |||||
t t | t t | ||||
.group u | .group u | ||||
_) u (_ u | |||||
u u | u u | ||||
u (A w | u (A w | ||||
u (y_ w | u (y_ w | ||||
.group v | .group v | ||||
_) v (_ uBe | |||||
v B | v B | ||||
_) v v# | _) v v# | ||||
?1 m) v b | ?1 m) v b | ||||
.group w | .group w | ||||
_) w (_ ,uBe||d'OBle | |||||
w w | w w | ||||
.group x | .group x | ||||
_) x (_ Ekis | |||||
x ks | x ks | ||||
?1 A) x (A Qs | ?1 A) x (A Qs | ||||
x (_ =Qs | x (_ =Qs | ||||
.group y | .group y | ||||
_) y (_ ,ig**'iEQa | |||||
y i | y i | ||||
_) y J | _) y J | ||||
_m) y J | _m) y J | ||||
.group z | .group z | ||||
_) z (_ TEta | |||||
z T | z T | ||||
?2 z (L02 z | ?2 z (L02 z | ||||
ú ''u | ú ''u | ||||
ü u | ü u | ||||
ñ n^ | ñ n^ | ||||
_)ñ (_ En^e | |||||
$ d'Olar | $ d'Olar | ||||
_' apOstrOf | _' apOstrOf | ||||
_( 'uvr@-parA~t'Ez | _( 'uvr@-parA~t'Ez | ||||
_) f'Erm parA~t'Ez | _) f'Erm parA~t'Ez | ||||
_* astErisk: | |||||
_* asterisk: | |||||
_, virgyl | _, virgyl | ||||
_- tirE | _- tirE | ||||
_. _|pw%E~ | _. _|pw%E~ | ||||
_? pwE~dE~terogasj'O~ | _? pwE~dE~terogasj'O~ | ||||
_[ uvr@-_kroSE | _[ uvr@-_kroSE | ||||
_\ b'aksl'aS | _\ b'aksl'aS | ||||
_] f'Erm_kroS'E | |||||
_] f'E2rm_kroS'E | |||||
_^ sirkOnflEks | _^ sirkOnflEks | ||||
__ sulin^e | __ sulin^e | ||||
_` aks'A~_gr'av | _` aks'A~_gr'av | ||||
_{ uvr_akOlad | _{ uvr_akOlad | ||||
_| bar | _| bar | ||||
_} f'Erm_akOl'ad | |||||
_} f'E2rm_akOl'ad | |||||
² pw^is'A~s||d'Y | ² pw^is'A~s||d'Y | ||||
bd boulevard $text | bd boulevard $text | ||||
cci $abbrev | cci $abbrev | ||||
cio $abbrev | cio $abbrev | ||||
ctrl kO~tRo2l $pause | |||||
ctrl control $text $pause | |||||
dept depart@mA~ | dept depart@mA~ | ||||
edf $abbrev | edf $abbrev | ||||
etc etsetera | etc etsetera | ||||
ghz ZigaErts | |||||
ghz ZigaE2rts | |||||
hmm h@m | hmm h@m | ||||
hz _!Erts | |||||
hz _!E2rts | |||||
ibm $abbrev | ibm $abbrev | ||||
ide $abbrev | ide $abbrev | ||||
ip $abbrev | ip $abbrev | ||||
jaws dZ'O2wz | jaws dZ'O2wz | ||||
kde $abbrev | kde $abbrev | ||||
kg kilogRam | kg kilogRam | ||||
khz kiloErts | |||||
khz kiloE2rts | |||||
km kilomEtr | km kilomEtr | ||||
kw kilowat | kw kilowat | ||||
m. m@sjY | m. m@sjY | ||||
mbrola EmbRola | mbrola EmbRola | ||||
mhz megaErts | |||||
mhz megaE2rts | |||||
mlle mad@mwAzEl | mlle mad@mwAzEl | ||||
mme madam | mme madam | ||||
mr m@sjY | mr m@sjY | ||||
//********************* | //********************* | ||||
(1 er) pr@mjer2 | (1 er) pr@mjer2 | ||||
(1 ers) pr@mi;'ez2 | |||||
(1 ère) pr@mi;'Er | |||||
(1 ères) pr@mi;'Erz2 | |||||
(1 èrement) pr@mi;'Er@-mA~ | |||||
(1 ers) pr@mjez2 | |||||
(1 ère) pr@mjEr | |||||
(1 ères) pr@mjErz2 | |||||
(1 èrement) pr@mjEr@-mA~ | |||||
monsieur m@sjY | monsieur m@sjY | ||||
(qu'est ce que) kEsk@ $u | (qu'est ce que) kEsk@ $u | ||||
absent absA~ | absent absA~ | ||||
admin admin | admin admin | ||||
airbus Erbys | |||||
airbus E2rbys | |||||
auvent ovA~ | auvent ovA~ | ||||
bien bjE~n2 $u+ | bien bjE~n2 $u+ | ||||
bis bis | bis bis | ||||
(chef d'oeuvre) chédeuvre $text | (chef d'oeuvre) chédeuvre $text | ||||
choeur kWr | choeur kWr | ||||
cocus coky | cocus coky | ||||
dernier dErnjer2 | |||||
dernier dE2rnjer2 | |||||
éloquent ElokA~t2 | éloquent ElokA~t2 | ||||
fier fier $verb | fier fier $verb | ||||
fuel fjul | fuel fjul | ||||
scorbut skOrbyt | scorbut skOrbyt | ||||
scout skut | scout skut | ||||
stout staut | stout staut | ||||
uppercut ypErkyt | |||||
uppercut ypE2rkyt | |||||
ut yt | ut yt | ||||
zut zyt | zut zyt | ||||
end _^_en | end _^_en | ||||
epson EpsOn | epson EpsOn | ||||
espeak @spi:k | espeak @spi:k | ||||
ethernet etErnEt | |||||
ethernet etE2rnEt | |||||
exit egzit | exit egzit | ||||
(file zilla) fa2jl||zija | (file zilla) fa2jl||zija | ||||
from _^_en $u+ | from _^_en $u+ | ||||
constations kO~statjO~z2 | constations kO~statjO~z2 | ||||
contentions kO~tA~tjO~z2 | contentions kO~tA~tjO~z2 | ||||
dations datjO~z2 | dations datjO~z2 | ||||
désertions dezErtjO~z2 $verb | |||||
désertions dezE2rtjO~z2 $verb | |||||
exploitions EksplwAtjO~z2 | exploitions EksplwAtjO~z2 | ||||
heurtions hWrtjO~z2 | heurtions hWrtjO~z2 | ||||
partions partjO~z2 | partions partjO~z2 |
// 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
// | // | ||||
// Updated: 2008-09-13 Michel Such <[email protected]> | |||||
// Updated: 2008-09-16 Michel Such <[email protected]> | |||||
// | // | ||||
// Letter classes: | // Letter classes: | ||||
// Define use of the final 'e' in french | // Define use of the final 'e' in french | ||||
e (_ | e (_ | ||||
qu) e (_ =@- | |||||
qu) e (s_ =@- | |||||
elqu) e =@- | elqu) e =@- | ||||
uisqu) e =@ | uisqu) e =@ | ||||
rsqu) e =@ | rsqu) e =@ | ||||
%C) e (mA // actuellement guillemets | %C) e (mA // actuellement guillemets | ||||
ct) e (ment @ | ct) e (ment @ | ||||
rC) e (ment @ | rC) e (ment @ | ||||
g) e (rie | |||||
AC) e (ment | AC) e (ment | ||||
u) e (ment @- | u) e (ment @- | ||||
ul) e (CA | ul) e (CA | ||||
Cr) eamer i:mWr | Cr) eamer i:mWr | ||||
Cl) eaner i:nWr | Cl) eaner i:nWr | ||||
Ack) et (_ Et | Ack) et (_ Et | ||||
eïn (_ 'Ein | |||||
// group e: English section | // group e: English section |
51 phoneme tables | |||||
52 phoneme tables | |||||
new total | new total | ||||
base 98 98 | base 98 98 | ||||
base2 24 117 | base2 24 117 | ||||
fr_ca 11 134 | fr_ca 11 134 | ||||
hi 51 135 | hi 51 135 | ||||
ta 17 138 | ta 17 138 | ||||
ml 13 137 | |||||
hu 23 114 | hu 23 114 | ||||
nl 28 121 | nl 28 121 | ||||
pl 18 111 | pl 18 111 | ||||
r3/r_2 [r/] fr | r3/r_2 [r/] fr | ||||
r3/r_a [(a)] base | r3/r_a [(a)] base | ||||
r3/r_e [(e)] base | r3/r_e [(e)] base | ||||
[E] fr | |||||
r3/r_i [(i)] base | r3/r_i [(i)] base | ||||
[i] fr | [i] fr | ||||
r3/r_n [r/] base | r3/r_n [r/] base | ||||
[r/] fr | [r/] fr | ||||
[r/] ru | [r/] ru | ||||
r3/r_o [(o)] base | r3/r_o [(o)] base | ||||
[O] fr | |||||
[O2] fr | |||||
r3/r_ru [R4] ru | r3/r_ru [R4] ru | ||||
r3/r_ru2 [R4] ru | r3/r_ru2 [R4] ru | ||||
r3/r_trill [R2] base | r3/r_trill [R2] base | ||||
[(i)] base | [(i)] base | ||||
[(o)] base | [(o)] base | ||||
[(u)] base | [(u)] base | ||||
[O] fr | |||||
[W] fr | |||||
[Y] fr | [Y] fr | ||||
[a] fr | |||||
[e] fr | [e] fr | ||||
[i] fr | [i] fr | ||||
[u] fr | [u] fr | ||||
[y] fr | [y] fr | ||||
[W2] fr | |||||
[a2] fr | [a2] fr | ||||
[i:] fr | [i:] fr | ||||
[u:] fr | [u:] fr | ||||
[@] en_rp | [@] en_rp | ||||
[V] cy | [V] cy | ||||
[@4] hi | [@4] hi | ||||
[@] ml | |||||
[@] sq | [@] sq | ||||
vowel/@- [@-] base | vowel/@- [@-] base | ||||
[r*] hr | [r*] hr | ||||
[3] de | [3] de | ||||
[@] de | [@] de | ||||
[a] hi | [a] hi | ||||
[a] ml | |||||
[a#] ru | [a#] ru | ||||
[&] pt_pt | [&] pt_pt | ||||
[&/] pt_pt | [&/] pt_pt | ||||
vowel/a_5 [a] fr | vowel/a_5 [a] fr | ||||
[a2] fr | [a2] fr | ||||
[a:] ta | [a:] ta | ||||
[a:] ml | |||||
[a/] it | [a/] it | ||||
[a] la | [a] la | ||||
[a] sv | [a] sv | ||||
[E:] fr | [E:] fr | ||||
[e] ta | [e] ta | ||||
[e:] ta | [e:] ta | ||||
[e] ml | |||||
[e:] ml | |||||
[e] hr | [e] hr | ||||
[e/] it | [e/] it | ||||
[e:] la | [e:] la | ||||
[i] eo | [i] eo | ||||
[I] fr | [I] fr | ||||
[i:] ta | [i:] ta | ||||
[i:] ml | |||||
[i:] hu | [i:] hu | ||||
[i] it | [i] it | ||||
[i] pt_pt | [i] pt_pt | ||||
[i/] pt_pt | [i/] pt_pt | ||||
[y] ro | [y] ro | ||||
vowel/i_6 [i] ta | vowel/i_6 [i] ta | ||||
[i] ml | |||||
[i] hr | [i] hr | ||||
[i] tr | [i] tr | ||||
[i] ku | [i] ku | ||||
[i] zhy | [i] zhy | ||||
[I] ku | [I] ku | ||||
vowel/ii# [Y] cy | vowel/ii# [Y] cy | ||||
[y] ml | |||||
[Y] ru | [Y] ru | ||||
[I] ku | [I] ku | ||||
vowel/ii_2 [i] zh | vowel/ii_2 [i] zh | ||||
[o] hi | [o] hi | ||||
[o] ta | [o] ta | ||||
[o:] ta | [o:] ta | ||||
[o] ml | |||||
[o:] ml | |||||
[o] it | [o] it | ||||
[o/] it | [o/] it | ||||
[O] la | [O] la | ||||
[U] fr | [U] fr | ||||
[u] ta | [u] ta | ||||
[u:] ta | [u:] ta | ||||
[u] ml | |||||
[u:] ml | |||||
[u:] cs | [u:] cs | ||||
[U] la | [U] la | ||||
[u] id | [u] id | ||||
[o@] en_us | [o@] en_us | ||||
[O:] en_sc | [O:] en_sc | ||||
vwl_en_us/ur [U@] en_us | vwl_en_us/ur [U@] en_us | ||||
vwl_fr/r_@ [W] fr | |||||
[W2] fr | |||||
vwl_fr/@R [x] pt_pt | vwl_fr/@R [x] pt_pt | ||||
vwl_fr/@R2 [R] fr_ca | vwl_fr/@R2 [R] fr_ca | ||||
vwl_fr/@R3 [R] fr | vwl_fr/@R3 [R] fr | ||||
[r2] fr | [r2] fr | ||||
vwl_fr/@R4 [r] fr | vwl_fr/@R4 [r] fr | ||||
[r2] fr | [r2] fr | ||||
vwl_fr/r_a [a] fr | |||||
[a2] fr | |||||
vwl_fr/r_e [E2] fr | |||||
vwl_fr/ri [i] fr | |||||
vwl_fr/r_u [u] fr | |||||
vwl_fr/r_y [y] fr | |||||
vwl_fr/w_a [wA] fr | vwl_fr/w_a [wA] fr | ||||
vwl_hi/A [a:] hi | vwl_hi/A [a:] hi | ||||
vwl_hi/l-voc [l-] jbo | vwl_hi/l-voc [l-] jbo |
phoneme a | phoneme a | ||||
vowel starttype (a) endtype (@) | |||||
vowel starttype (e) endtype (@) | |||||
length 210 | length 210 | ||||
formants vwl_en_us/a | formants vwl_en_us/a | ||||
before n vnasal/ee_n2 | before n vnasal/ee_n2 |
formants vowel/a_5 | formants vowel/a_5 | ||||
after l l/la-15 | after l l/la-15 | ||||
before l/ DFT-20+l/xl | before l/ DFT-20+l/xl | ||||
before r/ DFT-30+r/xr | |||||
before r/ DFT+vwl_fr/r_a | |||||
reduceto a2 1 | reduceto a2 1 | ||||
endphoneme | endphoneme | ||||
formants vowel/a_5 | formants vowel/a_5 | ||||
after l l/la-15 | after l l/la-15 | ||||
before (r) DFT-20+r/xr | before (r) DFT-20+r/xr | ||||
before r/ DFT-20+r/xr | |||||
before r/ DFT+vwl_fr/r_a | |||||
endphoneme | endphoneme | ||||
formants vowel/e_mid | formants vowel/e_mid | ||||
after l l/le-15 | after l l/le-15 | ||||
before l/ DFT-20+l/xl | before l/ DFT-20+l/xl | ||||
before r/ DFT+r3/r_e | |||||
reduceto E2 1 | reduceto E2 1 | ||||
endphoneme | endphoneme | ||||
length 175 | length 175 | ||||
formants vowel/e_mid | formants vowel/e_mid | ||||
after l l/le-15 | after l l/le-15 | ||||
before r/ DFT-20 | |||||
before r/ DFT+vwl_fr/r_e | |||||
endphoneme | endphoneme | ||||
formants vowel/i_3 | formants vowel/i_3 | ||||
linkout ; | linkout ; | ||||
after l l/li-15 | after l l/li-15 | ||||
after (r) vwl_fr/ri | |||||
before l/ DFT-20+l/L1_iL-80 | before l/ DFT-20+l/L1_iL-80 | ||||
before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
before r/ DFT+r3/r_i | before r/ DFT+r3/r_i | ||||
after l l/lu-20 | after l l/lu-20 | ||||
before l/ DFT-20+l/L1_uL-80 | before l/ DFT-20+l/L1_uL-80 | ||||
before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
before r/ DFT-20+r/xr | |||||
before r/ DFT-20+vwl_fr/r_u | |||||
endphoneme | endphoneme | ||||
formants vowel/y_2 | formants vowel/y_2 | ||||
after l l/lu-20 | after l l/lu-20 | ||||
before l/ DFT-20+l/L1_uL-80 | before l/ DFT-20+l/L1_uL-80 | ||||
before (r) vwl_fr/r_y | |||||
before r/ DFT+r/xr-30 | before r/ DFT+r/xr-30 | ||||
endphoneme | endphoneme | ||||
formants vowel/@_5 | formants vowel/@_5 | ||||
after l l/l@-20 | after l l/l@-20 | ||||
before l/ DFT-40+l/xl+15 | before l/ DFT-40+l/xl+15 | ||||
before r/ DFT-20+r/xr | |||||
before r/ DFT+vwl_fr/r_@ | |||||
reduceto Y 1 | reduceto Y 1 | ||||
endphoneme | endphoneme | ||||
formants vowel/@_3 | formants vowel/@_3 | ||||
after l l/l@-20 | after l l/l@-20 | ||||
before l/ DFT-40+l/xl+15 | before l/ DFT-40+l/xl+15 | ||||
before r/ DFT-20+r3/r_@ | |||||
before r/ DFT+vwl_fr/r_@ | |||||
endphoneme | endphoneme | ||||
vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | ||||
formants b/b+x/b%70 | formants b/b+x/b%70 | ||||
before _ b/b_+x/b_ | before _ b/b_+x/b_ | ||||
before R b/b+x/b_ | |||||
after _ NULL | after _ NULL | ||||
after @ b/xb%50 | after @ b/xb%50 | ||||
lengthmod 5 | lengthmod 5 | ||||
phoneme R // for beginning of words | phoneme R // for beginning of words | ||||
vcd pal frc | vcd pal frc | ||||
vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40 | |||||
vowelin f1=0 f2=800 -50 50 f3=-100 100 | |||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/ | beforenotvowel r/ |
phonemetable ta hi | phonemetable ta hi | ||||
include ph_tamil | include ph_tamil | ||||
phonemetable ml hi | |||||
include ph_malayalam | |||||
phonemetable hu base | phonemetable hu base | ||||
include ph_hungarian | include ph_hungarian | ||||
f_trans = stdout; | f_trans = stdout; | ||||
option_ssml = 1; | option_ssml = 1; | ||||
option_phoneme_input = 1; | |||||
// if(LoadVoice(voice_name,0) == NULL) | // if(LoadVoice(voice_name,0) == NULL) |
else | else | ||||
repeat = 0; | repeat = 0; | ||||
if((prev==5) || (prev==50) || (prev==500)) | |||||
if((prev > 1) && (prev != 10) && (prev != 100)) | |||||
{ | { | ||||
if(value >= prev) | if(value >= prev) | ||||
return(0); | return(0); | ||||
if(Lookup("_dpt2",buf1)) | if(Lookup("_dpt2",buf1)) | ||||
strcat(ph_out,buf1); | strcat(ph_out,buf1); | ||||
if(c == langopts.decimal_sep) | |||||
if((c == langopts.decimal_sep) && isdigit(word[n_digits+1])) | |||||
{ | { | ||||
Lookup("_dpt",buf1); | Lookup("_dpt",buf1); | ||||
strcat(ph_out,buf1); | strcat(ph_out,buf1); |
SetWordStress(phonemes,flags[0],-1,0); | SetWordStress(phonemes,flags[0],-1,0); | ||||
DecodePhonemes(phonemes,phonemes2); | DecodePhonemes(phonemes,phonemes2); | ||||
sprintf(text_out,"[[%s]]",phonemes2); | sprintf(text_out,"[[%s]]",phonemes2); | ||||
option_phoneme_input = 1; | |||||
option_phoneme_input |= 2; | |||||
return(text_out); | return(text_out); | ||||
} | } | ||||
return(NULL); | return(NULL); | ||||
DecodePhonemes(phonemes,phonemes2); | DecodePhonemes(phonemes,phonemes2); | ||||
sprintf(buf,"[[%s]] ",phonemes2); | sprintf(buf,"[[%s]] ",phonemes2); | ||||
} | } | ||||
option_phoneme_input |= 2; | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
strcpy(buf,"[[(X1)(X1)(X1)]]"); | strcpy(buf,"[[(X1)(X1)(X1)]]"); | ||||
option_phoneme_input |= 2; | |||||
} | } | ||||
option_phoneme_input = 1; | |||||
return(buf); | return(buf); | ||||
} | } | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
sprintf(p,"%s %s %d %s %s [[______]]", | |||||
sprintf(p,"%s %s %d %s %s", | |||||
tone_punct_on,punctname,punct_count,punctname,tone_punct_off); | tone_punct_on,punctname,punct_count,punctname,tone_punct_off); | ||||
option_phoneme_input = 1; | |||||
return(CLAUSE_COMMA); | |||||
} | } | ||||
} | } | ||||
else | else | ||||
if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) | if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) | ||||
return(punct_attributes[lookupwchar(punct_chars,c1)]); | return(punct_attributes[lookupwchar(punct_chars,c1)]); | ||||
return(CLAUSE_COMMA); | |||||
return(CLAUSE_SHORTCOMMA); | |||||
} // end of AnnouncePunctuation | } // end of AnnouncePunctuation | ||||
#define SSML_SPEAK 1 | #define SSML_SPEAK 1 |
option_waveout = 0; | option_waveout = 0; | ||||
option_wordgap = 0; | option_wordgap = 0; | ||||
option_endpause = 1; | option_endpause = 1; | ||||
option_phoneme_input = 1; | |||||
option_multibyte = espeakCHARS_AUTO; // auto | option_multibyte = espeakCHARS_AUTO; // auto | ||||
f_trans = stdout; | f_trans = stdout; | ||||
} | } | ||||
SHOW_TIME("espeak_Cancel > LEAVE"); | SHOW_TIME("espeak_Cancel > LEAVE"); | ||||
#endif | #endif | ||||
embedded_value[EMBED_T] = 0; // reset echo for pronunciation announcements | |||||
return EE_OK; | return EE_OK; | ||||
} // end of espeak_Cancel | } // end of espeak_Cancel | ||||
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.39 08.Sep.08"; | |||||
const char *version_string = "1.39.04 19.Sep.08"; | |||||
const int version_phdata = 0x013900; | const int version_phdata = 0x013900; | ||||
int option_device_number = -1; | int option_device_number = -1; |
} | } | ||||
n_phoneme_list = 0; | n_phoneme_list = 0; | ||||
WcmdqStop(); | WcmdqStop(); | ||||
embedded_value[EMBED_T] = 0; | |||||
return(0); | return(0); | ||||
} | } | ||||
#define L_jbo 0x6a626f // jbo Lojban | #define L_jbo 0x6a626f // jbo Lojban | ||||
#define L_zhy 0x7a6879 // zhy | #define L_zhy 0x7a6879 // zhy | ||||
// start of unicode pages for character sets | |||||
#define OFFSET_GREEK 0x380 | #define OFFSET_GREEK 0x380 | ||||
#define OFFSET_CYRILLIC 0x420 | #define OFFSET_CYRILLIC 0x420 | ||||
#define OFFSET_DEVANAGARI 0x900 | #define OFFSET_DEVANAGARI 0x900 | ||||
#define OFFSET_TAMIL 0xb80 | #define OFFSET_TAMIL 0xb80 | ||||
#define OFFSET_MALAYALAM 0xd00 | |||||
#define OFFSET_KOREAN 0x1100 | #define OFFSET_KOREAN 0x1100 | ||||
break; | break; | ||||
case L('t','a'): // Tamil | case L('t','a'): // Tamil | ||||
case L('m','l'): // Malayalam | |||||
{ | { | ||||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | ||||
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | ||||
tr->langopts.stress_rule = 0; | tr->langopts.stress_rule = 0; | ||||
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | ||||
tr->letter_bits_offset = OFFSET_TAMIL; | tr->letter_bits_offset = OFFSET_TAMIL; | ||||
if(name2 == L('m','l')) | |||||
{ | |||||
tr->letter_bits_offset = OFFSET_MALAYALAM; | |||||
} | |||||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | ||||
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | memset(tr->letter_bits,0,sizeof(tr->letter_bits)); |
int option_sayas2 = 0; // used in translate_clause() | int option_sayas2 = 0; // used in translate_clause() | ||||
int option_emphasis = 0; // 0=normal, 1=normal, 2=weak, 3=moderate, 4=strong | int option_emphasis = 0; // 0=normal, 1=normal, 2=weak, 3=moderate, 4=strong | ||||
int option_ssml = 0; | int option_ssml = 0; | ||||
int option_phoneme_input = 1; // allow [[phonemes]] in input | |||||
int option_phoneme_input = 0; // allow [[phonemes]] in input | |||||
int option_phoneme_variants = 0; // 0= don't display phoneme variant mnemonics | int option_phoneme_variants = 0; // 0= don't display phoneme variant mnemonics | ||||
int option_wordgap = 0; | int option_wordgap = 0; | ||||
if((c >= 0xb81) && (c <= 0xbe5)) | if((c >= 0xb81) && (c <= 0xbe5)) | ||||
return(1); // Tamil vowel signs and other signs | return(1); // Tamil vowel signs and other signs | ||||
if((c >= 0xd01) && (c <= 0xd57)) | |||||
return(1); // Malayalam vowel signs and other signs | |||||
if((c >= 0x300) && (c <= 0x36f)) | if((c >= 0x300) && (c <= 0x36f)) | ||||
return(1); // combining accents | return(1); // combining accents | ||||
if(!iswalpha(prev_in)) | if(!iswalpha(prev_in)) | ||||
{ | { | ||||
if((c == '\'') && (next_in == 'n')) | |||||
if((c == '\'') && (next_in == 'n') && isspace(ptr[1])) | |||||
{ | { | ||||
// n preceded by either apostrophe or U2019 "right single quotation mark" | // n preceded by either apostrophe or U2019 "right single quotation mark" | ||||
ptr[0] = ' '; // delete the n | ptr[0] = ' '; // delete the n | ||||
int letter_count = 0; | int letter_count = 0; | ||||
int space_inserted = 0; | int space_inserted = 0; | ||||
int syllable_marked = 0; | int syllable_marked = 0; | ||||
int decimal_sep_count = 0; | |||||
char *word; | char *word; | ||||
char *p; | char *p; | ||||
int j, k; | int j, k; | ||||
embedded_ix = 0; | embedded_ix = 0; | ||||
embedded_read = 0; | embedded_read = 0; | ||||
option_phoneme_input &= 1; // clear bit 1 (temporary indication) | |||||
if((clause_start_char = count_characters) < 0) | if((clause_start_char = count_characters) < 0) | ||||
clause_start_char = 0; | clause_start_char = 0; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
if(iswdigit(prev_out)) | if(iswdigit(prev_out)) | ||||
{ | { | ||||
if(!iswdigit(c) && (c != '.') && (c != ',')) | if(!iswdigit(c) && (c != '.') && (c != ',')) | ||||
space_inserted = 1; | space_inserted = 1; | ||||
} | } | ||||
} | } | ||||
else | |||||
{ | |||||
if(prev_in != ',') | |||||
{ | |||||
decimal_sep_count = 0; | |||||
} | |||||
} | |||||
if((c == '[') && (next_in == '[') && option_phoneme_input) | if((c == '[') && (next_in == '[') && option_phoneme_input) | ||||
{ | { | ||||
{ | { | ||||
} | } | ||||
else | else | ||||
if((prev_out != ' ') && !iswdigit(prev_out) && (prev_out != langopts.decimal_sep)) // TEST2 | |||||
if((prev_out != ' ') && !iswdigit(prev_out)) | |||||
{ | { | ||||
c = ' '; | |||||
space_inserted = 1; | |||||
if((prev_out != langopts.decimal_sep) || ((decimal_sep_count > 0) && (langopts.decimal_sep == ','))) | |||||
{ | |||||
c = ' '; | |||||
space_inserted = 1; | |||||
} | |||||
else | |||||
{ | |||||
decimal_sep_count = 1; | |||||
} | |||||
} | } | ||||
else | else | ||||
if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) | if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) |
#define CLAUSE_VOICE 0 + 0x24000 | #define CLAUSE_VOICE 0 + 0x24000 | ||||
#define CLAUSE_PERIOD 35 + 0x80000 | #define CLAUSE_PERIOD 35 + 0x80000 | ||||
#define CLAUSE_COMMA 20 + 0x41000 | #define CLAUSE_COMMA 20 + 0x41000 | ||||
#define CLAUSE_SHORTCOMMA 15 + 0x41000 | |||||
#define CLAUSE_SHORTCOMMA 5 + 0x41000 | |||||
#define CLAUSE_QUESTION 35 + 0x82000 | #define CLAUSE_QUESTION 35 + 0x82000 | ||||
#define CLAUSE_EXCLAMATION 40 + 0x83000 | #define CLAUSE_EXCLAMATION 40 + 0x83000 | ||||
#define CLAUSE_COLON 30 + 0x40000 | #define CLAUSE_COLON 30 + 0x40000 |