Conflicts: dictsource/dict_phonemes phsource/compile_report phsource/ph_azerbaijanimaster
| // This file is UTF8 encoded | |||||
| // Spelling to phoneme rules for Azerbaijani | |||||
| // Numbers | |||||
| _0 s@f'@R | |||||
| _1 b'iR | |||||
| _2 ic'i | |||||
| _3 'ytS | |||||
| _4 d'WRd | |||||
| _5 b'eS | |||||
| _6 alt'@ | |||||
| _7 jedd'i | |||||
| _8 s&Cc'iz | |||||
| _9 dogg'uz | |||||
| _1X 'on | |||||
| _2X ijiRm'i | |||||
| _3X ot'uz | |||||
| _4X g'@Rx | |||||
| _5X &ll'i | |||||
| _6X altm'@S | |||||
| _7X jetm'iS | |||||
| _8X s&Cs'&n | |||||
| _9X doxs'an | |||||
| _0C j'yz | |||||
| _0M1 m'in | |||||
| _0M2 milj'on | |||||
| _0M3 milj'aRd | |||||
| _dpt _t,am_| // ?? | |||||
| // Function words | |||||
| // personal pronouns | |||||
| mən $u+ | |||||
| sən $u+ | |||||
| o $u+ | |||||
| biz $u+ | |||||
| siz $u+ | |||||
| onlar $u+ | |||||
| // possessive pronouns | |||||
| mənim $u+ | |||||
| sənin $u+ | |||||
| onun $u+ | |||||
| bizim $u+ | |||||
| sizin $u+ | |||||
| onların $u+ | |||||
| bu $u+ | |||||
| // conjunctions | |||||
| və $u+ | |||||
| isə $u+ | |||||
| də $u+ | |||||
| həm $u+ | |||||
| ya $u+ | |||||
| da $u+ | |||||
| // prepositions | |||||
| aid $u+ // about | |||||
| ilə $u+ // with, by, in | |||||
| dair $u+ // about | |||||
| // postpositions | |||||
| ci $u | |||||
| cı $u | |||||
| cü $u | |||||
| de $u | |||||
| dir $u | |||||
| li $u | |||||
| in $u | |||||
| nə $u | |||||
| ya $u | |||||
| yə $u | |||||
| // Character names | |||||
| b be | |||||
| c dZe | |||||
| ç tSe | |||||
| _ə & | |||||
| d de | |||||
| f fe | |||||
| g Je | |||||
| ğ Qe | |||||
| h he | |||||
| x xe | |||||
| j Ze | |||||
| k ka | |||||
| q ge | |||||
| l el | |||||
| m em | |||||
| n en | |||||
| _o o | |||||
| p pe | |||||
| r eR | |||||
| s se | |||||
| ş Se | |||||
| t te | |||||
| v ve | |||||
| w dubElv'E | |||||
| y je | |||||
| z ze | |||||
| * ulduz $text | |||||
| % faiz $text | |||||
| // This file is UTF8 encoded | |||||
| // Spelling to phoneme rules for Azerbaijani | |||||
| // Stress rule: Right-most vowel, but stop before the vowel which is | |||||
| // marked as unstressed [%]. | |||||
| .L02 ı a o u // back vowels | |||||
| .L03 i e ö ü | |||||
| .group a | |||||
| a a | |||||
| ai (K aI | |||||
| -) a (_ a | |||||
| .group b | |||||
| b b | |||||
| .group c | |||||
| c dZ | |||||
| .group ç | |||||
| ç tS | |||||
| .group d | |||||
| d d | |||||
| -) dan (_ d%an | |||||
| -) dən (_ d%&n | |||||
| -) dək (_ d%&k | |||||
| .group e | |||||
| e e | |||||
| .group ə | |||||
| ə & | |||||
| @) ə (_ %& | |||||
| -) ə (_ %& | |||||
| .group f | |||||
| f f | |||||
| .group g | |||||
| g J | |||||
| .group ğ | |||||
| ğ Q | |||||
| A) ğ : | |||||
| a) ğa : | |||||
| o) ğo : | |||||
| u) ğu : | |||||
| ö) ğö : | |||||
| ü) ğü : | |||||
| i) ğ j | |||||
| e) ğ j | |||||
| .group h | |||||
| h h | |||||
| .group x | |||||
| x x | |||||
| .group ı | |||||
| ı @ | |||||
| .group i | |||||
| i i | |||||
| @) iya (_ =i;a | |||||
| .group j | |||||
| j Z | |||||
| .group k | |||||
| k c | |||||
| k (K C | |||||
| .group q | |||||
| q g | |||||
| q (_ x | |||||
| .group l | |||||
| l l | |||||
| l (L02 L | |||||
| L02) l (K L | |||||
| .group m | |||||
| m m | |||||
| .group n | |||||
| n n | |||||
| .group o | |||||
| o o | |||||
| .group ö | |||||
| ö W | |||||
| .group p | |||||
| p p | |||||
| .group r | |||||
| r R | |||||
| A) r (A * | |||||
| ğ) r (A * | |||||
| C) r (_ @-r | |||||
| .group s | |||||
| s s | |||||
| .group ş | |||||
| ş S | |||||
| .group t | |||||
| t t | |||||
| L03) t (L03 ts | |||||
| .group u | |||||
| u u | |||||
| .group ü | |||||
| ü y | |||||
| .group v | |||||
| v v | |||||
| .group w | |||||
| w w | |||||
| .group y | |||||
| y j | |||||
| .group z | |||||
| z z | |||||
| .group | |||||
| ä & |
| _1 '&k | _1 '&k | ||||
| _2 d'uj | _2 d'uj | ||||
| _3 t'in | _3 t'in | ||||
| _4 tS'ar | |||||
| _4 tSh'ar | |||||
| _5 p'a~tS | _5 p'a~tS | ||||
| _6 tS#'Oj | _6 tS#'Oj | ||||
| _7 S'at | _7 S'at | ||||
| _11 '&garo | _11 '&garo | ||||
| _12 b'arO | _12 b'arO | ||||
| _13 t'erO | _13 t'erO | ||||
| _14 tS'oddO | |||||
| _14 tSh'oddO | |||||
| _15 p'OnerO | _15 p'OnerO | ||||
| _16 S'olO | _16 S'olO | ||||
| _17 S'OterO | _17 S'OterO |
| .group ছ | .group ছ | ||||
| ছ tS#V | |||||
| ছ (B tS# | |||||
| ছ tShV | |||||
| ছ (B tSh | |||||
| .group জ | .group জ |
| _?? zymb'o:l | _?? zymb'o:l | ||||
| _?A b'u:xstA:b@ | _?A b'u:xstA:b@ | ||||
| _cap gr'o:s | _cap gr'o:s | ||||
| _sub 'Unt@R|3_!,IndEks|| | |||||
| _sup 'o:b@R|3_!,IndEks|| | |||||
| // accent names | // accent names |
| // character names | // character names | ||||
| _cap k,ap@-t@L | _cap k,ap@-t@L | ||||
| _sub s,VbskrIpt|| | |||||
| _sup s,u:p3skrIpt|| | |||||
| _?A l,Et3 | _?A l,Et3 | ||||
| _?? sImb@L | _?? sImb@L | ||||
| _braille br'eIl | _braille br'eIl | ||||
| ?!3 temporary tEmpr@rI | ?!3 temporary tEmpr@rI | ||||
| ?3 template tEmpl@t | ?3 template tEmpl@t | ||||
| therefore $1 | therefore $1 | ||||
| thereof De@r'0v | |||||
| thermos T3:m@s | thermos T3:m@s | ||||
| thermostable $alt1 | thermostable $alt1 | ||||
| thesis Ti:sIs | thesis Ti:sIs | ||||
| Andrea $2 | Andrea $2 | ||||
| Adrian eIdri@n | Adrian eIdri@n | ||||
| Agatha aga#T@ | Agatha aga#T@ | ||||
| Angela andZ@l@ | |||||
| Angelika $2 | Angelika $2 | ||||
| Aggie agi | Aggie agi | ||||
| Agnes agn@s | Agnes agn@s | ||||
| Hadrian heIdri:@n | Hadrian heIdri:@n | ||||
| Hamish heImIS | Hamish heImIS | ||||
| Harriet hari@t | Harriet hari@t | ||||
| Harvey hA@vi | |||||
| Heidi haIdi | Heidi haIdi | ||||
| Hecate hEk@teI | Hecate hEk@teI | ||||
| Hekate hEk@teI | Hekate hEk@teI | ||||
| Luigi lu:'i:dZi | Luigi lu:'i:dZi | ||||
| Luis lu:Is | Luis lu:Is | ||||
| Lupe lu:peI | Lupe lu:peI | ||||
| Luther lu:T3 | |||||
| Madeleine mad@lI2n | Madeleine mad@lI2n | ||||
| Madeline mad@lI2n | Madeline mad@lI2n | ||||
| Maeve meIv | Maeve meIv | ||||
| Wallace w0lI#s | Wallace w0lI#s | ||||
| Wally w0li | Wally w0li | ||||
| ?3 William wIlj@m | ?3 William wIlj@m | ||||
| Yerevan jEr@v'an | |||||
| Yves i:v | Yves i:v | ||||
| Yvonne $2 | Yvonne $2 | ||||
| Zoe zoUi | Zoe zoUi |
| // Irish Gaeilge dictionary | // Irish Gaeilge dictionary | ||||
| // written by Ronan McGuirk | // written by Ronan McGuirk | ||||
| // January 2013 | |||||
| // version 2.5 | |||||
| // 2013 | |||||
| // version 2.6.1 | |||||
| // Please send comments and suggestions to [email protected] | |||||
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // letters | // letters | ||||
| // accent names | // accent names | ||||
| // names of symbols | // names of symbols | ||||
| ª_. pO#nk | |||||
| _. pO#nk | |||||
| _, k0m@ | _, k0m@ | ||||
| _; semI | _; semI | ||||
| _: ko:l0n | _: ko:l0n | ||||
| amuigh @mu1'I | amuigh @mu1'I | ||||
| amháin @w'A:in | amháin @w'A:in | ||||
| am aUm | am aUm | ||||
| an @n | |||||
| anaithnid '0nah@nIdZ | |||||
| anois @nIS | anois @nIS | ||||
| anonn @naUn | anonn @naUn | ||||
| ann aUn | ann aUn | ||||
| anseo @nS'O | anseo @nS'O | ||||
| anuas a#n'u@s | |||||
| aodh e: | aodh e: | ||||
| aodha e: | aodha e: | ||||
| aon e:@n | aon e:@n | ||||
| (ar ais) Er'aS | (ar ais) Er'aS | ||||
| arís @r'i:S | arís @r'i:S | ||||
| as 0s | as 0s | ||||
| aschurtha '0sxUrh@ | |||||
| atá @t['A: $u | atá @t['A: $u | ||||
| baill bu1'i:l | baill bu1'i:l | ||||
| bhaill vu1'i:l | bhaill vu1'i:l | ||||
| beidh bEg | beidh bEg | ||||
| bhfuil w'Il | bhfuil w'Il | ||||
| bheas v'e:@s | |||||
| bhuel w'El | bhuel w'El | ||||
| ceithre kEr@ | ceithre kEr@ | ||||
| cathair k'0h@r | cathair k'0h@r | ||||
| chlainne xl'InE | chlainne xl'InE | ||||
| chun xUn $u | chun xUn $u | ||||
| crainn kri:n | crainn kri:n | ||||
| chrainn xri:n | |||||
| de dE $u+ | de dE $u+ | ||||
| des dEs $u | des dEs $u | ||||
| do dO# $u | do dO# $u | ||||
| domhnach d[aUn@x | domhnach d[aUn@x | ||||
| domhnaigh d[aUnig | domhnaigh d[aUnig | ||||
| dúghorm d['u:Q"Or@m | |||||
| eile 'El@ | eile 'El@ | ||||
| euro ju:ro: | euro ju:ro: | ||||
| faic f@ak | faic f@ak | ||||
| (muigheo) mu1'i:||'o: | (muigheo) mu1'i:||'o: | ||||
| mhuigh vu1'i: | mhuigh vu1'i: | ||||
| (mhaigh eo) vu1'i:||'o: | (mhaigh eo) vu1'i:||'o: | ||||
| mhama w'0m@ | |||||
| maith m'0 | maith m'0 | ||||
| mhaith w'0 | mhaith w'0 | ||||
| mbeadh m;O#X | mbeadh m;O#X | ||||
| os o:s | os o:s | ||||
| rabh raU | rabh raU | ||||
| raibh rEv | raibh rEv | ||||
| raidió r'adi:o: | |||||
| réamhrá r'e:@vr,a: | réamhrá r'e:@vr,a: | ||||
| réidh re: | réidh re: | ||||
| 's s | |||||
| samhain saUIn | samhain saUIn | ||||
| san s@n | san s@n | ||||
| seo S@_ | seo S@_ |
| // translation rules for Irish Gaeilge | // translation rules for Irish Gaeilge | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // written by Ronan McGuirk January 2013 | |||||
| // Version 2.5B | |||||
| // written by Ronan McGuirk 2013 | |||||
| // Version 2.6.1 | |||||
| // Please send comments and suggestions to [email protected] | |||||
| // Conditional rules | // Conditional rules | ||||
| // ?1 allow eclipsis as 2 separate words | // ?1 allow eclipsis as 2 separate words | ||||
| .L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | .L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | ||||
| .L04 b bh mb // for words like beag | .L04 b bh mb // for words like beag | ||||
| .L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a | .L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a | ||||
| .L06 aidh idh aí á eá eadh adh ad imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h | |||||
| .L06 aidh idh aí á eá eadh adh ad adsa imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h | |||||
| .L07 b c g ch bh gh mb | .L07 b c g ch bh gh mb | ||||
| .L08 lc ll nt bhse // for words like cailc | .L08 lc ll nt bhse // for words like cailc | ||||
| .L09 cl cr chr f | .L09 cl cr chr f | ||||
| .L12 á é ó eo ua // when followed by i | .L12 á é ó eo ua // when followed by i | ||||
| .L13 oc omb | .L13 oc omb | ||||
| .L14 río dún gnío // followed with mh | .L14 río dún gnío // followed with mh | ||||
| .L15 c ch f m d dh g gc gh mh // aoi following | |||||
| .L15 c ch f bhf m d dh g gc gh mh // aoi following | |||||
| .L16 b c bh ch gr ghr // for inn word ending | .L16 b c bh ch gr ghr // for inn word ending | ||||
| .L17 l le li niste nn | .L17 l le li niste nn | ||||
| .L18 n nt nte neann neadh ntear nim nfear nfinn | |||||
| .L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar | |||||
| .L19 na nea ra rea la llea arga // word endings with silent dh | .L19 na nea ra rea la llea arga // word endings with silent dh | ||||
| .L20 eo eoir eá eabh io iu iú // slender m | .L20 eo eoir eá eabh io iu iú // slender m | ||||
| .L21 ll nn ndán nntán | .L21 ll nn ndán nntán | ||||
| .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine | |||||
| .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann | |||||
| .L23 ea eo i | .L23 ea eo i | ||||
| .L24 b mb bh g gh p ph bp m mh | .L24 b mb bh g gh p ph bp m mh | ||||
| abht aU#t[ | abht aU#t[ | ||||
| amhr aUr // words like amhras | amhr aUr // words like amhras | ||||
| K) amhl aUl | K) amhl aUl | ||||
| abhra aUr@ // words like slabhra | |||||
| abh (C aU // words like slabhra | |||||
| aghaidh aIg | aghaidh aIg | ||||
| t) abhair u:@r | t) abhair u:@r | ||||
| th) abhair u:@r | th) abhair u:@r | ||||
| t) abhar u:@r | t) abhar u:@r | ||||
| th) abhar u:@r | th) abhar u:@r | ||||
| _) an (sL01 @n | _) an (sL01 @n | ||||
| _) an (- 0n // an prefix | |||||
| _) a (nA @ | |||||
| _) an (_ @n | |||||
| _) an (- '0n // an prefix | |||||
| é) a @ // words like féach | é) a @ // words like féach | ||||
| X) a (nn_ aU# | X) a (nn_ aU# | ||||
| X) a (ll_ aU# | X) a (ll_ aU# | ||||
| _) ao e: | _) ao e: | ||||
| ae e: | ae e: | ||||
| amhna (_ aUn@ | amhna (_ aUn@ | ||||
| arraing arIng | |||||
| _) ath (@@P3 ,0_ | |||||
| .group á | .group á | ||||
| á A: | á A: | ||||
| @) á ,A: | @) á ,A: | ||||
| áinig A:nIg | áinig A:nIg | ||||
| ái 'A:i | ái 'A:i | ||||
| .group ai | .group ai | ||||
| ai a# | ai a# | ||||
| L04) ai (L17 0# | L04) ai (L17 0# | ||||
| m) ai (n 0# | m) ai (n 0# | ||||
| c) ai (th 0# | c) ai (th 0# | ||||
| ch) ai (th 0# | ch) ai (th 0# | ||||
| ai (tín 0# | |||||
| ai (d 0# | ai (d 0# | ||||
| p) ai (l 0# | p) ai (l 0# | ||||
| @) ai (L11_ I | @) ai (L11_ I | ||||
| X) aigh 'aI | X) aigh 'aI | ||||
| aigh aI# L04) aill (_ wi:l | aigh aI# L04) aill (_ wi:l | ||||
| aing (_ Ing | aing (_ Ing | ||||
| ai (llimh '0 // words like Gaillimh | |||||
| .group b | .group b | ||||
| b b // broad | b b // broad | ||||
| L01) b b; // slender | L01) b b; // slender | ||||
| bh (_ vv | bh (_ vv | ||||
| bh (L22 vj // slender | bh (L22 vj // slender | ||||
| L01) bh v | L01) bh v | ||||
| ?1 _m_) b (@ | |||||
| ?1 _m_) b (@ | |||||
| _) bhf v // urú broad | _) bhf v // urú broad | ||||
| _) bhf (L22 v; // urú slender | _) bhf (L22 v; // urú slender | ||||
| _) bp b // urú broad | _) bp b // urú broad | ||||
| a) bh (a U // for example cabhair | a) bh (a U // for example cabhair | ||||
| ear) bha u: // words like Cearbhall | ear) bha u: // words like Cearbhall | ||||
| bhfaigh v'aI | bhfaigh v'aI | ||||
| _) beann (@ ba#n | |||||
| _) bheann (@ va#n | |||||
| _) bun (C@P3 b,Un | |||||
| .group c | .group c | ||||
| c k | c k | ||||
| c (L01 k; // slender | c (L01 k; // slender | ||||
| ch (L01 C; | ch (L01 C; | ||||
| ch (é+ C; | ch (é+ C; | ||||
| ch (ei+ x; | ch (ei+ x; | ||||
| ?1 _g_) c (@ | |||||
| ?1 _g_) c (L01 | |||||
| ?1 _g_) c (@ | |||||
| ?1 _g_) c (L01 | |||||
| _) cabhr k'aUr | _) cabhr k'aUr | ||||
| _) chabhr x'aUr | _) chabhr x'aUr | ||||
| _) ceann (C@P5 k;,aUn | |||||
| _) cheann (C@P6 C;,aUn | |||||
| .group d | .group d | ||||
| d d[ // broad | d d[ // broad | ||||
| L01) d dZ // slender | L01) d dZ // slender | ||||
| d (L22 dZ // slender | d (L22 dZ // slender | ||||
| d (L01 d; // slender | d (L01 d; // slender | ||||
| i) d (i dZ | i) d (i dZ | ||||
| ?1 _n_) d (@ | |||||
| ?1 _n_) d (@ | |||||
| dh Q // broad | dh Q // broad | ||||
| dh (ui Q // broad | dh (ui Q // broad | ||||
| dh (ao Q // broad | dh (ao Q // broad | ||||
| ?1 _) d (_t d[ | ?1 _) d (_t d[ | ||||
| ?1 _) d (_tL01 dZ | ?1 _) d (_tL01 dZ | ||||
| _) d' (@P2 d | _) d' (@P2 d | ||||
| _) d' d | |||||
| _) d (_'fh d | |||||
| d'fh (L01 d | |||||
| i) dh (_ g | i) dh (_ g | ||||
| a) dh (_ X | a) dh (_ X | ||||
| o) dh (_ X | o) dh (_ X | ||||
| dheartháir gr@h'A:r | dheartháir gr@h'A:r | ||||
| deirfiúr d;r@f'u:r | deirfiúr d;r@f'u:r | ||||
| dheirfiúr g;r@f'u:r | dheirfiúr g;r@f'u:r | ||||
| _) do (Ch@@P2 d[,U_ | |||||
| _) dí (@@P2 d,i: | |||||
| .group e | .group e | ||||
| e E# | e E# | ||||
| eá A: | eá A: | ||||
| r) ei (m aI | r) ei (m aI | ||||
| eighea aI | eighea aI | ||||
| eighea aI | eighea aI | ||||
| s) ei (nn aI | |||||
| sh) ei (nn aI | |||||
| eigh aI | eigh aI | ||||
| eo o: | eo o: | ||||
| eogh o: | |||||
| eoi o: | |||||
| eogha o: | |||||
| eoghai o: | |||||
| d) eo (ch O# | d) eo (ch O# | ||||
| dh) eo (ch O# | |||||
| _) eo (ch O# | _) eo (ch O# | ||||
| s) eo (_ @ | s) eo (_ @ | ||||
| .group é | .group é | ||||
| é 'e: | é 'e: | ||||
| éi 'e: | éi 'e: | ||||
| éa 'e: | |||||
| _) éi (rig aI // words like éirigh | _) éi (rig aI // words like éirigh | ||||
| _h) éi (rí aI | |||||
| _) éi (rí aI // words like éirí | _) éi (rí aI // words like éirí | ||||
| _) éireoidh aIro:Ig | _) éireoidh aIro:Ig | ||||
| éacs e:@ks | éacs e:@ks | ||||
| .group ea | .group ea | ||||
| ea a# | ea a# | ||||
| eai a# | |||||
| X) ea (L21_ aU | X) ea (L21_ aU | ||||
| ea (ltaine aU | ea (ltaine aU | ||||
| g) ea (ll aU | g) ea (ll aU | ||||
| l) eamh (n aU | |||||
| dr) ea (m aU | |||||
| X) ea (ch 0 | X) ea (ch 0 | ||||
| _L04) ea (g @ | _L04) ea (g @ | ||||
| _L04) ea (dh_ @ | _L04) ea (dh_ @ | ||||
| eanbhean 'an@v,an | eanbhean 'an@v,an | ||||
| eadhb aIb | eadhb aIb | ||||
| .group f | .group f | ||||
| f f // broad | f f // broad | ||||
| f (L22 f; // slender | f (L22 f; // slender | ||||
| fh (éin_ h | fh (éin_ h | ||||
| fh (L22 ; // slender | fh (L22 ; // slender | ||||
| @) f (L06_ h | @) f (L06_ h | ||||
| ?1 _bh_) f (@ | |||||
| ?1 _bh_) f (L22 ; | |||||
| _) fo (C@@P2 f,U | |||||
| _) fogh f'aU | |||||
| ?1 _bh_) f (@ | |||||
| ?1 _bh_) f (L22 ; | |||||
| .group g | .group g | ||||
| g g // broad | g g // broad | ||||
| g (L01 g; // slender | g (L01 g; // slender | ||||
| ?1 _n_) g (@ | |||||
| ?1 _n_) g (@ | |||||
| _) gh Q" | _) gh Q" | ||||
| _) gh (L01 Q"j | _) gh (L01 Q"j | ||||
| _) gc g // urú broad | _) gc g // urú broad | ||||
| gh (n X@ | gh (n X@ | ||||
| gheobh j'o: | gheobh j'o: | ||||
| gabh gaU | gabh gaU | ||||
| _) gearr (C@P5 g;,aR | |||||
| _) ghearr (C@P6 Q"j,aR | |||||
| .group h | .group h | ||||
| h h // silent | h h // silent | ||||
| .group i | .group i | ||||
| i I | i I | ||||
| _) i I | _) i I | ||||
| ia i@ | ia i@ | ||||
| ia (tha i: | ia (tha i: | ||||
| io O# | io O# | ||||
| io (dá I | |||||
| _) io (nadh u:// words like ionadh | _) io (nadh u:// words like ionadh | ||||
| s) io (mb I | |||||
| sh) io (mb I | |||||
| _pr) io (n u: | _pr) io (n u: | ||||
| L16) inn (_ i:n | L16) inn (_ i:n | ||||
| iai i:i | iai i:i | ||||
| L12) i i // non syllabic short i after long vowel | L12) i i // non syllabic short i after long vowel | ||||
| iú u: | iú u: | ||||
| m) i (d_ i: // verb ending | m) i (d_ i: // verb ending | ||||
| _) in (@@P2 ,In_ | |||||
| _) ionad (C@@P5 ,Ona#d[ | |||||
| .group í | .group í | ||||
| í 'i: | í 'i: | ||||
| íomh 'i:v | |||||
| íochn 'i:xn | |||||
| í (_ i: | |||||
| ín (_ i:n | |||||
| ío i:@ | |||||
| .group l | .group l | ||||
| l l // broad | l l // broad | ||||
| L01) l l; // slender | L01) l l; // slender | ||||
| ll (L23 l; | ll (L23 l; | ||||
| l (g l@ | l (g l@ | ||||
| l (b l@ | l (b l@ | ||||
| _) lorg (@@P4 l,Or@g | |||||
| _) lán (C@@P3 l,A:n | |||||
| .group m | .group m | ||||
| m m // broad | m m // broad | ||||
| m (L20 m; //slender | m (L20 m; //slender | ||||
| _) mh (n v@ | _) mh (n v@ | ||||
| léir) mheas vas | léir) mheas vas | ||||
| r) m @m // words like gorm | r) m @m // words like gorm | ||||
| _) mear (@@P4 m,ar | |||||
| .group n | .group n | ||||
| n n // broad | n n // broad | ||||
| n (L01 n; // slender | n (L01 n; // slender | ||||
| n (ch n@ | n (ch n@ | ||||
| c) n @n | c) n @n | ||||
| ch) n @n | ch) n @n | ||||
| _) nasc (C@@ n,0sk | |||||
| .group o | .group o | ||||
| o O# | o O# | ||||
| _) o 'O | _) o 'O | ||||
| odl (a O#l | odl (a O#l | ||||
| oí i: | oí i: | ||||
| .group ó | .group ó | ||||
| ó 'o: | ó 'o: | ||||
| ómhai o:@ | ómhai o:@ | ||||
| ói (p@ 'o: | |||||
| .group oi | .group oi | ||||
| oi O | oi O | ||||
| _L15) oi (+ @'I | _L15) oi (+ @'I | ||||
| _) oi (leá 'I | _) oi (leá 'I | ||||
| oidh aI | oidh aI | ||||
| oir (_ 'ERR | oir (_ 'ERR | ||||
| _sc) oi (r O | |||||
| oigh (ea aI | oigh (ea aI | ||||
| .group p | .group p | ||||
| p p // broad | p p // broad | ||||
| ph f // broad | ph f // broad | ||||
| p (L22 p; // slender | p (L22 p; // slender | ||||
| ph (L20 f; // slender | ph (L20 f; // slender | ||||
| ?1 _b_) p (@ | |||||
| ?1 _b_) p (@ | |||||
| .group r | .group r | ||||
| L12i) r (t_ Z | L12i) r (t_ Z | ||||
| rr R | rr R | ||||
| rg r@g | rg r@g | ||||
| rgh rQ" | |||||
| L01) rg R@g // slender | L01) rg R@g // slender | ||||
| r (bh r@ | r (bh r@ | ||||
| ríomh ri:@v | |||||
| s) r (A R | s) r (A R | ||||
| _) ramh raU | _) ramh raU | ||||
| .group s | .group s | ||||
| s s // broad | s s // broad | ||||
| L01) s S // slender | L01) s S // slender | ||||
| s (cL01 S | s (cL01 S | ||||
| s (CCL01 S // slender | s (CCL01 S // slender | ||||
| s (pCé s // broad | s (pCé s // broad | ||||
| ?1 _t_) s (@ | |||||
| ?1 _t_) s (@ | |||||
| sh h | sh h | ||||
| sh (CL01 h | sh (CL01 h | ||||
| sh (L01 h; | sh (L01 h; | ||||
| s (lL01 S | s (lL01 S | ||||
| _') s (_ s // 's in poems etc | |||||
| _) sain (@P4 s,an | |||||
| .group t | .group t | ||||
| t t[ // broad | t t[ // broad | ||||
| L01) t c // slender | L01) t c // slender | ||||
| ?1 _) t (_L01 c | ?1 _) t (_L01 c | ||||
| L01C) t tS // slender after consonant | L01C) t tS // slender after consonant | ||||
| t (CL01 tS // slender with following consonant before vowels | t (CL01 tS // slender with following consonant before vowels | ||||
| ?1 _d_) t (@ | |||||
| ?1 _d_) t (@ | |||||
| th h | th h | ||||
| th (L01 h; | th (L01 h; | ||||
| L01C) th h | L01C) th h | ||||
| thne (_ h@nE | thne (_ h@nE | ||||
| A) th (_ // silent th at word end | A) th (_ // silent th at word end | ||||
| .group u | .group u | ||||
| u U# | u U# | ||||
| ua u@ | ua u@ | ||||
| uai (d ui | uai (d ui | ||||
| uá u:'A: | uá u:'A: | ||||
| ui I | ui I | ||||
| ui (s U | |||||
| ui (sce_ I | |||||
| uinn (_ 'i:n | uinn (_ 'i:n | ||||
| uinti U#'i:ntI | uinti U#'i:ntI | ||||
| _b) uí wi: | _b) uí wi: | ||||
| _bh) uí wi: | _bh) uí wi: | ||||
| g) uí wi: | g) uí wi: | ||||
| gh) uí wi: | |||||
| umh u: | umh u: | ||||
| L03) ui @I | L03) ui @I | ||||
| _d) u (l_ O# | _d) u (l_ O# | ||||
| gh) ui (gh_ @i: | gh) ui (gh_ @i: | ||||
| uí i: | uí i: | ||||
| uachai 'ux@ | uachai 'ux@ | ||||
| _) uimhir (C@P6 ,IvIR | |||||
| .group ú | .group ú | ||||
| ú u: | ú u: | ||||
| únmh u:nv | únmh u:nv |
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // Spelling-to-phoneme words for Armenian | // Spelling-to-phoneme words for Armenian | ||||
| // ?1 West Armenian | |||||
| // names of letters | // names of letters | ||||
| _ա aIb | _ա aIb | ||||
| բ ben | բ ben | ||||
| կ ken | կ ken | ||||
| հ ho | հ ho | ||||
| ձ dza | ձ dza | ||||
| ղ r"ad | |||||
| ղ r"at | |||||
| ճ ce | ճ ce | ||||
| մ men | մ men | ||||
| յ hi | յ hi | ||||
| չ tSa | չ tSa | ||||
| պ pe | պ pe | ||||
| ջ dZe | ջ dZe | ||||
| ռ **a | |||||
| ռ R2a | |||||
| ս se | ս se | ||||
| վ vev | վ vev | ||||
| տ tyn | տ tyn | ||||
| ր re | ր re | ||||
| ց tso | |||||
| ց ts#o | |||||
| ւ hyn | ւ hyn | ||||
| փ p#yr | փ p#yr | ||||
| ք k#e | ք k#e | ||||
| և jev | |||||
| _օ o | _օ o | ||||
| ֆ fe | ֆ fe | ||||
| e e | e e | ||||
| f ef | f ef | ||||
| // symbols | |||||
| $ dolar | |||||
| % տոկոս $text | |||||
| * աստղանիշ $text | |||||
| + գումարած $text | |||||
| = հավասար $text | |||||
| _՝ b'ut# | |||||
| _՞ harts#ak'an | |||||
| _՛ S'eSt | |||||
| _։ verdZak'et // U+0589 | |||||
| _: verdZak'et | |||||
| _, storak'et | |||||
| _. midZak'et | |||||
| // numbers | // numbers | ||||
| // function words | // function words | ||||
| ես $u+ // pronouns | |||||
| դու $u+ | |||||
| եք $u+ | |||||
| Դուք $u+ | |||||
| նա $u+ | |||||
| այն $u+ | |||||
| մենք $u+ | |||||
| նրանք $u+ | |||||
| դուք $u+ | |||||
| ենք $u+ | |||||
| են $u+ | |||||
| այդ $u+ | |||||
| այս $u+ | |||||
| դա $u+ | |||||
| որ $u+ | |||||
| էր $u+ | |||||
| մի $u+ | |||||
| է $u+ | |||||
| հետ $u+ // prepositions | |||||
| եվ $u+ // and | |||||
| իսկ $u+ $brk // and, but | |||||
| կամ $u+ // or | |||||
| որը $u+ // which | |||||
| կարող $u+ // can | |||||
| // exceptions | |||||
| ով ov | |||||
| ովքեր ovk#er |
| // (consonants are changed for Armenian-West in the voice file "hy-west") | // (consonants are changed for Armenian-West in the voice file "hy-west") | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // ?1 West Armenian | |||||
| .L01 բ գ թ կ պ տ ք | .L01 բ գ թ կ պ տ ք | ||||
| .L02 ու այ իւ իյ ոյ // other vowel sounds | |||||
| .L02 ու այ իւ իյ ոյ ա ե ը ի ո օ // vowel sounds | |||||
| // ligature | // ligature | ||||
| .replace | .replace | ||||
| .group ա | .group ա | ||||
| ա a | ա a | ||||
| այ aI | |||||
| այ (K aI | |||||
| այ (_ a | այ (_ a | ||||
| .group բ | .group բ | ||||
| .group է | .group է | ||||
| է e | է e | ||||
| էօ W | էօ W | ||||
| էյ eI | |||||
| էյ (K eI | |||||
| .group ը | .group ը | ||||
| ը @ | ը @ | ||||
| ի i | ի i | ||||
| իւ y | իւ y | ||||
| իւ (_ iv | իւ (_ iv | ||||
| իյ i@ | |||||
| իյ (K i@ | |||||
| .group լ | .group լ | ||||
| լ l | լ l | ||||
| L02) մ (_ m | L02) մ (_ m | ||||
| .group յ | .group յ | ||||
| յ h // ?? [j] | |||||
| _) յ h // ?? [j] | |||||
| _) յ (C h@ | _) յ (C h@ | ||||
| յ j | |||||
| .group ն | .group ն | ||||
| ն n | ն n | ||||
| _) ջ (C dZ@ | _) ջ (C dZ@ | ||||
| .group ռ | .group ռ | ||||
| ռ ** | |||||
| _) ռ (C **@ | |||||
| ռ R2 | |||||
| _) ռ (C R2@ | |||||
| .group ս | .group ս | ||||
| ս s | ս s | ||||
| .group ր | .group ր | ||||
| ր r | ր r | ||||
| L02) ր (L02 * | |||||
| _) ր (C r@ | _) ր (C r@ | ||||
| C) ր (_ @r | C) ր (_ @r | ||||
| L02) ր (_ r | L02) ր (_ r | ||||
| ֆ f | ֆ f | ||||
| _) ֆ (C f@ | _) ֆ (C f@ | ||||
| .group | |||||
| $ dol@ | |||||
| _t te: | _t te: | ||||
| _cap h'o:fdlEt@r | _cap h'o:fdlEt@r | ||||
| _sub s'8pskrIpt|| | |||||
| _sup s'yp@rskrIpt|| | |||||
| _?A l'Et@r | _?A l'Et@r | ||||
| _?? s'imbo:l | _?? s'imbo:l | ||||
| ੱ) ਯ (_ j: | ੱ) ਯ (_ j: | ||||
| .group ਰ | .group ਰ | ||||
| ਰ RV | |||||
| ਰ (B R | |||||
| @) ਰ (_ R | |||||
| ੱ) ਰ R:V | |||||
| ੱ) ਰ (B R: | |||||
| ੱ) ਰ (_ R: | |||||
| ਰ rV | |||||
| ਰ (B r | |||||
| @) ਰ (_ r | |||||
| ੱ) ਰ r:V | |||||
| ੱ) ਰ (B r: | |||||
| ੱ) ਰ (_ r: | |||||
| .group ਲ | .group ਲ | ||||
| ਲ lV | ਲ lV |
| x Sis# | x Sis# | ||||
| _cap maI'uskulU | _cap maI'uskulU | ||||
| _sub ||subskR'itU | |||||
| _sup ||sob*eskR'itU | |||||
| _?A l'etR&_ | _?A l'etR&_ | ||||
| _?? s'imbolU_ | _?? s'imbolU_ | ||||
| _#32 esp'asU | _#32 esp'asU | ||||
| usb $abbrev | usb $abbrev | ||||
| dr $dot | |||||
| dra $dot | |||||
| mr $dot | |||||
| mrs $dot | |||||
| dr dowtor $dot | |||||
| dra dowt'o*& $dot | |||||
| mr m'ister $dot | |||||
| mrs m'irsys $dot | |||||
| prof pR'Of $dot | prof pR'Of $dot | ||||
| profº pR,ofes'or | profº pR,ofes'or | ||||
| profª pR,ofes'o*& | profª pR,ofes'o*& | ||||
| abacaxi abakaSy | abacaxi abakaSy | ||||
| abordo $alt | abordo $alt | ||||
| aborto $alt $verb | aborto $alt $verb | ||||
| absorta $alt2 | |||||
| acerto $alt2 $noun | acerto $alt2 $noun | ||||
| acertos $alt2 | acertos $alt2 | ||||
| acocho $alt2 $noun | acocho $alt2 $noun | ||||
| entorto $alt | entorto $alt | ||||
| entroso $alt | entroso $alt | ||||
| envelope $alt | envelope $alt | ||||
| envolto $alt2 | |||||
| enxaqueca $alt2 | enxaqueca $alt2 | ||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| horrores $alt2 | horrores $alt2 | ||||
| humores $alt2 | humores $alt2 | ||||
| ideia $alt | ideia $alt | ||||
| imberbe $alt | |||||
| interesse $alt2 | interesse $alt2 | ||||
| interesse $alt $verb | interesse $alt $verb | ||||
| iodo $alt2 | iodo $alt2 | ||||
| leste $alt2 $verb | leste $alt2 $verb | ||||
| ?2 lhe l^y | ?2 lhe l^y | ||||
| lingueta $alt2 | lingueta $alt2 | ||||
| lisboeta $alt2 | |||||
| lodo $alt2 | lodo $alt2 | ||||
| logro $alt | logro $alt | ||||
| lopes $alt | lopes $alt | ||||
| moeda $alt | moeda $alt | ||||
| moem $alt | moem $alt | ||||
| mofo $alt $verb | mofo $alt $verb | ||||
| moleta $alt2 | |||||
| molho $alt2 $noun | molho $alt2 $noun | ||||
| monera $alt | monera $alt | ||||
| morcego $alt2 | morcego $alt2 | ||||
| mortos $alt | mortos $alt | ||||
| motora $alt2 | motora $alt2 | ||||
| mui mwi | mui mwi | ||||
| muleta $alt2 | |||||
| mureta $alt2 | mureta $alt2 | ||||
| mutreta $alt2 | mutreta $alt2 | ||||
| namoro $alt2 $noun | namoro $alt2 $noun | ||||
| rock $alt | rock $alt | ||||
| roem $alt | roem $alt | ||||
| rola $alt2 $noun | rola $alt2 $noun | ||||
| roleta $alt2 | |||||
| rolete $alt2 | |||||
| rolo $alt2 $noun | rolo $alt2 $noun | ||||
| rota $alt2 | rota $alt2 | ||||
| rota $alt $noun | rota $alt $noun | ||||
| traqueia $alt | traqueia $alt | ||||
| travesso $alt2 | travesso $alt2 | ||||
| tremores $alt2 | tremores $alt2 | ||||
| treta $alt2 | |||||
| trevo $alt2 | trevo $alt2 | ||||
| troco $alt2 $noun | troco $alt2 $noun | ||||
| tropa $alt | tropa $alt | ||||
| ?1 readme r'i:dmi: | ?1 readme r'i:dmi: | ||||
| ?1 sapi s,ap'i | ?1 sapi s,ap'i | ||||
| ?1 scanner sk'En&r | ?1 scanner sk'En&r | ||||
| sky sk'ay | |||||
| shake S'eIk | shake S'eIk | ||||
| ?1 shift S'ift | ?1 shift S'ift | ||||
| ?1 scroll sk:r'ol | ?1 scroll sk:r'ol | ||||
| ?4 símbolo s'iNbolU | ?4 símbolo s'iNbolU | ||||
| ?2 software s'Oftwe@- | ?2 software s'Oftwe@- | ||||
| ?1 space sp'eIsy | ?1 space sp'eIsy | ||||
| ?2 space sp'eIs | |||||
| ?1 sporting sp'Ort,ing | ?1 sporting sp'Ort,ing | ||||
| tab t'aby | tab t'aby | ||||
| tablet t'ablet | tablet t'ablet | ||||
| ?1 telemóvel t,El,Em'OvEl | ?1 telemóvel t,El,Em'OvEl | ||||
| ?1 telemóveis t,El,Em'OveIs# | ?1 telemóveis t,El,Em'OveIs# | ||||
| ?1 up &p | ?1 up &p | ||||
| ?1 upload &pl'oud | |||||
| update &pd'eIt | |||||
| upgrade &pgR'eId | |||||
| upload &pl'oud | |||||
| ?2 web w'Eb | ?2 web w'Eb | ||||
| ?1 yahoo 'i,ah'u | ?1 yahoo 'i,ah'u | ||||
| ?2 yahoo iah'u | ?2 yahoo iah'u | ||||
| // foreign product names | // foreign product names | ||||
| ?1 access 'aks,Es | ?1 access 'aks,Es | ||||
| ?1 adobe &d'Oby | ?1 adobe &d'Oby | ||||
| android &ndR'Oid | |||||
| android &NdR'Oid | |||||
| apple 'Epow | apple 'Epow | ||||
| chrome kR'owmi | chrome kR'owmi | ||||
| debian d'Ebj&~N | debian d'Ebj&~N |
| i) e (r_ E | i) e (r_ E | ||||
| @s) e (r_ E | @s) e (r_ E | ||||
| u) e (r_ E | |||||
| qu) e (r_ E | |||||
| ib) e (rL04_ E | ib) e (rL04_ E | ||||
| d) e (rL04_ E | d) e (rL04_ E | ||||
| @s) e (rL04_ E | @s) e (rL04_ E | ||||
| sp) e (rL04_ E | sp) e (rL04_ E | ||||
| f) e (rL02_ E | f) e (rL02_ E | ||||
| e (quL02_ E | e (quL02_ E | ||||
| e (rbL04_ E | |||||
| e (rgL04_ E | e (rgL04_ E | ||||
| e (rsL04_ E | e (rsL04_ E | ||||
| e (ssL04_ E | e (ssL04_ E | ||||
| e (ss_ E // stress and english words | e (ss_ E // stress and english words | ||||
| ?2 ection (_ 'EkS&~N | ?2 ection (_ 'EkS&~N | ||||
| ?2 ee (n_ i | |||||
| e (stL04_ E | e (stL04_ E | ||||
| e (strL04_ E | e (strL04_ E | ||||
| tiv) e (L05_ E // es- | tiv) e (L05_ E // es- | ||||
| viv) e (L05_ e | viv) e (L05_ e | ||||
| _com) e (L05_ e | _com) e (L05_ e | ||||
| s_colh) e (res_ E | |||||
| _cos) e (L05_ e | _cos) e (L05_ e | ||||
| _pud) e (L05_ E | _pud) e (L05_ E | ||||
| _coub) e (L05_ E | _coub) e (L05_ E | ||||
| _interromp) e (L07_ e | _interromp) e (L07_ e | ||||
| _troux) e (L07_ E | _troux) e (L07_ E | ||||
| _ens) e (bL03_ E | _ens) e (bL03_ E | ||||
| _enver) e (dL03_ E | |||||
| _amanc) e (bL03_ E | _amanc) e (bL03_ E | ||||
| qu) e (brL04_ E | qu) e (brL04_ E | ||||
| _cel) e (brL04_ E | _cel) e (brL04_ E | ||||
| _boch) e (chL04_ e | _boch) e (chL04_ e | ||||
| _ex) e (crL04_ E | |||||
| _on) e (rL04_ E | |||||
| _ex) e (crL04_ E | |||||
| _enr) e (dL01_ E | _enr) e (dL01_ E | ||||
| _v) e (dL03_ E | _v) e (dL03_ E | ||||
| _arr) e (dL03_ E | _arr) e (dL03_ E | ||||
| _persev) e (rL04_ E | _persev) e (rL04_ E | ||||
| _recup) e (rL04_ E | _recup) e (rL04_ E | ||||
| _refrig) e (rL04_ E | _refrig) e (rL04_ E | ||||
| _v) e (rbL03_ E | |||||
| _ex) e (rcL02_ E | |||||
| _ex) e (rcL02_ E | |||||
| _alic) e (rcL02_ E | _alic) e (rcL02_ E | ||||
| _p) e (rdL02_ E | _p) e (rdL02_ E | ||||
| _l) e (rdL03_ E | _l) e (rdL03_ E | ||||
| _h) e (rdL04_ E | _h) e (rdL04_ E | ||||
| _des) e (rdL04_ E | _des) e (rdL04_ E | ||||
| _) e (rgL03_ e | _) e (rgL03_ e | ||||
| _so) e (rgL03_ e | |||||
| _re) e (rgL03_ e | _re) e (rgL03_ e | ||||
| _bez) e (rrL03_ e | _bez) e (rrL03_ e | ||||
| v) e (rtL03_ e // con- re- in- | v) e (rtL03_ e // con- re- in- | ||||
| ?1 f) o (rmulá u // eg: formulário, formulários. | ?1 f) o (rmulá u // eg: formulário, formulários. | ||||
| ?1 v) o (lt O | ?1 v) o (lt O | ||||
| o (luem_ o | o (luem_ o | ||||
| o (CCuem_ o | |||||
| o (ssuem_ o | |||||
| êC) o (CA_ o | êC) o (CA_ o | ||||
| êCC) o (CA_ o | êCC) o (CA_ o | ||||
| ôC) o (CA_ o | ôC) o (CA_ o | ||||
| óCC) o (CA_ o | óCC) o (CA_ o | ||||
| úC) o (CA_ o | úC) o (CA_ o | ||||
| úCC) o (CA_ o | úCC) o (CA_ o | ||||
| ?2 otion (_ 'owS&~N | |||||
| //sort | //sort | ||||
| _f) o (L05_ o | _f) o (L05_ o | ||||
| _pormen) o (L05_ O | _pormen) o (L05_ O | ||||
| _esn) o (bL04_ O | _esn) o (bL04_ O | ||||
| _engl) o (bL04_ O | _engl) o (bL04_ O | ||||
| _sal) o (brL03_ o | _sal) o (brL03_ o | ||||
| _env) o (ltL03_ o | |||||
| _) o (cL03_ o | _) o (cL03_ o | ||||
| _m) o (fL01_ O | _m) o (fL01_ O | ||||
| _m) o (fL02_ O | _m) o (fL02_ O | ||||
| u (a u | u (a u | ||||
| g) u (a+ w | g) u (a+ w | ||||
| q) u (a+ w | q) u (a+ w | ||||
| u (eC u | |||||
| u (ei u | |||||
| r) u (_A u | r) u (_A u | ||||
| u (L04_ 'u | u (L04_ 'u | ||||
| ui (_ 'uI | ui (_ 'uI | ||||
| u (iu w | u (iu w | ||||
| u (iCK u | u (iCK u | ||||
| u (éC u | |||||
| u (íC u | |||||
| uy uI | uy uI | ||||
| ul (K uw | ul (K uw | ||||
| u (lh+ u | u (lh+ u | ||||
| g) u (Y | g) u (Y | ||||
| _m) ui (tA_ 'wiN | _m) ui (tA_ 'wiN | ||||
| ?2 ution (_ 'uS&~N | |||||
| .group ú | .group ú |
| // character names | // character names | ||||
| _cap vel^ke: | _cap vel^ke: | ||||
| _sub d,olni:||indeks|| | |||||
| _sup h,oRni:||indeks|| | |||||
| _?? simbol | _?? simbol | ||||
| _#9 t'ab | _#9 t'ab | ||||
| _#32 'medzeRa | _#32 'medzeRa | ||||
| * hviezda $max3 | * hviezda $max3 | ||||
| + plus $max3 | + plus $max3 | ||||
| = Rovna:sa $max3 | |||||
| = Rovna:||sa $max3 | |||||
| @ zavina:tS | @ zavina:tS | ||||
| & ampeRsand | & ampeRsand | ||||
| # kRi:Zik $max3 | # kRi:Zik $max3 | ||||
| _( za:tvoRka | _( za:tvoRka | ||||
| _) zatvoRit; | _) zatvoRit; | ||||
| _, tSiaRka | _, tSiaRka | ||||
| _- poml-tSka | |||||
| __ podtSiaRknutie | |||||
| _- spojovn^i:k | |||||
| __ podtSiaRkovn^i:k | |||||
| _. bodka | _. bodka | ||||
| _/ lomeno | |||||
| _/ lomka | |||||
| _: dvojbodka | _: dvojbodka | ||||
| _; bodkotSiaRka | _; bodkotSiaRka | ||||
| _< menSi: | _< menSi: | ||||
| _> vetSSi: | |||||
| _> v&tSSi: | |||||
| _? ota:zn^ik | _? ota:zn^ik | ||||
| _[ hRanata:||za:tvoRka | _[ hRanata:||za:tvoRka | ||||
| _\ opatSne:||lomeno | |||||
| _\ opatSna:||lomka | |||||
| _] hRanata:||zatvoRit; | _] hRanata:||zatvoRit; | ||||
| _^ stRieZka | |||||
| _^ voka:n^ | |||||
| _` aktsent | _` aktsent | ||||
| _{ zloZena:||za:tvoRka | _{ zloZena:||za:tvoRka | ||||
| _| zvisla:||tSiaRa | _| zvisla:||tSiaRa | ||||
| _} zloZena:||zatvoRit; | _} zloZena:||zatvoRit; | ||||
| _~ vl-novka | _~ vl-novka | ||||
| _ tvr-da:m'edzeRa // U+00A0 no-break-space | |||||
| _¡ obra:t;eni:v'i:kRitSn^i:k | |||||
| _¦ pReRuSena:'tSiaRa | |||||
| _ª hoRni:indeks'a: | |||||
| _« dvojita:lomena:||za:tvoRka | |||||
| _ mekka:poml-tSka | |||||
| _² nadRuhu: | |||||
| _³ natRetju | |||||
| _´ dl:Zen^ | |||||
| _· bodka'vpRostRjedku | |||||
| _¸ tsedila | |||||
| _¹ napRvu: | |||||
| _» dvojita:lomena:||zatvoRit; | |||||
| _¿ obRa:t;eni:'ota:zn^ik | |||||
| _– dl-ha:'poml-tSka | |||||
| _‘ l^ava:'u:vodzovka | |||||
| _’ prava:'u:vodzovka | |||||
| _“ horne:'u:vodzovki | |||||
| _” dolne:'u:vodzovki | |||||
| _‡ dvojiti:kRi:Z | |||||
| _• odRa:Zka | |||||
| _‣ tRojuholni:kova:'odRa:Zka | |||||
| _ tvr-da:||m'edzeRa // U+00A0 no-break-space | |||||
| _¡ obra:t;eni:||v'i:kRitSn^i:k | |||||
| _¦ pReRuSena:||tSiaRa | |||||
| _¨ pRehla:ska | |||||
| _« dvojita:||lomena:||za:tvoRka | |||||
| _ Rozd;el^ovn^i:k | |||||
| _´ dl:Zen^ | |||||
| _· bodka||v||pRostRjedku | |||||
| _¸ tsedila | |||||
| _» dvojita:||lomena:||zatvoRit; | |||||
| _¿ obRa:t;eni:||ota:zn^ik | |||||
| _– poml-tSka | |||||
| _‘ hoRne:||jednoduche:||u:vodzovki | |||||
| _’ odsuvn^i:k | |||||
| _“ hoRne:||u:vodzovki | |||||
| _” dvojita:||hoRna:||opatSna:||u:vodzovka | |||||
| _„ dolne:||u:vodzovki | |||||
| _‚ dolne:||jednoduche:||u:vodzovki | |||||
| _‡ dvojkRi:Z | |||||
| _• odRa:Zka | |||||
| _‣ odRa:Zka||tRojuholni:k | |||||
| _⁃ odRa:Zka||v||tvaRe||poml-tSki | |||||
| ‰ pRomile | ‰ pRomile | ||||
| € euRo | € euRo | ||||
| § paRagRaf | § paRagRaf | ||||
| ÷ d;eleno | ÷ d;eleno | ||||
| × kRa:t | × kRa:t | ||||
| ° stupn^ou | ° stupn^ou | ||||
| ¢ tsentou | |||||
| £ libjeR | |||||
| ¤ znatSkameni | |||||
| ¢ tsent | |||||
| £ libRa | |||||
| ¤ mena | |||||
| © kopiRajt | |||||
| ® Registrovane: | |||||
| ¥ jen | |||||
| − mi:nus | − mi:nus | ||||
| ± plus'mi:nus | |||||
| µ mu: | |||||
| ¼ Stvr-tina | |||||
| ± plus||mi:nus | |||||
| µ mi: | |||||
| ¼ Stvr-t;ina | |||||
| ½ polovitsa | ½ polovitsa | ||||
| ¾ tri_Stvr-tini | |||||
| ¬ logitske:not | |||||
| æ a'e: | |||||
| þ poml-tSkanad | |||||
| ¾ tRi_||Stvr-t;ini | |||||
| ¬ logitski:||za:poR | |||||
| æ otvoRene:||e: | |||||
| þ soRn | |||||
| ¯ pRuh||nad | |||||
| ð ed | |||||
| ƒ floRe:n | |||||
| _† kRi:Z | |||||
| _≈ pRibliZn^e||sa||Rovna: | |||||
| _≠ n^eRovna:||sa | |||||
| _≤ menSi:||alebo||sa||Rovna: | |||||
| _≥ v&tSSi:||alebo||sa||Rovna: | |||||
| _√ dRuha:||odmotsn^ina | |||||
| _∛ tRet;ia||odmotsn^ina | |||||
| _∞ n^ekon^etSno | |||||
| _■ tSieRni||StvoRets | |||||
| _□ bieli||StvoRets | |||||
| _◆ tSieRni||diamant | |||||
| _○ bieli||kRuh | |||||
| _● tSieRni||kRuh | |||||
| _◦ odRa:Zka||v||tvaRe||bielej||bodki | |||||
| _✓ zaSkr-tnutie | |||||
| _✔ tutSne:||zaSkr-tnutie | |||||
| _➔ Si:pka||vpravo | |||||
| _➢ odRa:Zka||v||tvaRe||Si:pki | |||||
| // Numbers | // Numbers |
| .L01 ç f h k p q s ş t // unvoiced consonants | .L01 ç f h k p q s ş t // unvoiced consonants | ||||
| .L02 ı a o u // back vowels | .L02 ı a o u // back vowels | ||||
| .L03 i e ö ü î â ô û // not-back vowels | .L03 i e ö ü î â ô û // not-back vowels | ||||
| .replace | .replace | ||||
| .group r | .group r | ||||
| r R | r R | ||||
| A) r (A * | A) r (A * | ||||
| ğ) r (A * | |||||
| ra (_S2 %Ra | ra (_S2 %Ra | ||||
| re (_S2 %Re | re (_S2 %Re |
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/ii_5) | FMT(vowel/ii_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 160 | |||||
| length 200 | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| phoneme & | phoneme & | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 160 | |||||
| length 200 | |||||
| IF thisPh(isWordEnd) THEN | |||||
| FMT(vowel/&_3) | |||||
| ENDIF | |||||
| FMT(vowel/&) | FMT(vowel/&) | ||||
| endphoneme | endphoneme | ||||
| phoneme W | phoneme W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/y#_2) | FMT(vowel/y#_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| FMT(vowel/u_5) | |||||
| length 180 | |||||
| FMT(vowel/u_2) | |||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 160 | |||||
| FMT(vowel/o_mid) | |||||
| length 200 | |||||
| FMT(vowel/o_mid2) | |||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 200 | length 200 | ||||
| FMT(vowel/aa) | |||||
| IF thisPh(isWordEnd) THEN | |||||
| FMT(vowel/a#) | |||||
| ENDIF | |||||
| FMT(vowel/aa_9) | |||||
| endphoneme | endphoneme | ||||
| phoneme @ | phoneme @ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| ipa ɯ | ipa ɯ | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/u#_7) | FMT(vowel/u#_7) | ||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 180 | |||||
| length 190 | |||||
| IF thisPh(isDiminished) THEN | IF thisPh(isDiminished) THEN | ||||
| ChangePhoneme(a/) | ChangePhoneme(a/) | ||||
| FMT(vowel/a#) | FMT(vowel/a#) | ||||
| phoneme a/ | phoneme a/ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 180 | |||||
| length 190 | |||||
| FMT(vowel/a#) | FMT(vowel/a#) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/ee_1) | FMT(vowel/ee_1) | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | |||||
| length 170 | |||||
| IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
| FMT(vowel/i) | FMT(vowel/i) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/o) | FMT(vowel/o) | ||||
| endphoneme | endphoneme | ||||
| phoneme O | phoneme O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/oo_4) | FMT(vowel/oo_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
| endphoneme | endphoneme | ||||
| phoneme U | phoneme U | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/uu_2) | FMT(vowel/uu_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme y | phoneme y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/y) | FMT(vowel/y) | ||||
| endphoneme | endphoneme | ||||
| phoneme Y | phoneme Y | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/y#) | FMT(vowel/y#) | ||||
| endphoneme | endphoneme | ||||
| ENDIF | ENDIF | ||||
| endphoneme | endphoneme | ||||
| phoneme t // dental variant of /t/ | |||||
| vls dnt stop | |||||
| voicingswitch d[ | |||||
| lengthmod 2 | |||||
| Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 | |||||
| Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | |||||
| IF nextPh(isPause2) THEN | |||||
| WAV(ustop/t_dnt2, 35) | |||||
| ENDIF | |||||
| WAV(ustop/t_dnt2, 70) | |||||
| phoneme t // dental variant of /t/ | |||||
| import_phoneme base/t[ | |||||
| endphoneme | endphoneme | ||||
| phoneme s | phoneme s | ||||
| vls alv frc sibilant | vls alv frc sibilant | ||||
| lengthmod 3 | lengthmod 3 |
| phoneme j | phoneme j | ||||
| liquid palatal | |||||
| liquid palatal starttype #i | |||||
| lengthmod 7 | lengthmod 7 | ||||
| IF nextPhW(isVowel) THEN | IF nextPhW(isVowel) THEN | ||||
| Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | ||||
| IF nextPh(isPause) THEN | IF nextPh(isPause) THEN | ||||
| WAV(ufric/x, 110) | |||||
| WAV(ufric/x_, 60) | |||||
| ENDIF | ENDIF | ||||
| WAV(ufric/x_hr, 20) | WAV(ufric/x_hr, 20) | ||||
| endphoneme | endphoneme |
| ix = utf8_in(&c2,p); | ix = utf8_in(&c2,p); | ||||
| if(c2 == 0) | if(c2 == 0) | ||||
| break; | break; | ||||
| if(iswupper(c2)) | |||||
| if(iswupper2(c2)) | |||||
| { | { | ||||
| utf8_out(towlower(c2),p); | |||||
| utf8_out(towlower2(c2),p); | |||||
| } | } | ||||
| else | else | ||||
| { | { |
| unsigned short ipa1[96] = { | unsigned short ipa1[96] = { | ||||
| 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | ||||
| 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | ||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254, | |||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254, | |||||
| 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | ||||
| 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | ||||
| 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | ||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||||
| {//========================================================================= | |||||
| /* Can be called after a clause has been translated into phonemes, in order | |||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode) | |||||
| {//=============================================================================== | |||||
| /* Called after a clause has been translated into phonemes, in order | |||||
| to display the clause in phoneme mnemonic form. | to display the clause in phoneme mnemonic form. | ||||
| phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||||
| bit 4: 0=eSpeak phoneme names, 1=IPA | |||||
| */ | */ | ||||
| int ix; | int ix; | ||||
| char *buf; | char *buf; | ||||
| int count; | int count; | ||||
| int flags; | int flags; | ||||
| int use_ipa; | |||||
| int use_tie; | |||||
| int separate_phonemes = 0; | int separate_phonemes = 0; | ||||
| char phon_buf[30]; | char phon_buf[30]; | ||||
| char phon_buf2[30]; | char phon_buf2[30]; | ||||
| static const char *stress_chars = "==,,''"; | static const char *stress_chars = "==,,''"; | ||||
| static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | ||||
| if(use_ipa >= 4) | |||||
| use_ipa = phoneme_mode & 0x10; | |||||
| use_tie = phoneme_mode & 0x0f; | |||||
| if(use_tie >= 3) | |||||
| { | { | ||||
| // separate individual phonemes with underscores | // separate individual phonemes with underscores | ||||
| separate_phonemes = '_'; | separate_phonemes = '_'; | ||||
| if(use_ipa == 5) | |||||
| use_ipa = 0; | |||||
| else | |||||
| use_ipa = 1; | |||||
| use_tie = 0; | |||||
| } | } | ||||
| if(phon_out != NULL) | if(phon_out != NULL) | ||||
| { | { | ||||
| for(ix=1; ix<(n_phoneme_list-2); ix++) | for(ix=1; ix<(n_phoneme_list-2); ix++) | ||||
| buf = phon_buf; | buf = phon_buf; | ||||
| plist = &phoneme_list[ix]; | plist = &phoneme_list[ix]; | ||||
| WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||||
| if(plist->newword) | if(plist->newword) | ||||
| *buf++ = ' '; | *buf++ = ' '; | ||||
| else | else | ||||
| { | { | ||||
| if((separate_phonemes != 0) && (ix > 1)) | if((separate_phonemes != 0) && (ix > 1)) | ||||
| { | { | ||||
| *buf++ = separate_phonemes; | |||||
| utf8_in(&c, phon_buf2); | |||||
| if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter | |||||
| { | |||||
| *buf++ = separate_phonemes; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| flags = 0; | flags = 0; | ||||
| WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||||
| count = 0; | count = 0; | ||||
| for(p=phon_buf2; *p != 0;) | for(p=phon_buf2; *p != 0;) | ||||
| { | { | ||||
| p += utf8_in(&c, p); | p += utf8_in(&c, p); | ||||
| if(use_ipa > 1) | |||||
| if(use_tie > 0) | |||||
| { | { | ||||
| // look for non-inital alphabetic character, but not diacritic, superscript etc. | // look for non-inital alphabetic character, but not diacritic, superscript etc. | ||||
| if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) | |||||
| if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c)) | |||||
| { | { | ||||
| buf += utf8_out(char_tie[use_ipa-2], buf); | |||||
| buf += utf8_out(char_tie[use_tie-1], buf); | |||||
| } | } | ||||
| } | } | ||||
| buf += utf8_out(c, buf); | buf += utf8_out(c, buf); | ||||
| break; | break; | ||||
| } | } | ||||
| if((c != '\'') && !iswalpha(c)) | |||||
| if((c != '\'') && !iswalpha2(c)) | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| break; | break; | ||||
| case RULE_NONALPHA: | case RULE_NONALPHA: | ||||
| if(!iswalpha(letter_w)) | |||||
| if(!iswalpha2(letter_w)) | |||||
| { | { | ||||
| add_points = (21-distance_right); | add_points = (21-distance_right); | ||||
| post_ptr += letter_xbytes; | post_ptr += letter_xbytes; | ||||
| break; | break; | ||||
| case RULE_NONALPHA: | case RULE_NONALPHA: | ||||
| if(!iswalpha(letter_w)) | |||||
| if(!iswalpha2(letter_w)) | |||||
| { | { | ||||
| add_points = (21-distance_right); | add_points = (21-distance_right); | ||||
| pre_ptr -= letter_xbytes; | pre_ptr -= letter_xbytes; | ||||
| if(tr->letter_bits_offset > 0) | if(tr->letter_bits_offset > 0) | ||||
| { | { | ||||
| // not a Latin alphabet, switch to the default Latin alphabet language | // not a Latin alphabet, switch to the default Latin alphabet language | ||||
| if((letter <= 0x241) && iswalpha(letter)) | |||||
| if((letter <= 0x241) && iswalpha2(letter)) | |||||
| { | { | ||||
| sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language); | sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language); | ||||
| return(0); | return(0); |
| case MENU_PATH0: | case MENU_PATH0: | ||||
| string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), | string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), | ||||
| _T(""),_T(""),_T("*"),wxOPEN); | |||||
| _T("phonemes"),_T(""),_T("*"),wxOPEN); | |||||
| if(!string.IsEmpty()) | if(!string.IsEmpty()) | ||||
| { | { | ||||
| path_phfile = string; | path_phfile = string; |
| for(k=0; k<ix; ) | for(k=0; k<ix; ) | ||||
| { | { | ||||
| k += utf8_in(&wc,&buf[k]); | k += utf8_in(&wc,&buf[k]); | ||||
| wc = towlower(wc); // convert to lower case | |||||
| if(iswalpha(wc)) | |||||
| wc = towlower2(wc); // convert to lower case | |||||
| if(iswalpha2(wc)) | |||||
| { | { | ||||
| j += utf8_out(wc,&wbuf[j]); | j += utf8_out(wc,&wbuf[j]); | ||||
| n_chars++; | n_chars++; | ||||
| } | } | ||||
| fprintf(f, "\nstatic const short wchar_tolower[] = {\n"); | fprintf(f, "\nstatic const short wchar_tolower[] = {\n"); | ||||
| exceptions[ex] = 0; | |||||
| exceptions[ex+1] = 0; | |||||
| for(ix=0; ix<=ex; ix+=2) | |||||
| for(ix=0; ix<ex; ix+=2) | |||||
| { | { | ||||
| fprintf(f,"\t0x%.3x, 0x%.3x,\n", exceptions[ix], exceptions[ix+1]); | fprintf(f,"\t0x%.3x, 0x%.3x,\n", exceptions[ix], exceptions[ix+1]); | ||||
| } | } | ||||
| fprintf(f, "};\n"); | |||||
| fprintf(f, "\t0,0 };\n"); | |||||
| fprintf(f, "\nstatic const short wchar_toupper[] = {\n"); | |||||
| for(ix=0x80; ix<=MAX_WALPHA; ix++) | |||||
| { | |||||
| if(iswlower(ix)) | |||||
| { | |||||
| c = towupper(ix); | |||||
| value = ix - c; | |||||
| if((value != 32) && (value != 1)) | |||||
| { | |||||
| fprintf(f,"\t0x%.3x, 0x%.3x,\n", ix, c); | |||||
| } | |||||
| } | |||||
| } | |||||
| fprintf(f, "\t0,0 };\n"); | |||||
| fclose(f); | fclose(f); | ||||
| } | } | ||||
| //CharsetToUnicode("ISO-8859-4"); | //CharsetToUnicode("ISO-8859-4"); | ||||
| //CharsetToUnicode("ISCII"); | //CharsetToUnicode("ISCII"); | ||||
| if(control==2) | if(control==2) | ||||
| { | { | ||||
| return; | return; |
| return(-1); | return(-1); | ||||
| } | } | ||||
| #define L_SUB 0x4000 // subscript | |||||
| #define L_SUP 0x8000 // superscript | |||||
| static const char *modifiers[] = {NULL, "_sub", "_sup", NULL}; | |||||
| // this list must be in ascending order | |||||
| static unsigned short derived_letters[] = { | |||||
| 0x00aa, 'a'+L_SUP, | |||||
| 0x00b2, '2'+L_SUP, | |||||
| 0x00b3, '3'+L_SUP, | |||||
| 0x00b9, '1'+L_SUP, | |||||
| 0x00ba, 'o'+L_SUP, | |||||
| 0x02b0, 'h'+L_SUP, | |||||
| 0x02b1, 0x266+L_SUP, | |||||
| 0x02b2, 'j'+L_SUP, | |||||
| 0x02b3, 'r'+L_SUP, | |||||
| 0x02b4, 0x279+L_SUP, | |||||
| 0x02b5, 0x27b+L_SUP, | |||||
| 0x02b6, 0x281+L_SUP, | |||||
| 0x02b7, 'w'+L_SUP, | |||||
| 0x02b8, 'y'+L_SUP, | |||||
| 0x02c0, 0x294+L_SUP, | |||||
| 0x02c1, 0x295+L_SUP, | |||||
| 0x02e0, 0x263+L_SUP, | |||||
| 0x02e1, 'l'+L_SUP, | |||||
| 0x02e2, 's'+L_SUP, | |||||
| 0x02e3, 'x'+L_SUP, | |||||
| 0x2070, '0'+L_SUP, | |||||
| 0x2071, 'i'+L_SUP, | |||||
| 0x2074, '4'+L_SUP, | |||||
| 0x2075, '5'+L_SUP, | |||||
| 0x2076, '6'+L_SUP, | |||||
| 0x2077, '7'+L_SUP, | |||||
| 0x2078, '8'+L_SUP, | |||||
| 0x2079, '9'+L_SUP, | |||||
| 0x207a, '+'+L_SUP, | |||||
| 0x207b, '-'+L_SUP, | |||||
| 0x207c, '='+L_SUP, | |||||
| 0x207d, '('+L_SUP, | |||||
| 0x207e, ')'+L_SUP, | |||||
| 0x207f, 'n'+L_SUP, | |||||
| 0x2080, '0'+L_SUB, | |||||
| 0x2081, '1'+L_SUB, | |||||
| 0x2082, '2'+L_SUB, | |||||
| 0x2083, '3'+L_SUB, | |||||
| 0x2084, '4'+L_SUB, | |||||
| 0x2085, '5'+L_SUB, | |||||
| 0x2086, '6'+L_SUB, | |||||
| 0x2087, '7'+L_SUB, | |||||
| 0x2088, '8'+L_SUB, | |||||
| 0x2089, '9'+L_SUB, | |||||
| 0x208a, '+'+L_SUB, | |||||
| 0x208b, '-'+L_SUB, | |||||
| 0x208c, '='+L_SUB, | |||||
| 0x208d, '('+L_SUB, | |||||
| 0x208e, ')'+L_SUB, | |||||
| 0x2090, 'a'+L_SUB, | |||||
| 0x2091, 'e'+L_SUB, | |||||
| 0x2092, 'o'+L_SUB, | |||||
| 0x2093, 'x'+L_SUB, | |||||
| 0x2094, 0x259+L_SUB, | |||||
| 0x2095, 'h'+L_SUB, | |||||
| 0x2096, 'k'+L_SUB, | |||||
| 0x2097, 'l'+L_SUB, | |||||
| 0x2098, 'm'+L_SUB, | |||||
| 0x2099, 'n'+L_SUB, | |||||
| 0x209a, 'p'+L_SUB, | |||||
| 0x209b, 's'+L_SUB, | |||||
| 0x209c, 't'+L_SUB, | |||||
| 0,0}; | |||||
| static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages | static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages | ||||
| int letter; | int letter; | ||||
| int len; | int len; | ||||
| int ix; | int ix; | ||||
| int c; | |||||
| char *p2; | char *p2; | ||||
| char *pbuf; | char *pbuf; | ||||
| const char *modifier; | |||||
| ALPHABET *alphabet; | ALPHABET *alphabet; | ||||
| int al_offset; | int al_offset; | ||||
| int al_flags; | int al_flags; | ||||
| int number; | int number; | ||||
| int phontab_1; | int phontab_1; | ||||
| int speak_letter_number; | int speak_letter_number; | ||||
| char capital[20]; | |||||
| char capital[30]; | |||||
| char ph_buf[80]; | char ph_buf[80]; | ||||
| char ph_buf2[80]; | char ph_buf2[80]; | ||||
| char ph_alphabet[80]; | char ph_alphabet[80]; | ||||
| if(control & 2) | if(control & 2) | ||||
| { | { | ||||
| // include CAPITAL information | // include CAPITAL information | ||||
| if(iswupper(letter)) | |||||
| if(iswupper2(letter)) | |||||
| { | { | ||||
| Lookup(tr, "_cap", capital); | Lookup(tr, "_cap", capital); | ||||
| } | } | ||||
| } | } | ||||
| letter = towlower2(letter); | letter = towlower2(letter); | ||||
| // is this a subscript or superscript letter ? | |||||
| for(ix=0; (c = derived_letters[ix]) != 0; ix+=2) | |||||
| { | |||||
| if(c > letter) | |||||
| break; | |||||
| if(c == letter) | |||||
| { | |||||
| c = derived_letters[ix+1]; | |||||
| letter = c & 0x3fff; | |||||
| if((modifier = modifiers[c >> 14]) != NULL) | |||||
| { | |||||
| Lookup(tr, modifier, capital); | |||||
| if(capital[0] == 0) | |||||
| { | |||||
| capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2 | |||||
| Lookup(translator2, modifier, &capital[3]); | |||||
| if(capital[3] != 0) | |||||
| { | |||||
| capital[0] = phonPAUSE; | |||||
| capital[1] = phonSWITCH; | |||||
| len = strlen(&capital[3]); | |||||
| capital[len+3] = phonSWITCH; | |||||
| capital[len+4] = phontab_1; | |||||
| capital[len+5] = 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | ||||
| if(ph_buf[0] == phonSWITCH) | if(ph_buf[0] == phonSWITCH) | ||||
| return(0); | return(0); | ||||
| } | } | ||||
| if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0)) | if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0)) | ||||
| { | { | ||||
| // convert a non-ascii number to 0-9 | // convert a non-ascii number to 0-9 | ||||
| speak_letter_number = 1; | speak_letter_number = 1; | ||||
| if(!(al_flags & AL_NO_SYMBOL)) | if(!(al_flags & AL_NO_SYMBOL)) | ||||
| { | { | ||||
| if(iswalpha(letter)) | |||||
| if(iswalpha2(letter)) | |||||
| Lookup(translator, "_?A", ph_buf); | Lookup(translator, "_?A", ph_buf); | ||||
| if((ph_buf[0]==0) && !iswspace(letter)) | if((ph_buf[0]==0) && !iswspace(letter)) | ||||
| if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) | if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) | ||||
| utf8_in(&next_char,p); | utf8_in(&next_char,p); | ||||
| if(!iswalpha(next_char) && (thousands_exact==0)) | |||||
| // if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) | |||||
| if(!iswalpha2(next_char) && (thousands_exact==0)) | |||||
| // if(!iswalpha2(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) | |||||
| strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | ||||
| } | } | ||||
| 0x23d, 0x19a, | 0x23d, 0x19a, | ||||
| 0x23e, 0x2c66, | 0x23e, 0x2c66, | ||||
| 0x243, 0x180, | 0x243, 0x180, | ||||
| 0x000, 0x000, | |||||
| }; | |||||
| 0,0 }; | |||||
| static const short wchar_toupper[] = { | |||||
| 0x0b5, 0x39c, | |||||
| 0x0df, 0x0df, | |||||
| 0x0ff, 0x178, | |||||
| 0x131, 0x049, | |||||
| 0x17f, 0x053, | |||||
| 0x180, 0x243, | |||||
| 0x195, 0x1f6, | |||||
| 0x19a, 0x23d, | |||||
| 0x19e, 0x220, | |||||
| 0x1bf, 0x1f7, | |||||
| 0x1c6, 0x1c4, | |||||
| 0x1c9, 0x1c7, | |||||
| 0x1cc, 0x1ca, | |||||
| 0x1dd, 0x18e, | |||||
| 0x1f3, 0x1f1, | |||||
| 0,0 }; | |||||
| #ifdef NEED_WCHAR_FUNCTIONS | #ifdef NEED_WCHAR_FUNCTIONS | ||||
| int towupper(int c) | int towupper(int c) | ||||
| { | { | ||||
| int ix; | |||||
| // check whether a previous character code is the upper-case equivalent of this character | // check whether a previous character code is the upper-case equivalent of this character | ||||
| if(towlower(c-32) == c) | if(towlower(c-32) == c) | ||||
| return(c-32); // yes, use it | return(c-32); // yes, use it | ||||
| if(towlower(c-1) == c) | if(towlower(c-1) == c) | ||||
| return(c-1); | return(c-1); | ||||
| if(towlower(c-2) == c) | |||||
| return(c-2); | |||||
| for(ix=0; wchar_toupper[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_toupper[ix] == c) | |||||
| return(wchar_toupper[ix+1]); | |||||
| } | |||||
| return(c); // no | return(c); // no | ||||
| } | } | ||||
| return(walpha_tab[c-0x80]); | return(walpha_tab[c-0x80]); | ||||
| } | } | ||||
| int iswlower2(int c) | |||||
| { | |||||
| if(c < 0x80) | |||||
| return(islower(c)); | |||||
| if(c > MAX_WALPHA) | |||||
| return(iswlower(c)); | |||||
| if(walpha_tab[c-0x80] == 0xff) | |||||
| return(1); | |||||
| return(0); | |||||
| } | |||||
| int iswupper2(int c) | |||||
| { | |||||
| int x; | |||||
| if(c < 0x80) | |||||
| return(isupper(c)); | |||||
| if(c > MAX_WALPHA) | |||||
| return(iswupper(c)); | |||||
| if(((x = walpha_tab[c-0x80]) > 0) && (x < 0xfe)) | |||||
| return(1); | |||||
| return(0); | |||||
| } | |||||
| int towlower2(unsigned int c) | int towlower2(unsigned int c) | ||||
| { | { | ||||
| // check for non-standard upper to lower case conversions | // check for non-standard upper to lower case conversions | ||||
| if(c == 'I') | if(c == 'I') | ||||
| { | { | ||||
| if(translator->translator_name == L('t','r')) | |||||
| if(translator->langopts.dotless_i) | |||||
| { | { | ||||
| c = 0x131; // I -> ı | c = 0x131; // I -> ı | ||||
| } | } | ||||
| return(c + x); // convert to lower case | return(c + x); // convert to lower case | ||||
| } | } | ||||
| int towupper2(unsigned int c) | |||||
| { | |||||
| int ix; | |||||
| if(c > MAX_WALPHA) | |||||
| return(towupper(c)); | |||||
| // check whether a previous character code is the upper-case equivalent of this character | |||||
| if(towlower2(c-32) == c) | |||||
| return(c-32); // yes, use it | |||||
| if(towlower2(c-1) == c) | |||||
| return(c-1); | |||||
| for(ix=0; wchar_toupper[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_toupper[ix] == c) | |||||
| return(wchar_toupper[ix+1]); | |||||
| } | |||||
| return(c); // no | |||||
| } | |||||
| static int IsRomanU(unsigned int c) | static int IsRomanU(unsigned int c) | ||||
| {//================================ | {//================================ | ||||
| c2 = ' '; | c2 = ' '; | ||||
| } | } | ||||
| else | else | ||||
| if((c2 == '/') || iswalpha(c2)) | |||||
| if((c2 == '/') || iswalpha2(c2)) | |||||
| { | { | ||||
| // check for space in the output buffer for embedded commands produced by the SSML tag | // check for space in the output buffer for embedded commands produced by the SSML tag | ||||
| if(ix > (n_buf - 20)) | if(ix > (n_buf - 20)) | ||||
| } | } | ||||
| } | } | ||||
| if(iswupper(c1)) | |||||
| if(iswupper2(c1)) | |||||
| { | { | ||||
| tr->clause_upper_count++; | tr->clause_upper_count++; | ||||
| if((option_capitals == 2) && (sayas_mode == 0) && !iswupper(cprev)) | |||||
| if((option_capitals == 2) && (sayas_mode == 0) && !iswupper2(cprev)) | |||||
| { | { | ||||
| char text_buf[40]; | char text_buf[40]; | ||||
| char text_buf2[30]; | char text_buf2[30]; | ||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| if(iswalpha(c1)) | |||||
| if(iswalpha2(c1)) | |||||
| tr->clause_lower_count++; | tr->clause_lower_count++; | ||||
| if(option_phoneme_input) | if(option_phoneme_input) | ||||
| if(!iswspace(c1)) | if(!iswspace(c1)) | ||||
| { | { | ||||
| if(!IsAlpha(c1) || !iswlower(c1)) | |||||
| // if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1))) | |||||
| if(!IsAlpha(c1) || !iswlower2(c1)) | |||||
| // if(iswdigit(c1) || (IsAlpha(c1) && !iswlower2(c1))) | |||||
| { | { | ||||
| UngetC(c2); | UngetC(c2); | ||||
| ungot_char2 = c1; | ungot_char2 = c1; | ||||
| if(nl_count==0) | if(nl_count==0) | ||||
| { | { | ||||
| if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next)))) | |||||
| if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower2(c_next)))) | |||||
| { | { | ||||
| // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number | // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number | ||||
| c1 = CHAR_COMMA_BREAK; | c1 = CHAR_COMMA_BREAK; | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) | |||||
| if (iswlower2(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) | |||||
| 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) | ||||
| } | } | ||||
| } | } | ||||
| { | { | ||||
| is_end_clause = 0; // eg. u.s.a.'s | is_end_clause = 0; // eg. u.s.a.'s | ||||
| } | } | ||||
| if(iswlower(c_next)) | |||||
| if(iswlower2(c_next)) | |||||
| { | { | ||||
| // next word has no capital letter, this dot is probably from an abbreviation | // next word has no capital letter, this dot is probably from an abbreviation | ||||
| // c1 = ' '; | // c1 = ' '; |
| } // end of espeak_SetPhonemes | } // end of espeak_SetPhonemes | ||||
| ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode) | |||||
| {//============================================================================================================== | |||||
| /* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||||
| bit 4: 0=eSpeak phoneme names, 1=IPA | |||||
| */ | |||||
| option_multibyte = textmode & 7; | |||||
| TranslateClause(translator, NULL, text, NULL, NULL); | |||||
| GetTranslatedPhonemeString(buffer, size, phonememode); | |||||
| } | |||||
| ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) | ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) | ||||
| {//============================================================================= | {//============================================================================= | ||||
| ENTER("espeak_CompileDictionary"); | ENTER("espeak_CompileDictionary"); |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.47.07a 23.Apr.13"; | |||||
| const char *version_string = "1.47.07b 25.Apr.13"; | |||||
| const int version_phdata = 0x014701; | const int version_phdata = 0x014701; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| if((option_phonemes > 0) || (phoneme_callback != NULL)) | if((option_phonemes > 0) || (phoneme_callback != NULL)) | ||||
| { | { | ||||
| int use_ipa = 0; | |||||
| int phoneme_mode = 0; | |||||
| if(option_phonemes >= 3) | if(option_phonemes >= 3) | ||||
| use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ, 4=ipa with separators | |||||
| phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators | |||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), phoneme_mode); | |||||
| if(option_phonemes > 0) | if(option_phonemes > 0) | ||||
| { | { | ||||
| fprintf(f_trans,"%s\n",translator->phon_out); | fprintf(f_trans,"%s\n",translator->phon_out); | ||||
| if(!iswalpha(0x010d)) | |||||
| { | |||||
| // check that c-caron is recognized as an alphabetic character | |||||
| fprintf(stderr,"Warning: Accented letters are not recognized, eg: U+010D\nSet LC_CTYPE to a UTF-8 locale\n"); | |||||
| } | |||||
| } | } | ||||
| if(phoneme_callback != NULL) | if(phoneme_callback != NULL) | ||||
| { | { |
| SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels); | SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels); | ||||
| SetLetterBits(tr,LETTERGP_C,hy_consonants); | SetLetterBits(tr,LETTERGP_C,hy_consonants); | ||||
| tr->langopts.max_initial_consonants = 6; | tr->langopts.max_initial_consonants = 6; | ||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; | |||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED; | |||||
| // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| } | } | ||||
| break; | break; | ||||
| ResetLetterBits(tr,0x2); | ResetLetterBits(tr,0x2); | ||||
| SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y | SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y | ||||
| tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2 | tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2 | ||||
| tr->langopts.accents = 2; // 'capital' after letter name | |||||
| } | } | ||||
| break; | break; | ||||
| tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | ||||
| tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress | tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress | ||||
| tr->langopts.dotless_i = 1; | |||||
| tr->langopts.param[LOPT_SUFFIX] = 1; | tr->langopts.param[LOPT_SUFFIX] = 1; | ||||
| if(name2 == L('a','z')) | if(name2 == L('a','z')) |
| while((*word != 0) && !isspace2(*word)) | while((*word != 0) && !isspace2(*word)) | ||||
| { | { | ||||
| word += utf8_in(&c, word); | word += utf8_in(&c, word); | ||||
| if(!iswupper(c)) | |||||
| if(!iswupper2(c)) | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| return(1); | return(1); | ||||
| } | } | ||||
| } | } | ||||
| if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha(first_char)) | |||||
| if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha2(first_char)) | |||||
| { | { | ||||
| if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV)) | if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV)) | ||||
| { | { | ||||
| tr->expect_past--; | tr->expect_past--; | ||||
| } | } | ||||
| if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha(first_char) && (first_char != 'i')) | |||||
| if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha2(first_char) && (first_char != 'i')) | |||||
| { | { | ||||
| // English Specific !!!! | // English Specific !!!! | ||||
| // any single letter before a dot is an abbreviation, except 'I' | // any single letter before a dot is an abbreviation, except 'I' | ||||
| while(*p2 != ' ') p2++; | while(*p2 != ' ') p2++; | ||||
| utf8_in(&c_word2, p2+1); // first character of the next word; | utf8_in(&c_word2, p2+1); // first character of the next word; | ||||
| if(!iswalpha(c_word2)) | |||||
| if(!iswalpha2(c_word2)) | |||||
| { | { | ||||
| ok =0; | ok =0; | ||||
| } | } | ||||
| // there is a list of character codes to be substituted with alternative codes | // there is a list of character codes to be substituted with alternative codes | ||||
| if(iswupper(c_lower = c)) | |||||
| if(iswupper2(c_lower = c)) | |||||
| { | { | ||||
| c_lower = towlower(c); | |||||
| c_lower = towlower2(c); | |||||
| upper_case = 1; | upper_case = 1; | ||||
| } | } | ||||
| new_c = replace_chars[ix+1]; | new_c = replace_chars[ix+1]; | ||||
| break; | break; | ||||
| } | } | ||||
| if((word >> 16) == (unsigned int)towlower(next_in)) | |||||
| if((word >> 16) == (unsigned int)towlower2(next_in)) | |||||
| { | { | ||||
| new_c = replace_chars[ix+1]; | new_c = replace_chars[ix+1]; | ||||
| ignore_next = 1; | ignore_next = 1; | ||||
| // there is a second character to be inserted | // there is a second character to be inserted | ||||
| // don't convert the case of the second character unless the next letter is also upper case | // don't convert the case of the second character unless the next letter is also upper case | ||||
| c2 = new_c >> 16; | c2 = new_c >> 16; | ||||
| if(upper_case && iswupper(next_in)) | |||||
| c2 = towupper(c2); | |||||
| if(upper_case && iswupper2(next_in)) | |||||
| c2 = towupper2(c2); | |||||
| *insert = c2; | *insert = c2; | ||||
| new_c &= 0xffff; | new_c &= 0xffff; | ||||
| } | } | ||||
| if(upper_case) | if(upper_case) | ||||
| new_c = towupper(new_c); | |||||
| new_c = towupper2(new_c); | |||||
| *wordflags |= FLAG_CHAR_REPLACED; | *wordflags |= FLAG_CHAR_REPLACED; | ||||
| return(new_c); | return(new_c); | ||||
| // look for 'n and replace by a special character (unicode: schwa) | // look for 'n and replace by a special character (unicode: schwa) | ||||
| if(!iswalpha(prev_in)) | |||||
| if(!iswalpha2(prev_in)) | |||||
| { | { | ||||
| utf8_in(&next2, &ptr[1]); | utf8_in(&next2, &ptr[1]); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if(iswupper(c)) | |||||
| if(iswupper2(c)) | |||||
| word_flags |= FLAG_FIRST_UPPER; | word_flags |= FLAG_FIRST_UPPER; | ||||
| if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in)) | if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in)) | ||||
| } | } | ||||
| } | } | ||||
| if(iswupper(c)) | |||||
| if(iswupper2(c)) | |||||
| { | { | ||||
| c = towlower2(c); | c = towlower2(c); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if((iswlower(prev_in)) && (prev_in != 0xba)) // Windows thinks masc.ordinal (0xba) is lower-case | |||||
| if(iswlower2(prev_in)) | |||||
| { | { | ||||
| // lower case followed by upper case in a word | // lower case followed by upper case in a word | ||||
| if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) | if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) | ||||
| // next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set | // next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set | ||||
| } | } | ||||
| } | } | ||||
| else if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) | |||||
| else if((c != ' ') && iswupper2(prev_in) && iswlower2(next_in)) | |||||
| { | { | ||||
| int next2_in; | int next2_in; | ||||
| utf8_in(&next2_in,&source[source_index + next_in_nbytes]); | utf8_in(&next2_in,&source[source_index + next_in_nbytes]); |
| char tone_numbers; | char tone_numbers; | ||||
| char ideographs; // treat as separate words | char ideographs; // treat as separate words | ||||
| char textmode; // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled) | char textmode; // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled) | ||||
| char dotless_i; // uses letter U+0131 | |||||
| int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | ||||
| int listx; // compile *_listx after *list | int listx; // compile *_listx after *list | ||||
| const unsigned int *replace_chars; // characters to be substitutes | const unsigned int *replace_chars; // characters to be substitutes | ||||
| int IsVowel(Translator *tr, int c); | int IsVowel(Translator *tr, int c); | ||||
| int iswalpha2(int c); | int iswalpha2(int c); | ||||
| int isspace2(unsigned int c); | int isspace2(unsigned int c); | ||||
| int iswlower2(int c); | |||||
| int iswupper2(int c); | |||||
| int towlower2(unsigned int c); | int towlower2(unsigned int c); | ||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); | |||||
| int towupper2(unsigned int c); | |||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode); | |||||
| const char *WordToString2(unsigned int word); | const char *WordToString2(unsigned int word); | ||||
| ALPHABET *AlphabetFromChar(int c); | ALPHABET *AlphabetFromChar(int c); | ||||
| ALPHABET *AlphabetFromName(const char *name); | ALPHABET *AlphabetFromName(const char *name); |
| t_phonetic->SetDefaultStyle(style_phonetic_large); | t_phonetic->SetDefaultStyle(style_phonetic_large); | ||||
| translate_text = 3; | translate_text = 3; | ||||
| use_ipa = 1; | |||||
| use_ipa = 0x10; | |||||
| break; | break; | ||||
| case T_PROCESS: | case T_PROCESS: |
| // which directory to look for a named voice. List of voice names, must end in a space. | // which directory to look for a named voice. List of voice names, must end in a space. | ||||
| static const char *voices_asia = | static const char *voices_asia = | ||||
| "bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue "; | |||||
| "az bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue "; | |||||
| static const char *voices_europe = | static const char *voices_europe = | ||||
| "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | ||||