| // Aragon translation rules | |||||
| // This file is UTF-8 encoded | |||||
| // letter names | |||||
| b be | |||||
| c Te | |||||
| d de | |||||
| f Efe | |||||
| g xe | |||||
| h atSe | |||||
| j xOta | |||||
| k ka | |||||
| l Ele | |||||
| m Eme | |||||
| n Ene | |||||
| ñ En^e | |||||
| p pe | |||||
| q ku | |||||
| r E*e | |||||
| s Ese | |||||
| t te | |||||
| u u | |||||
| v uBe | |||||
| w uBe||dOBle | |||||
| x Ekis | |||||
| y je | |||||
| z Teta | |||||
| // numbers | |||||
| _0 T'ero | |||||
| _1 'un | |||||
| _2 d'os | |||||
| _3 tr'es | |||||
| _4 kw'atro | |||||
| _5 T'inko | |||||
| _6 s'eIs | |||||
| _7 sj'Et | |||||
| _8 gw'eIto | |||||
| _9 nw'eU | |||||
| _1X d,eT | |||||
| _10 dj'eT | |||||
| _11 'onTe | |||||
| _12 d'oTe | |||||
| _13 tr'eTe | |||||
| _14 kat'orTe | |||||
| _15 k'inTe | |||||
| _20 B'inte | |||||
| _2X B,int | |||||
| _3X tr'enta | |||||
| _4X kwar'anta | |||||
| _5X Tinkw'anta | |||||
| _6X siks'anta | |||||
| _7X set'anta | |||||
| _8X gwit'anta | |||||
| _9X noB'anta | |||||
| _0C Tj'Entos | |||||
| _1C Tj'En | |||||
| _2C doTj'Entos | |||||
| _3C tresTj'Entos | |||||
| _6C seITj'Entos | |||||
| _7C sjEteTj'Entos | |||||
| _8C gwitoTj'Entos | |||||
| _9C nowTj'Entos | |||||
| _0M1 m'il | |||||
| _0M2 mil^'ones | |||||
| _0and i | |||||
| _dpt kon | |||||
| // Aragon translation rules | |||||
| // This file is UTF-8 encoded | |||||
| .L01 l r y | |||||
| .L03 f h j s y z r // allow [B] [D] [Q] before these consonants | |||||
| .L04 b v f p // labials, nasals are [m] | |||||
| .L05 g k // velars, nasals are [N] | |||||
| .group a | |||||
| a a | |||||
| ai aI | |||||
| ai (X 'aI | |||||
| ay (K aI | |||||
| ay (X 'aI | |||||
| au aU | |||||
| au (X 'aU | |||||
| .group b | |||||
| b b | |||||
| _) b b // phoneme definition may change it to [B] | |||||
| _) b (A b | |||||
| b (A B | |||||
| b (cY B | |||||
| b (L03 B | |||||
| m) b b | |||||
| n) b b | |||||
| b (iA b | |||||
| b (uA b | |||||
| .group c | |||||
| c k | |||||
| c (Y T // ce ci | |||||
| cc kT | |||||
| ch tS | |||||
| .group d | |||||
| d d | |||||
| _) d d // phoneme definition may change it to [D] | |||||
| _) d (A d | |||||
| d (A D | |||||
| d (cY D | |||||
| d (L03 D | |||||
| m) d d | |||||
| n) d d | |||||
| l) d d | |||||
| r) d d | |||||
| n) d (_ = // silent, but stress on last vowel | |||||
| .group e | |||||
| e e | |||||
| ei eI | |||||
| ei (X 'eI | |||||
| ey (K eI | |||||
| ey (X 'eI | |||||
| eu eU | |||||
| eu (X 'eU | |||||
| i) e E | |||||
| u) e E | |||||
| y) e E | |||||
| .group f | |||||
| f f | |||||
| .group g | |||||
| g g | |||||
| _) g g // phoneme definition may change it to [Q] | |||||
| _) gh (A g // allow _gh in foreign words | |||||
| _) gn (A n | |||||
| _) g (A g | |||||
| g (A Q | |||||
| g (cY Q | |||||
| g (L03 Q | |||||
| m) g g | |||||
| n) g g | |||||
| g (Y+ x // ge gi | |||||
| gu (A gw | |||||
| gü gw | |||||
| gu (e g | |||||
| gu (i g | |||||
| .group h | |||||
| h // silent | |||||
| .group i | |||||
| i i | |||||
| i (A j | |||||
| A) ix S | |||||
| .group j | |||||
| j x | |||||
| .group k | |||||
| k k | |||||
| .group l | |||||
| l l | |||||
| ll l^ | |||||
| .group m | |||||
| m m | |||||
| .group n | |||||
| n n | |||||
| n (L04 m | |||||
| n (_L04 m | |||||
| ny n^ | |||||
| .group ñ | |||||
| ñ n^ | |||||
| .group o | |||||
| o o | |||||
| oi oI | |||||
| oi (X 'oI | |||||
| oy (K oI | |||||
| oy (X 'oI | |||||
| ou ow | |||||
| ou (X 'ow | |||||
| i) o O | |||||
| u) o O | |||||
| y) o O | |||||
| .group p | |||||
| p p | |||||
| .group q | |||||
| qu (A kw | |||||
| qü kw | |||||
| qu (e k | |||||
| qu (i k | |||||
| .group r | |||||
| r r | |||||
| _) r R | |||||
| rr RR2 | |||||
| @) r (- = // followed by hyphen. Silent, but stress on last vowel | |||||
| .group s | |||||
| s s | |||||
| .group t | |||||
| t t | |||||
| a) t (_ t# // becomes silent in a stressed syllable | |||||
| u) t (_ t# | |||||
| ei) t (_ t# | |||||
| n) t (_ = // silent, but stress on last vowel | |||||
| tz T | |||||
| .group u | |||||
| u u | |||||
| u (A w | |||||
| _) u (A gw | |||||
| .group v | |||||
| v B | |||||
| .group w | |||||
| w w | |||||
| .group x | |||||
| x ks | |||||
| _) x S | |||||
| .group y | |||||
| y j | |||||
| .group z | |||||
| z T | |||||
| .group | |||||
| á ''a | |||||
| é ''e | |||||
| í ''i | |||||
| ó ''o | |||||
| ú ''u | |||||
| _> grY:s3 | _> grY:s3 | ||||
| _« 'anfy:RUNsts,aIC@n | _« 'anfy:RUNsts,aIC@n | ||||
| _» 'anfy:RUNsts,aIC@n||ts'u: | _» 'anfy:RUNsts,aIC@n||ts'u: | ||||
| _„ l'INk@s_!,anfy:RUNsts,aIC@n | |||||
| _” @-r'ECt@s_!,anfy:RUNsts,aIC@n | |||||
| _` grA:v | _` grA:v | ||||
| _^ tsIrkUmflEks | _^ tsIrkUmflEks | ||||
| _— g@d'aNk@nStr,IC | _— g@d'aNk@nStr,IC |
| altogether ,O:lt@gED3 | altogether ,O:lt@gED3 | ||||
| always O:lweIz | always O:lweIz | ||||
| aluminium aljUm'Ini@m | aluminium aljUm'Ini@m | ||||
| alzheimer altsaIm3 | |||||
| amaryllis am@r'IlIs | amaryllis am@r'IlIs | ||||
| amass a#mas | amass a#mas | ||||
| ambassador a#mbas@d3 | ambassador a#mbas@d3 | ||||
| apneoa apni@ | apneoa apni@ | ||||
| apostle a#p0s@L | apostle a#p0s@L | ||||
| apron eIpr@n | apron eIpr@n | ||||
| apropos apr@p'oU | |||||
| appal a#pO:l | appal a#pO:l | ||||
| apparatus ap@r'eIt@s | apparatus ap@r'eIt@s | ||||
| ?3 apparatus ap@r'at@s | ?3 apparatus ap@r'at@s | ||||
| hercules h3:kjUli:z | hercules h3:kjUli:z | ||||
| heretical hI2rEtI2k@L | heretical hI2rEtI2k@L | ||||
| hereto hi@3'tu: | hereto hi@3'tu: | ||||
| heretofore hi@3t@fo@ | |||||
| hermaphrodite $2 | hermaphrodite $2 | ||||
| hermes h3:mi:z | hermes h3:mi:z | ||||
| herod hEr@d | herod hEr@d |
| app (eti ap | app (eti ap | ||||
| app (le ap | app (le ap | ||||
| app (lic ap | app (lic ap | ||||
| app (licab a#p | |||||
| applicab a#plIk@b | |||||
| app (reh ap | app (reh ap | ||||
| apres apreI | apres apreI | ||||
| _) apprec (L02 a#pri:S | _) apprec (L02 a#pri:S | ||||
| _c) re (mat rI2 | _c) re (mat rI2 | ||||
| rement rIm@nt | rement rIm@nt | ||||
| _) re (nC rE | _) re (nC rE | ||||
| re (nova rE | |||||
| _) reper (t rEp3 | _) reper (t rEp3 | ||||
| repe (tit rEp@ | repe (tit rEp@ | ||||
| repe (titiv rI2pE | repe (titiv rI2pE |
| ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | ||||
| // .group ( // Deliminator, not possible | |||||
| // .group ) // Deliminator, not possible | // .group ) // Deliminator, not possible | ||||
| // .group . // Deliminator, not possible | |||||
| // Special Symbols with special meanings | // Special Symbols with special meanings | ||||
| .group | .group | ||||
| । pur',n.@,w'ir'a:m // Fullstop of Devanagari | । pur',n.@,w'ir'a:m // Fullstop of Devanagari | ||||
| ॥ d'ob'b@2r@2,wir'a::mV // Double Fullstop - means Read sentence twice. | |||||
| ॱ b'i:n=d'u: // Decimal of devanagari (dot [.] is mostly used!). | |||||
| ॰ V,nsh@ // symbol for degree in Devanagari. | |||||
| ॥ d'i:rgh@,w'ir'a:m // Double Fullstop - means Read sentence twice. | |||||
| ॱ dVS@mal@w@2 // Decimal of devanagari (dot [.] is mostly used!). | |||||
| ॰ saNks.e:p@s'u:c@k@ | |||||
| $ dOlV | $ dOlV | ||||
| % prVtish'vt | % prVtish'vt | ||||
| // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | ||||
| ़ n'u'k't'a: // Name of symbol. | ़ n'u'k't'a: // Name of symbol. | ||||
| ॑ | |||||
| ॓ | |||||
| ॔ | |||||
| ॽ | |||||
| ॒ Vd'o:,r'ekh'a: // Name of symbol. | |||||
| ॑ Ud'Vtt,@ | |||||
| ॓ Ud:dh@r,@n.@a:r'Vmbh@ | |||||
| ॔ ,Ud:dh@r,@n.@'Vnt@ | |||||
| ॽ k,@n.th.@w'Ira:m | |||||
| ॒ a'n'ud'Vtt,@ | |||||
| // The Latin letter a-z are automatically translated into English. | // The Latin letter a-z are automatically translated into English. |
| aperto $alt2 $noun | aperto $alt2 $noun | ||||
| apoio $alt $verb | apoio $alt $verb | ||||
| aprendeste $alt2 | aprendeste $alt2 | ||||
| aprovo $alt | |||||
| arremesso $alt2 $noun | arremesso $alt2 $noun | ||||
| arroz $alt2 | |||||
| assembleia $alt | assembleia $alt | ||||
| atmosfera $alt | atmosfera $alt | ||||
| atrozes $alt | atrozes $alt | ||||
| careta $alt2 | careta $alt2 | ||||
| carreta $alt2 | carreta $alt2 | ||||
| casebre $alt | casebre $alt | ||||
| castelo $alt | |||||
| cateto $alt2 | cateto $alt2 | ||||
| catorze $alt2 | catorze $alt2 | ||||
| cefaleia $alt | cefaleia $alt | ||||
| chefe $alt | chefe $alt | ||||
| chinelo $alt | chinelo $alt | ||||
| choro $alt2 $noun | choro $alt2 $noun | ||||
| chupeta $alt2 | |||||
| coco $alt2 | coco $alt2 | ||||
| cofre $alt | cofre $alt | ||||
| colmeia $alt | colmeia $alt | ||||
| corpos $alt | corpos $alt | ||||
| correste $alt2 | correste $alt2 | ||||
| corto $alt | corto $alt | ||||
| corveta $alt2 | |||||
| corvos $alt | corvos $alt | ||||
| coto $alt2 | coto $alt2 | ||||
| couber $alt | couber $alt | ||||
| crescem $alt | crescem $alt | ||||
| der $alt | der $alt | ||||
| desapego $alt2 $noun | desapego $alt2 $noun | ||||
| descabelo $alt | |||||
| desce $alt | desce $alt | ||||
| descem $alt | descem $alt | ||||
| descordo $alt | descordo $alt | ||||
| enumerem $alt | enumerem $alt | ||||
| enredo $alt $verb | enredo $alt $verb | ||||
| enterro $alt2 $noun | enterro $alt2 $noun | ||||
| envelope $alt | |||||
| envolto $alt2 | envolto $alt2 | ||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| esperma $alt | esperma $alt | ||||
| espeto $alt2 $noun | espeto $alt2 $noun | ||||
| espiroqueta $alt2 | espiroqueta $alt2 | ||||
| espoleta $alt2 | |||||
| esposa $alt2 | |||||
| esqueleto $alt2 | esqueleto $alt2 | ||||
| estiverdes $alt | estiverdes $alt | ||||
| estiveres $alt | estiveres $alt | ||||
| estrela $alt2 | |||||
| estrofe $alt | estrofe $alt | ||||
| etiqueta $alt2 | etiqueta $alt2 | ||||
| europa $alt | europa $alt | ||||
| folga $alt | folga $alt | ||||
| fogos $alt | fogos $alt | ||||
| forca $alt2 | forca $alt2 | ||||
| forças $alt2 | |||||
| fores $alt2 | fores $alt2 | ||||
| forro $alt $verb | forro $alt $verb | ||||
| fosse $alt2 | fosse $alt2 | ||||
| martelo $alt | martelo $alt | ||||
| merda $alt | merda $alt | ||||
| megera $alt | megera $alt | ||||
| melo $alt | |||||
| mentora $alt2 | mentora $alt2 | ||||
| metro $alt | metro $alt | ||||
| mexa m'eS& | mexa m'eS& | ||||
| pesquem $alt | pesquem $alt | ||||
| peso $alt | peso $alt | ||||
| peso $alt2 $noun | peso $alt2 $noun | ||||
| piloto $alt2 | |||||
| pirueta $alt2 | pirueta $alt2 | ||||
| plateia $alt | plateia $alt | ||||
| plebeia $alt | plebeia $alt | ||||
| rede $alt2 | rede $alt2 | ||||
| reforços $alt | reforços $alt | ||||
| refresco $alt $verb | refresco $alt $verb | ||||
| reitora $alt2 | |||||
| remorso $alt | remorso $alt | ||||
| resolve $alt | resolve $alt | ||||
| resolvem $alt | resolvem $alt | ||||
| rogas $alt | rogas $alt | ||||
| saleta $alt2 | saleta $alt2 | ||||
| sarjeta $alt | sarjeta $alt | ||||
| severa $alt | |||||
| severo $alt | |||||
| seborreia $alt | seborreia $alt | ||||
| seco $alt2 $noun | seco $alt2 $noun | ||||
| selo $alt $verb | selo $alt $verb | ||||
| teta $alt2 | teta $alt2 | ||||
| tiver $alt | tiver $alt | ||||
| tiveres $alt | tiveres $alt | ||||
| tocha $alt | |||||
| toga $alt | toga $alt | ||||
| torres $alt2 | torres $alt2 | ||||
| tortos $alt | tortos $alt |
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _imp) e (rL03_ E | _imp) e (rL03_ E | ||||
| _temp) e (rL04_ E | _temp) e (rL04_ E | ||||
| _esp) e (ssL03_ e | |||||
| _l) e (ssL02_ e | |||||
| _perd) e (L05_ e | |||||
| _rend) e (L06_ e | |||||
| _atend) e (L06_ e | |||||
| _pen) e (trL04_ E | |||||
| //endsort | //endsort | ||||
| _exag) e (L05_ E | _exag) e (L05_ E | ||||
| _m) o (rrL01_ o | _m) o (rrL01_ o | ||||
| p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
| _esn) o (bL04_ O | _esn) o (bL04_ O | ||||
| _esc) o (lhL02_ O | |||||
| _rev) o (lvL02_ O | |||||
| _desenv) o (lvL02_ O | |||||
| _ ent) o (pL02_ O | |||||
| //endsort | //endsort | ||||
| .group ô | .group ô | ||||
| _xi) x (A S | _xi) x (A S | ||||
| ?1 i) x (a_ S | ?1 i) x (a_ S | ||||
| ?1 i) x (as_ S | ?1 i) x (as_ S | ||||
| _trou) x (ér s | |||||
| _pro) x (imi s | |||||
| .group y | .group y |
| _8 'at.@ | _8 'at.@ | ||||
| _9 n'av@j@ | _9 n'av@j@ | ||||
| _1d 'ekki // numbers used in a decimal fraction | |||||
| _2d d'ekki | |||||
| _3d t'unni | |||||
| _0d b'induv@i | |||||
| _1d 'eka,i | |||||
| _2d d'eka,i | |||||
| _3d t'un,i | |||||
| _4d h'at@r@i | |||||
| _5d p'ah@i | |||||
| _6d h'aj@i | |||||
| _7d h'at@i | |||||
| _8d 'at.@i | |||||
| _9d n'av@i | |||||
| _10 d'ah@j@ | _10 d'ah@j@ | ||||
| _11 'ekol,@h@ | _11 'ekol,@h@ | ||||
| _17 d'ah@h,@t@ | _17 d'ah@h,@t@ | ||||
| _18 d'ah@,@t.@ | _18 d'ah@,@t.@ | ||||
| _19 d'ah@n,@v@j@ | _19 d'ah@n,@v@j@ | ||||
| _2X v'isi | |||||
| _20 v'iss@ | _20 v'iss@ | ||||
| _21 v'isiek@ | |||||
| _22 v'isid,ek@ | |||||
| _23 v'isit,un@ | |||||
| _24 v'isih,@t@r@ | |||||
| _25 v'isip,@h@ | |||||
| _26 v'isih,@j@ | |||||
| _27 v'isih,@t@ | |||||
| _28 v'isi,@t.@ | |||||
| _29 v'isin,@v@j@ | |||||
| _30 t'ih@ | _30 t'ih@ | ||||
| _31 t'isek@ | _31 t'isek@ | ||||
| _32 t'isdek@ | _32 t'isdek@ | ||||
| _1C s'ij@j@ | _1C s'ij@j@ | ||||
| _0C s'ij@ | _0C s'ij@ | ||||
| _0M1 d'ah@s | _0M1 d'ah@s | ||||
| _0M1x 'ah@s // exact thousands | _0M1x 'ah@s // exact thousands | ||||
| _0M2 l'akS | _0M2 l'akS | ||||
| _0M2x l'akS@j@ | _0M2x l'akS@j@ | ||||
| _0M3 k'o:t.i | _0M3 k'o:t.i | ||||
| _0M3x k'o:t.ij@ | _0M3x k'o:t.ij@ | ||||
| _0M4 v'il'ij@n //what in sinhala? | |||||
| _0M4 v'il'ij@n | |||||
| _dpt d'aS@m#@ | _dpt d'aS@m#@ | ||||
| // Consonants | // Consonants | ||||
| ක k@ | ක k@ | ||||
| ර r@ | ර r@ | ||||
| ල l@ | ල l@ | ||||
| ව w@ | ව w@ | ||||
| ශ S@ | |||||
| ෂ S@ | |||||
| ශ S'@ | |||||
| ෂ s.@ | |||||
| ස s@ | ස s@ | ||||
| හ h@ | හ h@ | ||||
| ළ l.@ | ළ l.@ | ||||
| ෆ f@ | ෆ f@ | ||||
| // symbols | // symbols | ||||
| _. t'it@ | _. t'it@ | ||||
| _, k'oma:v@ | _, k'oma:v@ |
| // numbers | // numbers | ||||
| _0 n'itS | _0 n'itS | ||||
| _1 'ena | |||||
| _1 'Ena | |||||
| _2 dv#'a | _2 dv#'a | ||||
| _3 tR'i | _3 tR'i | ||||
| _4 St'iRi | _4 St'iRi | ||||
| _0M1 t'isotS | _0M1 t'isotS | ||||
| _1M1 t'isotS | _1M1 t'isotS | ||||
| _1M2 'enmilij'on | |||||
| _1M2 'Enmilij'on | |||||
| _2M2 dv#'amilij'ona | _2M2 dv#'amilij'ona | ||||
| _3M2 tR'ijemilij'oni | _3M2 tR'ijemilij'oni | ||||
| _4M2 St'iRijemilij'oni | _4M2 St'iRijemilij'oni | ||||
| _0M2 milij'onow | _0M2 milij'onow | ||||
| _1M3 'enamilij'aRda | |||||
| _1M3 'Enamilij'aRda | |||||
| _2M3 dv#'emilij'aRdi | _2M3 dv#'emilij'aRdi | ||||
| _3M3 tR'imilij'aRde | _3M3 tR'imilij'aRde | ||||
| _4M3 St'iRimilij'aRde | _4M3 St'iRimilij'aRde | ||||
| _0M3 milij'aRd | _0M3 milij'aRd | ||||
| _1M4 'enbilij'on | |||||
| _1M4 'Enbilij'on | |||||
| _2M4 dv#'abilij'ona | _2M4 dv#'abilij'ona | ||||
| _3M4 tR'ijebilij'oni | _3M4 tR'ijebilij'oni | ||||
| _4M4 St'iRijebilij'oni | _4M4 St'iRijebilij'oni |
| .group e | .group e | ||||
| e e | e e | ||||
| e (_ E // ?? | e (_ E // ?? | ||||
| _) e E | |||||
| .group f | .group f | ||||
| .group i | .group i | ||||
| i i | i i | ||||
| i (A j | i (A j | ||||
| i (r j | |||||
| .group j | .group j | ||||
| .group u | .group u | ||||
| u u | u u | ||||
| u (A w | u (A w | ||||
| u (r u | |||||
| A) u (K w | A) u (K w | ||||
| .L26 சிலிண்டர ஸ்டவ் கனெக் அடுப்ப | .L26 சிலிண்டர ஸ்டவ் கனெக் அடுப்ப | ||||
| // words after சிரத்தை | // words after சிரத்தை | ||||
| .L27 _உண்ட _ஏற்பட _இல்ல யிரு யாக யி | |||||
| .L27 _உண்ட _ஏற்பட _இல்ல யிரு யாக யி யுடன யை | |||||
| // [aU] at start of word | // [aU] at start of word | ||||
| .L28 ஔ ஒள // அவு | .L28 ஔ ஒள // அவு | ||||
| _மலே) ச (ிய s. | _மலே) ச (ிய s. | ||||
| இந்தோனே) ச (ிய s. | இந்தோனே) ச (ிய s. | ||||
| _பக்தி_) சிரத் (தை srVd | _பக்தி_) சிரத் (தை srVd | ||||
| _) சி (ரத்தைL27 s | |||||
| _) சிரத்த (ையுடன srVdd | |||||
| _) சிரத்த (ையை srVdd | |||||
| _) சிரத்த (ைL27 srVdd | |||||
| சி (ரம s | சி (ரம s | ||||
| _) சி (ரார்த்த s | _) சி (ரார்த்த s | ||||
| _) சிரிலங்க (ா srilVNk | _) சிரிலங்க (ா srilVNk | ||||
| _) ப (தில bV | _) ப (தில bV | ||||
| _) பத்த (ிரகாளி bVdd | _) பத்த (ிரகாளி bVdd | ||||
| _) பத்திரப் (_ bVttirVp | _) பத்திரப் (_ bVttirVp | ||||
| _) ப (த்திரப்_பதி bV | |||||
| _) பத்திரப் (_பதி pVttirVp | |||||
| _) ப (த்திரப்பட bV | _) ப (த்திரப்பட bV | ||||
| _) ப (த்திரமா bV | _) ப (த்திரமா bV | ||||
| _) பத்த (ிரி_ bVdd | _) பத்த (ிரி_ bVdd |
| name ir-mbrola-1 | |||||
| language fa | |||||
| gender male | |||||
| phonemes fa | |||||
| mbrola ir1 ir1_phtrans |
| name aragon | |||||
| language an | |||||
| name Farsi | |||||
| language fa | |||||
| name Farsi-Pinglish | |||||
| // Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish | |||||
| language fa-pin | |||||
| dictrules 1 | |||||
| phonemes fa | |||||
| // Long Vowels | |||||
| // "A" | |||||
| 2 A _ 0 ? a: | |||||
| 2 A A 0 ? a: | |||||
| 2 A u 0 ? a: | |||||
| 2 A i 0 ? a: | |||||
| 2 A a 0 ? a: | |||||
| 2 A e 0 ? a: | |||||
| 2 A o 0 ? a: | |||||
| 0 A NULL 0 a: | |||||
| // "u" | |||||
| 2 u _ 0 ? u | |||||
| 2 u u 0 ? u | |||||
| 2 u A 0 ? u | |||||
| 2 u i 0 ? u | |||||
| 2 u a 0 ? u | |||||
| 2 u e 0 ? u | |||||
| 2 u o 0 ? u | |||||
| 0 u NULL 0 u | |||||
| // "i" | |||||
| 2 i _ 0 ? i | |||||
| 2 i i 0 ? i | |||||
| 2 i A 0 ? i | |||||
| 2 i u 0 ? i | |||||
| 2 i a 0 ? i | |||||
| 2 i e 0 ? i | |||||
| 2 i o 0 ? i | |||||
| 0 i NULL 0 i | |||||
| // Short Vowels | |||||
| // "a" | |||||
| 2 a _ 0 ? a | |||||
| 2 a A 0 ? a | |||||
| 2 a u 0 ? a | |||||
| 2 a i 0 ? a | |||||
| 2 a a 0 ? a | |||||
| 2 a e 0 ? a | |||||
| 2 a o 0 ? a | |||||
| 0 a NULL 0 a | |||||
| // "e" | |||||
| 2 e _ 0 ? e | |||||
| 2 e A 0 ? e | |||||
| 2 e u 0 ? e | |||||
| 2 e i 0 ? e | |||||
| 2 e a 0 ? e | |||||
| 2 e e 0 ? e | |||||
| 2 e o 0 ? e | |||||
| 0 e NULL 0 e | |||||
| // "o" | |||||
| 2 o _ 0 ? o | |||||
| 2 o A 0 ? o | |||||
| 2 o u 0 ? o | |||||
| 2 o i 0 ? o | |||||
| 2 o a 0 ? o | |||||
| 2 o e 0 ? o | |||||
| 2 o o 0 ? o | |||||
| 0 o NULL 0 o | |||||
| // Consonants in end of words. | |||||
| 0 _ NULL 0 NULL | |||||
| 2 _ NULL 0 NULL | |||||
| // Consonants | |||||
| 0 dZ NULL 0 j: | |||||
| 0 tS NULL 0 c: | |||||
| 0 R NULL 0 r | |||||
| 1 q 1 0 q | |||||
| 0 Z NULL 0 z: | |||||
| 0 S NULL 0 s: | |||||
| 0 j NULL 0 y | |||||
| // "g" | |||||
| 0 g A 0 g | |||||
| 0 g u 99 g ? | |||||
| 0 g o 0 g | |||||
| 0 g NULL 0 g: | |||||
| // "k" | |||||
| 0 k A 0 k | |||||
| 0 k u 0 k | |||||
| 0 k o 0 k | |||||
| 0 k NULL 0 c | |||||
| // "l" | |||||
| 0 l/ NULL 0 l | |||||
| // Others | |||||
| 0 ; NULL 0 NULL | |||||
| 0 g- NULL 0 NULL | |||||
| 0 @- NULL 0 NULL |
| // based on Spanish | |||||
| phoneme t# | |||||
| vls dnt stop | |||||
| IF NOT prevVowel(isStressed) THEN | |||||
| ChangePhoneme(t) | |||||
| ENDIF | |||||
| endphoneme | |||||
| phoneme E | |||||
| vowel starttype #e endtype #e | |||||
| length 170 | |||||
| FMT(vowel/ee_1) | |||||
| endphoneme | |||||
| phoneme O | |||||
| vowel starttype #o endtype #o | |||||
| length 170 | |||||
| FMT(vowel/oo_4) | |||||
| endphoneme | |||||
| phonemetable ca es | phonemetable ca es | ||||
| include ph_catalan | include ph_catalan | ||||
| phonemetable an es | |||||
| include ph_aragon | |||||
| phonemetable pt base2 | phonemetable pt base2 | ||||
| include ph_pt_brazil | include ph_pt_brazil | ||||
| [Setup] | [Setup] | ||||
| AppName=eSpeak | AppName=eSpeak | ||||
| AppVerName=eSpeak version 1.46.28 | |||||
| AppVerName=eSpeak version 1.46.31 | |||||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | ||||
| WindowVisible=yes | WindowVisible=yes | ||||
| case lang1 of | case lang1 of | ||||
| 'af': value := $436; | 'af': value := $436; | ||||
| 'am': value := $45e; | 'am': value := $45e; | ||||
| 'an': value := $40a; // Aragon, use code for Spanish | |||||
| 'az': value := $42c; | 'az': value := $42c; | ||||
| 'bg': value := $402; | 'bg': value := $402; | ||||
| 'bs': value := $41a; // should be $141a but Jaws crashes on startup | 'bs': value := $41a; // should be $141a but Jaws crashes on startup | ||||
| 'es': value := $40a; | 'es': value := $40a; | ||||
| 'et': value := $425; | 'et': value := $425; | ||||
| 'eu': value := $42d; | 'eu': value := $42d; | ||||
| 'fa': value := $429; | |||||
| 'fi': value := $40b; | 'fi': value := $40b; | ||||
| 'fil': value := $464; | 'fil': value := $464; | ||||
| 'fr': value := $40c; | 'fr': value := $40c; | ||||
| 'ml': value := $44c; | 'ml': value := $44c; | ||||
| 'mn': value := $450; | 'mn': value := $450; | ||||
| 'mt': value := $43a; | 'mt': value := $43a; | ||||
| 'my': value := $455; | |||||
| 'ne': value := $461; | 'ne': value := $461; | ||||
| 'nl': value := $413; | 'nl': value := $413; | ||||
| 'no': value := $414; | 'no': value := $414; |
| int offset; | int offset; | ||||
| int min; | int min; | ||||
| int max; | int max; | ||||
| const char *map; | |||||
| char *p = text; | char *p = text; | ||||
| char *p2 = text; | char *p2 = text; | ||||
| int all_alpha=1; | int all_alpha=1; | ||||
| offset = tr->transpose_min - 1; | offset = tr->transpose_min - 1; | ||||
| min = tr->transpose_min; | min = tr->transpose_min; | ||||
| max = tr->transpose_max; | max = tr->transpose_max; | ||||
| map = tr->transpose_map; | |||||
| pairs_start = max - min + 2; | pairs_start = max - min + 2; | ||||
| do { | do { | ||||
| p += utf8_in(&c,p); | p += utf8_in(&c,p); | ||||
| if((c >= min) && (c <= max)) | |||||
| { | |||||
| *p2++ = c - offset; | |||||
| } | |||||
| else | |||||
| if(c != 0) | if(c != 0) | ||||
| { | { | ||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| if((c >= min) && (c <= max)) | |||||
| { | |||||
| if(map == NULL) | |||||
| { | |||||
| *p2++ = c - offset; | |||||
| } | |||||
| else | |||||
| { | |||||
| // get the code from the transpose map | |||||
| if(map[c - min] > 0) | |||||
| { | |||||
| *p2++ = map[c - min]; | |||||
| } | |||||
| else | |||||
| { | |||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| } | |||||
| } | |||||
| } | |||||
| else | |||||
| { | |||||
| p2 += utf8_out(c,p2); | |||||
| all_alpha=0; | |||||
| } | |||||
| } | } | ||||
| } while (c != 0); | } while (c != 0); | ||||
| *p2 = 0; | *p2 = 0; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.30 15.Jan.13"; | |||||
| const int version_phdata = 0x014624; | |||||
| const char *version_string = "1.46.31 19.Jan.13"; | |||||
| const int version_phdata = 0x014631; | |||||
| int option_device_number = -1; | int option_device_number = -1; | ||||
| FILE *f_logespeak = NULL; | FILE *f_logespeak = NULL; |
| static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words | static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words | ||||
| static const unsigned char default_tunes[6] = {0, 1, 2, 3, 0, 0}; | static const unsigned char default_tunes[6] = {0, 1, 2, 3, 0, 0}; | ||||
| // Translates character codes in the range transpose_min to transpose_max to | |||||
| // a number in the range 1 to 63. 0 indicates there is no translation. | |||||
| // Used up to 57 (max of 63) | |||||
| static const char transpose_map_latin[] = { | |||||
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // 0x60 | |||||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, // 0x70 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x80 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x90 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xa0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xb0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xc0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xd0 | |||||
| 27, 28, 29, 0, 0, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 0, // 0xe0 | |||||
| 0, 0, 0, 39, 0, 0, 40, 0, 41, 0, 42, 0, 43, 0, 0, 0, // 0xf0 | |||||
| 0, 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, 0, 0, 47, 0, 0, // 0x100 | |||||
| 0, 48, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, // 0x110 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x120 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x130 | |||||
| 0, 0, 50, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x140 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, // 0x150 | |||||
| 0, 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x160 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 56, 0, 57, 0, // 0x170 | |||||
| }; | |||||
| tr = (Translator *)Alloc(sizeof(Translator)); | tr = (Translator *)Alloc(sizeof(Translator)); | ||||
| if(tr == NULL) | if(tr == NULL) | ||||
| tr->data_dictrules = NULL; // language_1 translation rules file | tr->data_dictrules = NULL; // language_1 translation rules file | ||||
| tr->data_dictlist = NULL; // language_2 dictionary lookup file | tr->data_dictlist = NULL; // language_2 dictionary lookup file | ||||
| tr->transpose_min = 'a'; | |||||
| tr->transpose_max = 'z'; | |||||
| tr->transpose_min = 0x60; | |||||
| tr->transpose_max = 0x17f; | |||||
| tr->transpose_map = transpose_map_latin; | |||||
| tr->frequent_pairs = NULL; | tr->frequent_pairs = NULL; | ||||
| // only need lower case | // only need lower case | ||||
| tr->charset_a0 = charsets[18]; // KOI8-R | tr->charset_a0 = charsets[18]; // KOI8-R | ||||
| tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x22 | tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x22 | ||||
| tr->transpose_max = 0x451; | tr->transpose_max = 0x451; | ||||
| tr->transpose_map = NULL; | |||||
| tr->frequent_pairs = pairs_ru; | tr->frequent_pairs = pairs_ru; | ||||
| tr->letter_bits_offset = OFFSET_CYRILLIC; | tr->letter_bits_offset = OFFSET_CYRILLIC; | ||||
| break; | break; | ||||
| case L('e','s'): // Spanish | case L('e','s'): // Spanish | ||||
| case L('a','n'): // Aragonese | |||||
| case L('c','a'): // Catalan | case L('c','a'): // Catalan | ||||
| case L_pap: // Papiamento | case L_pap: // Papiamento | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | ||||
| } | } | ||||
| else | else | ||||
| if(name2 == L('a','n')) | |||||
| { | |||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; | |||||
| } | |||||
| else | |||||
| if(name2 == L_pap) | if(name2 == L_pap) | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | ||||
| case L('f','a'): // Farsi | case L('f','a'): // Farsi | ||||
| { | { | ||||
| // Convert characters in the range 0x620 to 0x6cc to the range 1 to 63. | |||||
| // 0 indicates no translation for this character | |||||
| static const char transpose_map_fa[] = { | |||||
| 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // 0x620 | |||||
| 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, // 0x630 | |||||
| 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, // 0x640 | |||||
| 42, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x650 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x660 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, // 0x670 | |||||
| 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x680 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, // 0x690 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 49, // 0x6a0 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x6b0 | |||||
| 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51 }; // 0x6c0 | |||||
| tr->transpose_min = 0x620; | |||||
| tr->transpose_max = 0x6cc; | |||||
| tr->transpose_map = transpose_map_fa; | |||||
| tr->letter_bits_offset = OFFSET_ARABIC; | tr->letter_bits_offset = OFFSET_ARABIC; | ||||
| tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND; | tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| tr->langopts.stress_flags = 0x20; | tr->langopts.stress_flags = 0x20; | ||||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; | tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x76; // [v] don't count this character at start of word | ||||
| tr->letter_bits['r'] |= 0x80; // add 'r' to letter group 7, vowels for Unpronouncable test | |||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; | ||||
| tr->langopts.numbers2 = 0x100; // plural forms of millions etc | tr->langopts.numbers2 = 0x100; // plural forms of millions etc | ||||
| tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator | tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator | ||||
| // SetLetterVowel(tr,'r'); | |||||
| break; | break; | ||||
| case L('s','q'): // Albanian | case L('s','q'): // Albanian |
| int translator_name; | int translator_name; | ||||
| int transpose_max; | int transpose_max; | ||||
| int transpose_min; | int transpose_min; | ||||
| const char *transpose_map; | |||||
| char dictionary_name[40]; | char dictionary_name[40]; | ||||
| char phon_out[400]; | char phon_out[400]; |
| int ix; | int ix; | ||||
| int j; | int j; | ||||
| espeak_VOICE *v; | espeak_VOICE *v; | ||||
| static espeak_VOICE *voices[N_VOICES_LIST]; | |||||
| static espeak_VOICE **voices = NULL; | |||||
| char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
| // free previous voice list data | // free previous voice list data | ||||
| GetVoices(path_voices); | GetVoices(path_voices); | ||||
| voices_list[n_voices_list] = NULL; // voices list terminator | voices_list[n_voices_list] = NULL; // voices list terminator | ||||
| voices = (espeak_VOICE **)realloc(voices, sizeof(espeak_VOICE *)*(n_voices_list+1)); | |||||
| // sort the voices list | // sort the voices list | ||||
| qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), | qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), |