git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@11 d46cf337-b52f-0410-862d-fd96e6ae7743master
// Abbreviations | // Abbreviations | ||||
a.k ,antaUk@-*'isto | a.k ,antaUk@-*'isto | ||||
a.k. ,antaUk@-*'isto | |||||
akk alinome | akk alinome | ||||
anst anstataU | anst anstataU | ||||
bea $abbrev | bea $abbrev | ||||
nro numeRo | nro numeRo | ||||
pĝ paZo | pĝ paZo | ||||
p.k p,ostk@-*'isto | p.k p,ostk@-*'isto | ||||
p.k. p,ostk@-*'isto | |||||
uea $abbrev | uea $abbrev | ||||
uk $abbrev | uk $abbrev | ||||
_) r(_ Ro | _) r(_ Ro | ||||
r R | r R | ||||
A) r (A R | A) r (A R | ||||
C) r (A @-* | |||||
K) r (A @-* | |||||
-) ro (_ R%o | |||||
-) ro (_ R%o d-ro, n-ro | |||||
.group s | .group s | ||||
_) s(_ so | _) s(_ so |
// This file in UTF8 encoded | // This file in UTF8 encoded | ||||
// Letters | |||||
// If a letter has a "word" pronunciation which is different from its | |||||
// "letter" name, then include the letter name here, with the letter | |||||
// prefixed by a _ character. | |||||
_a a | |||||
_o o | |||||
_y ,igr'iEQa | |||||
_. punto | |||||
// numbers | // numbers | ||||
_0 TE*o | _0 TE*o | ||||
_11 'onTe | _11 'onTe | ||||
_12 d'oTe | _12 d'oTe | ||||
_13 t@-*'ETe | _13 t@-*'ETe | ||||
_14 kat'orTe | |||||
_14 kat'oRTe | |||||
_15 k'inTe | _15 k'inTe | ||||
_20 v'eInte | _20 v'eInte | ||||
_2X v'eInt | _2X v'eInt | ||||
alguna $u | alguna $u | ||||
// Letters | |||||
// If a letter has a "word" pronunciation which is different from its | |||||
// "letter" name, then include the letter name here, with the letter | |||||
// prefixed by a _ character. | |||||
_a a | |||||
a a $atend | |||||
_o o | |||||
o o $atend | |||||
_y ,ig@-*'iEQa | |||||
y ,ig@-*'iEQa $atend | |||||
_. punto | |||||
// pronunciation exceptions | // pronunciation exceptions |
.group r | .group r | ||||
_) r (_ E*e | _) r (_ E*e | ||||
r r | |||||
r R | |||||
_) r R | _) r R | ||||
A) r (A * | A) r (A * | ||||
C) r (A @-* | C) r (A @-* |
qu kv | qu kv | ||||
.group r | .group r | ||||
r r | |||||
r R | |||||
A) r (A * | A) r (A * | ||||
K) r (A @-* | K) r (A @-* | ||||
rr *r | |||||
rr R | |||||
r (_ R | |||||
K) r (K r- | K) r (K r- | ||||
// Italian: any [E] or [O] phonemes in unstressed words must be listed explicitly | // Italian: any [E] or [O] phonemes in unstressed words must be listed explicitly | ||||
// Letters | |||||
// If a letter has a "word" pronunciation which is different from its | |||||
// "letter" name, then include the letter name here, with the letter | |||||
// prefixed by a _ character. | |||||
_e e: | |||||
_i i: | |||||
_o O: | |||||
// character names | // character names | ||||
_cap k'apital | _cap k'apital | ||||
_?? s'imbolo | _?? s'imbolo | ||||
_! p'Untoesklamat'ivo | _! p'Untoesklamat'ivo | ||||
_" virgolet:e | |||||
_" viRgolet:e | |||||
_# kantSellet:o | _# kantSellet:o | ||||
_$ dolla:ro | |||||
_% pertS'ento | |||||
_$ dolla:Ro | |||||
_% peRtS'ento | |||||
_& _!e: | _& _!e: | ||||
_' ap'Ostrofo | |||||
_( ap'ertapar'entezi | |||||
_) kj,Uzapar'entezi | |||||
_* asterisko | |||||
_' ap'OstRofo | |||||
_( ap'eRtapaR'entezi | |||||
_) kj,UzapaR'entezi | |||||
_* asteRisko | |||||
_+ pjU | _+ pjU | ||||
_, v'irgola | |||||
_- trat:ino | |||||
_, v'iRgola | |||||
_- t@-*at:ino | |||||
_. pUnto | _. pUnto | ||||
_/ slaS | _/ slaS | ||||
_: d,Uep'Unte | _: d,Uep'Unte | ||||
_; p'Untoev'irgola | |||||
_< ap'erta'angolo | |||||
_; p'Untoev'iRgola | |||||
_< ap'eRta'angolo | |||||
_= Ugwale | _= Ugwale | ||||
_> kj,Uza'angolo | _> kj,Uza'angolo | ||||
_? p'UntointeRogat'ivo | _? p'UntointeRogat'ivo | ||||
_@ ki'otS:ola | _@ ki'otS:ola | ||||
_[ ap'ertakw'adra | |||||
_[ ap'eRtakw'ad@-*a | |||||
_\ bakslaS | _\ bakslaS | ||||
_] kj,Uzakw'adra | |||||
_] kj,Uzakw'ad@-*a | |||||
_^ kap:UtS:o | _^ kap:UtS:o | ||||
__ 'Underskore | |||||
_` bakpraIm | |||||
_{ ap'ertagr'af:a | |||||
__ 'UndeRskoRe | |||||
_` bakp@-*aIm | |||||
_{ ap'eRtag@-*'af:a | |||||
_| b'aRa | _| b'aRa | ||||
_} kj,Uzagr'af:a | |||||
_} kj,Uzag@-*'af:a | |||||
_~ tilde | _~ tilde | ||||
_10 di'etSi | _10 di'etSi | ||||
_11 'unditSi | _11 'unditSi | ||||
_12 d'oditSi | _12 d'oditSi | ||||
_13 tr'editSi | |||||
_14 kwat:'OrditSi | |||||
_13 t@-*'editSi | |||||
_14 kwat:'ORditSi | |||||
_15 kw'imditSi | _15 kw'imditSi | ||||
_16 s'editSi | _16 s'editSi | ||||
_17 ditSas:'Et:e | _17 ditSas:'Et:e | ||||
_18 ditS'Ot:o | _18 ditS'Ot:o | ||||
_19 ditSann'ove | _19 ditSann'ove | ||||
_2X v'ente | _2X v'ente | ||||
_3X tr'enta | |||||
_4X kwar'anta | |||||
_3X t@-*'enta | |||||
_4X kwaR'anta | |||||
_5X tSinkw'anta | _5X tSinkw'anta | ||||
_6X sess'anta | _6X sess'anta | ||||
_7X set:'anta | _7X set:'anta | ||||
_1M1 m'ille | _1M1 m'ille | ||||
_0M2 mili'oni | _0M2 mili'oni | ||||
_1M2 unmili'one | _1M2 unmili'one | ||||
_0M3 mili'ardi | |||||
_1M3 unmili'ardo | |||||
_0M3 mili'aRdi | |||||
_1M3 unmili'aRdo | |||||
_0M4 bili'oni | _0M4 bili'oni | ||||
_1M4 unbili'one | _1M4 unbili'one | ||||
_dpt _v'irgola | |||||
_dpt _v'iRgola | |||||
_0Z2 tSent'ezimi // 100ths | _0Z2 tSent'ezimi // 100ths | ||||
_0Z3 mill'ezimi // 1000ths | _0Z3 mill'ezimi // 1000ths | ||||
facevate $u+ | facevate $u+ | ||||
facevano $u+ | facevano $u+ | ||||
// Letters | |||||
// If a letter has a "word" pronunciation which is different from its | |||||
// "letter" name, then include the letter name here, with the letter | |||||
// prefixed by a _ character. | |||||
_e e: | |||||
e e: $atend | |||||
_i i: | |||||
i i: $atend | |||||
_o O: | |||||
o O: $atend | |||||
// exceptions | // exceptions | ||||
aereo $2 | aereo $2 | ||||
conoscerla $1 | conoscerla $1 | ||||
no nO | no nO | ||||
posta pOsta | posta pOsta | ||||
tesser tess'Er | |||||
tesser tess'ER | |||||
uomini $1 | uomini $1 |
.group r | .group r | ||||
_) r(_ ER*e | _) r(_ ER*e | ||||
C) r @-* | C) r @-* | ||||
r r | |||||
r R | |||||
_) r R | _) r R | ||||
rr R* | rr R* | ||||
A) r (A R | A) r (A R |
// numeric | // numeric | ||||
//******** | //******** | ||||
_0 n'Ul | _0 n'Ul | ||||
_1 'E:n | |||||
_1 'e:n | |||||
_2 t'u: | _2 t'u: | ||||
_3 t@-*'e: | _3 t@-*'e: | ||||
_4 f'i:*E | _4 f'i:*E | ||||
_5 f'E:m | |||||
_5 f'e:m | |||||
_6 s'Eks | _6 s'Eks | ||||
_7 S'u-: | _7 S'u-: | ||||
_8 'Ot:@2 | _8 'Ot:@2 |
.group l | .group l | ||||
l l | l l | ||||
ll (K l | |||||
lj j | lj j | ||||
.group m | .group m | ||||
m m | m m | ||||
mm (K m | |||||
.group n | .group n | ||||
n n | n n | ||||
nn (K n | |||||
ng N | ng N | ||||
n (k N | n (k N | ||||
.group r | .group r | ||||
r r | r r | ||||
rr R | |||||
K) r @-* | K) r @-* | ||||
A) r (A * | A) r (A * | ||||
r) r | r) r | ||||
.group s | .group s | ||||
s s | s s | ||||
ss ss | ss ss | ||||
ss (_ s | |||||
sch S | sch S | ||||
sj S | sj S | ||||
skj S | skj S | ||||
.group v | .group v | ||||
v v | v v | ||||
vv (_ v | |||||
.group w | .group w | ||||
w v | w v | ||||
.group z | .group z | ||||
z s | z s | ||||
zz z | zz z | ||||
zz (_ z | |||||
.group å | .group å | ||||
å o: | å o: |
€ 'eU*u | € 'eU*u | ||||
§ pa*'ag@-*,afu | § pa*'ag@-*,afu | ||||
D_) º %o // ordinal | |||||
D_) ª %a // ordinal | |||||
// don't speak multiple occurances of these symbols | // don't speak multiple occurances of these symbols | ||||
, (D v'irgul& | , (D v'irgul& | ||||
. p'oNtu | . p'oNtu |
af 37 123 | af 37 123 | ||||
cy 30 118 | cy 30 118 | ||||
de 28 115 | de 28 115 | ||||
eo 15 104 | |||||
eo 16 104 | |||||
fi 40 123 | fi 40 123 | ||||
fr 33 115 | fr 33 115 | ||||
fr_ca 11 115 | fr_ca 11 115 | ||||
pl 17 103 | pl 17 103 | ||||
sk 25 120 | sk 25 120 | ||||
cs 5 120 | cs 5 120 | ||||
hr 16 124 | |||||
hr 19 127 | |||||
ru 36 120 | ru 36 120 | ||||
it 28 112 | it 28 112 | ||||
es 6 112 | es 6 112 | ||||
1 r2/r2i base | 1 r2/r2i base | ||||
1 r2/r2o base | 1 r2/r2o base | ||||
1 r2/r2u base | 1 r2/r2u base | ||||
8 r3/r_ base af cy eo fr pl ru it | |||||
7 r3/r_ base af cy eo fr pl ru | |||||
1 r3/r_@ base | 1 r3/r_@ base | ||||
1 r3/r#_ is | 1 r3/r#_ is | ||||
1 r3/r_a base | 1 r3/r_a base | ||||
1 r3/r_e base | 1 r3/r_e base | ||||
1 r3/r_i base | 1 r3/r_i base | ||||
7 r3/r_n base cy eo fr pl ru it | |||||
6 r3/r_n base cy eo fr pl ru | |||||
1 r3/r_o base | 1 r3/r_o base | ||||
1 r3/r_trill base | |||||
1 r3/r_trill.wav base | |||||
3 r3/r_trill base eo it | |||||
3 r3/r_trill.wav base eo it | |||||
1 r3/r_u base | 1 r3/r_u base | ||||
30 r3/rx base af cy eo fr fr_ca pl ru it pt_pt ro is | |||||
28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is | |||||
2 r3/rz_cs sk | 2 r3/rz_cs sk | ||||
2 r3/@tap base | 2 r3/@tap base | ||||
2 r3/@tap_i base | 2 r3/@tap_i base | ||||
1 r/re base | 1 r/re base | ||||
1 r/ri base | 1 r/ri base | ||||
1 r/ro base | 1 r/ro base | ||||
30 r/rr base af cy de eo fi nl pl ru it ro no ++ | |||||
29 r/rr base af cy de eo fi nl pl ru it ro no ++ | |||||
1 r/ru base | 1 r/ru base | ||||
15 r/tr base en_sc fr hu it | 15 r/tr base en_sc fr hu it | ||||
60 r/trr base af cy de eo fi nl pl ru it ro sv ++ | |||||
57 r/trr base af cy de eo fi nl pl ru it ro sv ++ | |||||
11 r/xr base | 11 r/xr base | ||||
1 ufric/ch base | 1 ufric/ch base | ||||
3 ufric/f base de ro | 3 ufric/f base de ro | ||||
1 ufric/th_ base | 1 ufric/th_ base | ||||
2 ufric/x base vi | 2 ufric/x base vi | ||||
4 ufric/x2 af nl pt | 4 ufric/x2 af nl pt | ||||
1 ufric/x_hr hr | |||||
1 ufric/xx hr | 1 ufric/xx hr | ||||
1 ustop/c base | 1 ustop/c base | ||||
5 ustop/k base en fr hi sw | 5 ustop/k base en fr hi sw | ||||
1 vowel/3_2 en_n | 1 vowel/3_2 en_n | ||||
1 vowel/3_3 en_rp | 1 vowel/3_3 en_rp | ||||
3 vowel/3_en en en_wm af | 3 vowel/3_en en en_wm af | ||||
1 vowel/@_4 nl | |||||
2 vowel/@_4 nl hr | |||||
2 vowel/8_2 en_us sv | 2 vowel/8_2 en_us sv | ||||
1 vowel/8_3 zh_yue | 1 vowel/8_3 zh_yue | ||||
10 vowel/a en_n cy de hu nl pl sk hr | 10 vowel/a en_n cy de hu nl pl sk hr | ||||
17 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | 17 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | ||||
1 vowel/i# cy | 1 vowel/i# cy | ||||
3 vowel/i_2 de nl sv | 3 vowel/i_2 de nl sv | ||||
3 vowel/i_3 af sk hr | |||||
2 vowel/i_3 af sk | |||||
4 vowel/i_4 fi hu it is | 4 vowel/i_4 fi hu it is | ||||
5 vowel/i_5 en_sc | 5 vowel/i_5 en_sc | ||||
3 vowel/i#_5 pt_pt ro | 3 vowel/i#_5 pt_pt ro | ||||
1 vowel/i_6 hr | |||||
3 vowel/i_en en en_us vi | 3 vowel/i_en en en_us vi | ||||
2 vowel/i_fnt hi | 2 vowel/i_fnt hi | ||||
10 vowel/ii en_wm cy de fr_ca nl is zh_yue | 10 vowel/ii en_wm cy de fr_ca nl is zh_yue | ||||
6 vowel/ii_en en en_n | 6 vowel/ii_en en en_n | ||||
5 vowel/@_low hi ro no | 5 vowel/@_low hi ro no | ||||
8 vowel/o en en_wm de hi it pt_pt sv | 8 vowel/o en en_wm de hi it pt_pt sv | ||||
1 vowel/o- hr | |||||
4 vowel/o_2 cy hi hu no | 4 vowel/o_2 cy hi hu no | ||||
2 vowel/o-_2 en_n en_wm | 2 vowel/o-_2 en_n en_wm | ||||
2 vowel/o_3 en_sc | 2 vowel/o_3 en_sc |
length 140 | length 140 | ||||
endphoneme | endphoneme | ||||
phoneme @3 // Schwa (raised) | |||||
vowel starttype (@) endtype (@) | |||||
formants vowel/@_4 | |||||
length 140 | |||||
endphoneme | |||||
phoneme a | phoneme a | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 150 | |||||
length 160 | |||||
formants vowel/a | formants vowel/a | ||||
reduceto & 4 | reduceto & 4 | ||||
endphoneme | endphoneme | ||||
phoneme i | phoneme i | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 120 | length 120 | ||||
formants vowel/i_3 | |||||
formants vowel/i_6 | |||||
linkout ; | linkout ; | ||||
reduceto I 4 | reduceto I 4 | ||||
endphoneme | endphoneme | ||||
formants vowel/oo_1 | formants vowel/oo_1 | ||||
endphoneme | endphoneme | ||||
phoneme 8 | |||||
vowel starttype (o) endtype (o) | |||||
length 140 | |||||
formants vowel/o- | |||||
endphoneme | |||||
phoneme u | phoneme u | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 130 | |||||
length 140 | |||||
formants vowel/u_bck | formants vowel/u_bck | ||||
reduceto U 4 | reduceto U 4 | ||||
endphoneme | endphoneme | ||||
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 130 | |||||
length 140 | |||||
formants vowel/uu_bck | formants vowel/uu_bck | ||||
endphoneme | endphoneme | ||||
vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | ||||
length 100 | length 100 | ||||
lengthmod 3 | lengthmod 3 | ||||
wave ufric/xx | |||||
wave ufric/x_hr%45 | |||||
switchvoicing Q | switchvoicing Q | ||||
endphoneme | endphoneme | ||||
phoneme x2 // TEST | |||||
vls vel frc | |||||
vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||||
vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||||
length 100 | |||||
lengthmod 3 | |||||
wave ufric/xx%120 | |||||
switchvoicing Q | |||||
endphoneme | |||||
after t r/trr p r/trr k r/trr | after t r/trr p r/trr k r/trr | ||||
endphoneme | endphoneme | ||||
phoneme R | |||||
liquid | |||||
vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||||
vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | |||||
beforenotvowel r/ | |||||
formants r3/r_trill+r3/r_trill.wav%50 | |||||
trill | |||||
lengthmod 6 | |||||
endphoneme | |||||
phoneme ts | phoneme ts | ||||
vls alv afr sibilant | vls alv afr sibilant |
endphoneme | endphoneme | ||||
phoneme R2 | phoneme R2 | ||||
liquid starttype r endtype r | liquid starttype r endtype r | ||||
length 100 | length 100 | ||||
endphoneme | endphoneme | ||||
phoneme r/ // used for [r] when not preceding a vowel | |||||
phoneme R | |||||
liquid | liquid | ||||
length 100 | |||||
lengthmod 2 // | |||||
formants r3/r_+r3/rx | |||||
before n r3/r_n+r3/rx | |||||
after _ r/rr | |||||
after t r/trr p r/trr k r/trr | |||||
vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||||
vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | |||||
beforenotvowel r/ | |||||
formants r3/r_trill+r3/r_trill.wav%50 | |||||
trill | |||||
lengthmod 6 | |||||
endphoneme | endphoneme | ||||
phoneme w2 | phoneme w2 | ||||
starttype w endtype w | starttype w endtype w | ||||
liquid | liquid |
phoneme i: | phoneme i: | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 210 | |||||
length 220 | |||||
formants vowel/i | formants vowel/i | ||||
after w w/wi2 | after w w/wi2 | ||||
linkout ; | linkout ; | ||||
phoneme y: | phoneme y: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/y_4 | formants vowel/y_4 | ||||
endphoneme | endphoneme | ||||
phoneme Y: | phoneme Y: | ||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 240 | |||||
length 250 | |||||
formants vwl_no/y# | formants vwl_no/y# | ||||
endphoneme | endphoneme | ||||
phoneme E: | phoneme E: | ||||
vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/ee_1 | formants vowel/ee_1 | ||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 250 | |||||
length 270 | |||||
formants vwl_no/& | formants vwl_no/& | ||||
endphoneme | endphoneme | ||||
phoneme A: | phoneme A: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 250 | |||||
length 280 | |||||
formants vowel/aa | formants vowel/aa | ||||
endphoneme | endphoneme | ||||
phoneme o: | phoneme o: | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/o_2 | formants vowel/o_2 | ||||
endphoneme | endphoneme | ||||
phoneme u: | phoneme u: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 220 | |||||
length 230 | |||||
formants vowel/u_bck | formants vowel/u_bck | ||||
endphoneme | endphoneme | ||||
phoneme u-: | phoneme u-: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 240 | |||||
length 250 | |||||
formants vwl_no/u#2 | formants vwl_no/u#2 | ||||
endphoneme | endphoneme | ||||
phoneme A: | phoneme A: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/aa_4 | formants vowel/aa_4 | ||||
endphoneme | endphoneme | ||||
c = RULE_ALT1; | c = RULE_ALT1; | ||||
break; | break; | ||||
case 'W': | case 'W': | ||||
c = 0x31; | |||||
c = RULE_SPELLING; | |||||
break; | break; | ||||
case 'L': | case 'L': | ||||
// expect two digits | // expect two digits |
len = utf8_out(letter,&single_letter[2]); | len = utf8_out(letter,&single_letter[2]); | ||||
single_letter[2+len] = ' '; | single_letter[2+len] = ' '; | ||||
next = 0x31; | |||||
next = RULE_SPELLING; | |||||
if(word[n_bytes] == ' ') | if(word[n_bytes] == ' ') | ||||
next = ' '; | next = ' '; | ||||
single_letter[3+len] = next; // follow by space-space if the end of the word, or space-0x31 | single_letter[3+len] = next; // follow by space-space if the end of the word, or space-0x31 |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.24.09 13.May.07"; | |||||
const char *version_string = "1.24.10 14.May.07"; | |||||
const int version_phdata = 0x012201; | const int version_phdata = 0x012201; | ||||
int option_device_number = -1; | int option_device_number = -1; |
} | } | ||||
break; | break; | ||||
case L('h','r'): // Croatian | |||||
{ | |||||
static const wchar_t replace_chars_hr[] = | |||||
{0x430,0x431,0x446,0x45b,0x447,0x434,0x452,0x45f, | |||||
0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x43b, | |||||
0x459,0x43c,0x43d,0x45a,0x43e,0x43f,0x440,0x441, | |||||
0x448,0x442,0x443,0x432,0x437,0x436, | |||||
0x453,0x455,0x45c,0}; // ѓ ѕ ќ | |||||
static const unsigned int replacement_chars_hr[] = | |||||
{'a','b','c',0x107,0x10d,'d',0x111,'d'+(0x17e<<16), | |||||
'e','f','g','h','i','j','k','l', | |||||
'l'+('j'<<16),'m','n','n'+('j'<<16),'o','p','r','s', | |||||
0x161,'t','u','v','z',0x17e, | |||||
0x111,'d'+('z'<<16),0x107,0}; | |||||
static int stress_amps_hr[8] = {16,16, 20,20, 20,24, 24,22 }; | |||||
static int stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230}; | |||||
tr = new Translator(); | |||||
SetupTranslator(tr,stress_lengths_hr,stress_amps_hr); | |||||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | |||||
tr->langopts.stress_rule = 0; | |||||
tr->langopts.stress_flags = 0x10; | |||||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; | |||||
tr->langopts.max_initial_consonants = 5; | |||||
tr->langopts.spelling_stress = 1; | |||||
tr->langopts.numbers = 0x1c0d + 0x84000; | |||||
tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards | |||||
tr->langopts.replace_chars = replace_chars_hr; | |||||
tr->langopts.replacement_chars = replacement_chars_hr; | |||||
SetLetterVowel(tr,'y'); | |||||
SetLetterVowel(tr,'r'); | |||||
} | |||||
break; | |||||
case L('h','u'): // Hungarian | case L('h','u'): // Hungarian | ||||
{ | { | ||||
static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 }; | static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 }; | ||||
case L('s','k'): // Slovak | case L('s','k'): // Slovak | ||||
case L('c','s'): // Czech | case L('c','s'): // Czech | ||||
case L('h','r'): // Croatian | |||||
{ | { | ||||
static const wchar_t replace_chars_hr[] = | |||||
{0x430,0x431,0x446,0x45b,0x447,0x434,0x452,0x45f, | |||||
0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x43b, | |||||
0x459,0x43c,0x43d,0x45a,0x43e,0x43f,0x440,0x441, | |||||
0x448,0x442,0x443,0x432,0x437,0x436, | |||||
0x453,0x455,0x45c,0}; // ѓ ѕ ќ | |||||
static const unsigned int replacement_chars_hr[] = | |||||
{'a','b','c',0x107,0x10d,'d',0x111,'d'+(0x17e<<16), | |||||
'e','f','g','h','i','j','k','l', | |||||
'l'+('j'<<16),'m','n','n'+('j'<<16),'o','p','r','s', | |||||
0x161,'t','u','v','z',0x17e, | |||||
0x111,'d'+('z'<<16),0x107,0}; | |||||
static int stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 }; | static int stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 }; | ||||
// static int stress_lengths_sk[8] = {180,180, 200,200, 0,0, 210,220}; | |||||
static int stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static int stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
static char *sk_voiced = "bdgjlmnrvwzaeiouy"; | static char *sk_voiced = "bdgjlmnrvwzaeiouy"; | ||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | ||||
tr->langopts.numbers = 0x1c0d + 0x84000; | tr->langopts.numbers = 0x1c0d + 0x84000; | ||||
if(name2 == L('h','r')) | |||||
{ | |||||
tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards | |||||
tr->langopts.replace_chars = replace_chars_hr; | |||||
tr->langopts.replacement_chars = replacement_chars_hr; | |||||
} | |||||
if(name2 == L('c','s')) | if(name2 == L('c','s')) | ||||
tr->langopts.numbers2 = 0x8; // variant numbers before milliards | tr->langopts.numbers2 = 0x8; // variant numbers before milliards | ||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
SetLetterVowel(tr,'r'); | SetLetterVowel(tr,'r'); | ||||
SetLetterBits(tr,5,sk_voiced); | SetLetterBits(tr,5,sk_voiced); |
int c; | int c; | ||||
int cc; | int cc; | ||||
unsigned int source_index=0; | unsigned int source_index=0; | ||||
unsigned int prev_source_index; | |||||
unsigned int prev_source_index=0; | |||||
int prev_in; | int prev_in; | ||||
int prev_out=' '; | int prev_out=' '; | ||||
int prev_out2; | int prev_out2; |
#define RULE_IFVERB 26 // V | #define RULE_IFVERB 26 // V | ||||
#define RULE_LETTERGP 27 // L + letter group number | #define RULE_LETTERGP 27 // L + letter group number | ||||
#define RULE_ALT1 28 // word has $alt attribute | #define RULE_ALT1 28 // word has $alt attribute | ||||
#define RULE_SPELLING 31 // while spelling letter-by-letter | |||||
#define RULE_LAST_RULE 28 | #define RULE_LAST_RULE 28 | ||||
#define LETTERGP_A 0 | #define LETTERGP_A 0 |