| _0M4 bil^'ons | _0M4 bil^'ons | ||||
| _1M4 un||bil^'on | _1M4 un||bil^'on | ||||
| _0and i | |||||
| _0and %i | |||||
| _dpt kon | _dpt kon | ||||
| // ordinal numbers | // ordinal numbers | ||||
| _#º 'eno | |||||
| _#ª 'ena | |||||
| _#º o | |||||
| _#ª a | |||||
| //_ord eno | //_ord eno | ||||
| _1o un | |||||
| 1o prim'Er | |||||
| _2o dos | |||||
| 2o seQ'und | |||||
| _3o tres | |||||
| 3o tErT'Er | |||||
| _4o kwatr | |||||
| _5o Tink | |||||
| _6o seIs | |||||
| _7o sEt | |||||
| _8o gwit | |||||
| _9o n'U | |||||
| _10o DET | |||||
| _11o onT | |||||
| _12o DoT | |||||
| _13o tReT | |||||
| _14o katorT | |||||
| _15o kinT | |||||
| _16o sET | |||||
| _1ox prim'Er | |||||
| _2ox seQ'und | |||||
| _3ox tErT'Er | |||||
| _1o un'en | |||||
| _2o dos'en | |||||
| _3o tres'en | |||||
| _4o kwatr'en | |||||
| _5o Tink'en | |||||
| _6o seIs'en | |||||
| _7o sEt'en | |||||
| _8o gwit'en | |||||
| _9o nU'en | |||||
| _11o onT'en | |||||
| _12o DoT'en | |||||
| _13o tReT'en | |||||
| _14o katorT'en | |||||
| _15o kinT'en | |||||
| _16o sET'en | |||||
| _10o DET'en | |||||
| _20o Bint'en | |||||
| _30o trent'en | |||||
| _40o kwarant'en | |||||
| _50o Tinkwant'en | |||||
| _60o siSant'en | |||||
| _70o sEtant'en | |||||
| _80o gwitant'en | |||||
| _90o noBant'en | |||||
| _1Xo DeTi | _1Xo DeTi | ||||
| _20o Bint | |||||
| _2Xo Binti | _2Xo Binti | ||||
| _30o trent | |||||
| _3Xo trentaI | _3Xo trentaI | ||||
| _40o kwarant | |||||
| _4Xo kwarantaI | _4Xo kwarantaI | ||||
| _50o Tinkwant | |||||
| _5Xo TinkwantaI | _5Xo TinkwantaI | ||||
| _60o siSant | |||||
| _6Xo siSantaI | _6Xo siSantaI | ||||
| _70o sEtant | |||||
| _7Xo sEtantaI | _7Xo sEtantaI | ||||
| _80o gwitant | |||||
| _8Xo gwitantaI | _8Xo gwitantaI | ||||
| _90o noBant | |||||
| _9Xo noBantaI | _9Xo noBantaI | ||||
| _0Co TEnt | |||||
| _1Co TEnt | |||||
| _0M1o mil | |||||
| _1M1 mil | |||||
| _0M2o mil^on | |||||
| _1M2o mil^on | |||||
| _1Co TEnt'en | |||||
| _2Co dosTEnt'en | |||||
| _3Co tresTEnt'en | |||||
| _4Co kw,atroTEnt'en | |||||
| _5Co T,inkoTEnt'en | |||||
| _6Co seIsTEnt'en | |||||
| _7Co sjEtTEnt'en | |||||
| _8Co gw,eItoTEnt'en | |||||
| _9Co nweUTEnt'en | |||||
| _0M1o mil'en | |||||
| _1M1 mil'en | |||||
| _0M2o mil^on'en | |||||
| _1M2o mil^on'en | |||||
| // unstressed words | // unstressed words |
| // words of one letter | // words of one letter | ||||
| в $combine | в $combine | ||||
| а $u $combine | |||||
| а $u $combine | |||||
| е $u | е $u | ||||
| й i $u | |||||
| й i $u | |||||
| и $u $pause | и $u $pause | ||||
| у $u $combine | |||||
| с $combine | |||||
| г god'ina $hasdot | |||||
| у $u $combine | |||||
| с $combine | |||||
| г god'ina $hasdot | |||||
| (а в) %av | |||||
| (а с) %as | |||||
| // letter names | // letter names | ||||
| б b@ | б b@ |
| _) zs (Y z | _) zs (Y z | ||||
| _) z (wY z | _) z (wY z | ||||
| n) z (_ ts | |||||
| n) z (_N ts | |||||
| @) zales (_ z'A:l@s | @) zales (_ z'A:l@s | ||||
| zei zaI | zei zaI | ||||
| zes (_ zI2z | zes (_ zI2z |
| ॐ #X1o~m | ॐ #X1o~m | ||||
| _?? Vks.@r | _?? Vks.@r | ||||
| _a ej | |||||
| _b bi: | |||||
| _c si: | |||||
| _d di: | |||||
| _e i: | |||||
| _f Ef | |||||
| // Punctuation | // Punctuation | ||||
| । dVn.d.V | । dVn.d.V |
| q kju: | q kju: | ||||
| r a:r | r a:r | ||||
| s Es | s Es | ||||
| t thi: | |||||
| t t#i: | |||||
| u ju: | u ju: | ||||
| v vi: | v vi: | ||||
| w dabalju: | w dabalju: |
| q kju: | q kju: | ||||
| r a:R | r a:R | ||||
| s Es | s Es | ||||
| t ti: | |||||
| t t#i: | |||||
| u ju: | u ju: | ||||
| v vi: | v vi: | ||||
| w dVbVlju: | w dVbVlju: |
| concerto $alt2 $noun | concerto $alt2 $noun | ||||
| concordo $alt | concordo $alt | ||||
| conforto $alt $verb | conforto $alt $verb | ||||
| congelo $alt | |||||
| consolo $alt2 $noun | consolo $alt2 $noun | ||||
| controle $alt2 $noun | controle $alt2 $noun | ||||
| controlo $alt2 $noun | controlo $alt2 $noun | ||||
| hoje $alt2 | hoje $alt2 | ||||
| horrores $alt2 | horrores $alt2 | ||||
| ideia $alt | ideia $alt | ||||
| insonoro $alt | |||||
| interesse $alt2 $noun | interesse $alt2 $noun | ||||
| jogo $alt2 $noun | jogo $alt2 $noun | ||||
| joguete $alt2 | joguete $alt2 | ||||
| sexteto $alt2 | sexteto $alt2 | ||||
| ?1 senhora $alt2 | ?1 senhora $alt2 | ||||
| senhores $alt2 | senhores $alt2 | ||||
| singelo $alt | |||||
| sinopse $alt | sinopse $alt | ||||
| soco $alt2 | soco $alt2 | ||||
| soco $alt $verb | soco $alt $verb | ||||
| tumores $alt2 | tumores $alt2 | ||||
| valeta $alt2 | valeta $alt2 | ||||
| vanessa $alt2 | vanessa $alt2 | ||||
| velo $alt | |||||
| velozes $alt | velozes $alt | ||||
| verme $alt | verme $alt | ||||
| violeta $alt2 | violeta $alt2 |
| _perd) e (L05_ e | _perd) e (L05_ e | ||||
| _quis) e (L05_ E | _quis) e (L05_ E | ||||
| _soub) e (L05_ E | _soub) e (L05_ E | ||||
| proteg) e (L05_ e // des- | |||||
| diss) e (L06_ E / contra- | |||||
| diss) e (L06_ E // contra- | |||||
| tend) e (L06_ e // a- con- en- es- | tend) e (L06_ e // a- con- en- es- | ||||
| vend) e (L06_ e // re- | |||||
| _mord) e (L06_ e | _mord) e (L06_ e | ||||
| _rend) e (L06_ e | _rend) e (L06_ e | ||||
| _vend) e (L06_ e | |||||
| prend) e (L06_ e // a- rea- des- desa- | prend) e (L06_ e // a- rea- des- desa- | ||||
| _arrepend) e (L06_ e | _arrepend) e (L06_ e | ||||
| _defend) e (L06_ e | _defend) e (L06_ e | ||||
| preend) e (L06_ e // com- a- re- sur- | preend) e (L06_ e // com- a- re- sur- | ||||
| respond) e (L06_ e // cor- | respond) e (L06_ e // cor- | ||||
| bat) e (L07_ e // re- com- | bat) e (L07_ e // re- com- | ||||
| ceb) e (L07_ e / re- per- con- | |||||
| ceb) e (L07_ e // re- per- con- | |||||
| ced) e (L07_ e // pro- con- su- | ced) e (L07_ e // pro- con- su- | ||||
| met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | ||||
| mov) e (L07_ e // re- co- | mov) e (L07_ e // re- co- | ||||
| tend) e (L07_ e // en- con- a- es- | tend) e (L07_ e // en- con- a- es- | ||||
| torc) e (L07_ e // con- | torc) e (L07_ e // con- | ||||
| venc) e (L07_ e // con- | venc) e (L07_ e // con- | ||||
| vend) e (L07_ e // re- | |||||
| vert) e (L07_ e // in- re- con- | vert) e (L07_ e // in- re- con- | ||||
| volv) e (L07_ e // de- en- re- | volv) e (L07_ e // de- en- re- | ||||
| _eleg) e (L07_ e | _eleg) e (L07_ e | ||||
| parec) e (L07_ e // a- rea- com- desa- | parec) e (L07_ e // a- rea- com- desa- | ||||
| prend) e (L07_ e // a- rea- des- | prend) e (L07_ e // a- rea- des- | ||||
| screv) e (L07_ e // e- in- ree- pre- de- | screv) e (L07_ e // e- in- ree- pre- de- | ||||
| _abastec) e (L07_ e | |||||
| _aborrec) e (L07_ e | _aborrec) e (L07_ e | ||||
| _absolv) e (L07_ e | _absolv) e (L07_ e | ||||
| _adoec) e (L07_ e | _adoec) e (L07_ e | ||||
| _rejuvenec) e (L07_ e | _rejuvenec) e (L07_ e | ||||
| _resolv) e (L07_ e | _resolv) e (L07_ e | ||||
| _suspend) e (L07_ e | _suspend) e (L07_ e | ||||
| abastec) e (L07_ e // re- | |||||
| conhec) e (L07_ e // & re- des- | conhec) e (L07_ e // & re- des- | ||||
| estabelec) e (L07_ e // re- | estabelec) e (L07_ e // re- | ||||
| favorec) e (L07_ e // des- | favorec) e (L07_ e // des- | ||||
| _sev) e (rL03_ E | _sev) e (rL03_ E | ||||
| _reit) e (rL03_ E | _reit) e (rL03_ E | ||||
| _sinc) e (rL03_ E | _sinc) e (rL03_ E | ||||
| g) e (rL04_ E // su- refri- | |||||
| _g) e (rL04_ E | |||||
| qu) e (rL04_ E // re- | qu) e (rL04_ E // re- | ||||
| _op) e (rL04_ E | _op) e (rL04_ E | ||||
| gen) e (rL04_ E // de- re- | |||||
| _alt) e (rL04_ E | _alt) e (rL04_ E | ||||
| _sug) e (rL04_ E | |||||
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _tol) e (rL04_ E | _tol) e (rL04_ E | ||||
| _ven) e (rL04_ E | _ven) e (rL04_ E | ||||
| _coop) e (rL04_ E | _coop) e (rL04_ E | ||||
| _temp) e (rL04_ E | _temp) e (rL04_ E | ||||
| _recup) e (rL04_ E | _recup) e (rL04_ E | ||||
| _refrig) e (rL04_ E | |||||
| _v) e (rbL03_ E | _v) e (rbL03_ E | ||||
| _p) e (rdL02_ E | _p) e (rdL02_ E | ||||
| _l) e (rdL03_ E | _l) e (rdL03_ E | ||||
| scr) e (vL03_ e // e- in- pre- ree- de- | scr) e (vL03_ e // e- in- pre- ree- de- | ||||
| _atr) e (vL03_ e | _atr) e (vL03_ e | ||||
| _r) e (zL04_ E | _r) e (zL04_ E | ||||
| pr) e (zL04_ E / des- menos- | |||||
| _pr) e (zL04_ E | |||||
| _despr) e (zL04_ E | |||||
| _embel) e (zL04_ E | _embel) e (zL04_ E | ||||
| _menospr) e (zL04_ E | |||||
| _emagr) e (çL03 | _emagr) e (çL03 | ||||
| pr) e (çL03_ e // a- | pr) e (çL03_ e // a- | ||||
| aqu) e (çL03_ e / re- | |||||
| aqu) e (çL03_ e // re- | |||||
| mer) e (çL03_ e // des- | mer) e (çL03_ e // des- | ||||
| pad) e (çL03_ e // com- | pad) e (çL03_ e // com- | ||||
| par) e (çL03_ e // a- re- com- rea- desa- | par) e (çL03_ e // a- re- com- rea- desa- | ||||
| _ens) o (pL04_ O | _ens) o (pL04_ O | ||||
| _s) o (prL04_ O | _s) o (prL04_ O | ||||
| _) o (ptL04_ O | _) o (ptL04_ O | ||||
| _inod) o (rL03_ O | |||||
| _inson) o (rL03_ O | |||||
| _comem) o (rL04 O | |||||
| _remem) o (rL04_ O | |||||
| _enf) o (rquL02_ O | _enf) o (rquL02_ O | ||||
| c) o (rrL01_ o // escorra, incorra, corra, recorra | c) o (rrL01_ o // escorra, incorra, corra, recorra | ||||
| _m) o (rrL01_ o | _m) o (rrL01_ o |
| q kju: | q kju: | ||||
| r a:R | r a:R | ||||
| s Es | s Es | ||||
| t thi: | |||||
| t t#i: | |||||
| u ju: | u ju: | ||||
| v vi: | v vi: | ||||
| w dVbVlju: | w dVbVlju: |
| _ப) சக் tSVk | _ப) சக் tSVk | ||||
| _) ச (க்கரவர்த்தி tSV | _) ச (க்கரவர்த்தி tSV | ||||
| _) ச (க்கிலி tSV | _) ச (க்கிலி tSV | ||||
| _) சக் (ரவர்த்தி tSVk | |||||
| _க) ச (க்ஸ்தான zV | _க) ச (க்ஸ்தான zV | ||||
| சங்க (ர s.VNkV | சங்க (ர s.VNkV | ||||
| _) ச (ட்டL08ஸ்கர tSV | _) ச (ட்டL08ஸ்கர tSV | ||||
| _வரதா) ச (ாரி tS | _வரதா) ச (ாரி tS | ||||
| _வேதா) ச (ாரி tS | _வேதா) ச (ாரி tS | ||||
| _கிருஷ்ணமா) ச (ாரி tS | _கிருஷ்ணமா) ச (ாரி tS | ||||
| _கோபால) ச (ாரி tS | |||||
| _சங்கரா) ச (ாரி tS | _சங்கரா) ச (ாரி tS | ||||
| _தேசிகா) ச (ாரி tS | _தேசிகா) ச (ாரி tS | ||||
| _பட்டா) ச (ாரி tS | _பட்டா) ச (ாரி tS | ||||
| _மத்வா) ச (ாரி tS | _மத்வா) ச (ாரி tS | ||||
| அனந்தா) ச (ாரி tS | அனந்தா) ச (ாரி tS | ||||
| அன்னமா) ச (ாரி tS | அன்னமா) ச (ாரி tS | ||||
| ராஜகோபால) ச (ாரி tS | |||||
| ராமானுஜா) ச (ாரி tS | ராமானுஜா) ச (ாரி tS | ||||
| ஆ) ச (ாரிய_ tS | ஆ) ச (ாரிய_ tS | ||||
| ஆ) ச (ாரியார tS | ஆ) ச (ாரியார tS | ||||
| _) ப (ாகீரதி b | _) ப (ாகீரதி b | ||||
| _) ப (ாக்கிக் b | _) ப (ாக்கிக் b | ||||
| _) ப (ாக்கிய b | _) ப (ாக்கிய b | ||||
| _) ப (ாக்டரி_ f | |||||
| _) ப (ாக்டரியா b | |||||
| _) ப (ாக்டரியி f | |||||
| _) ப (ாக்டரியை f | |||||
| _) பாக்ட (ீரியா ba:kt. | _) பாக்ட (ீரியா ba:kt. | ||||
| _) பாக்த (ாத ba:gd | _) பாக்த (ாத ba:gd | ||||
| _) ப (ாக்ய b | _) ப (ாக்ய b | ||||
| _) பி (ராதித் p | _) பி (ராதித் p | ||||
| _) பி (ராத்தல b | _) பி (ராத்தல b | ||||
| _) பி (ராந்தி_ b | _) பி (ராந்தி_ b | ||||
| _) பி (ராந்திய_ p | |||||
| _) பி (ராந்தியங் p | _) பி (ராந்தியங் p | ||||
| _) பி (ராந்தியத் p | _) பி (ராந்தியத் p | ||||
| _) பி (ராந்தியம்_ p | _) பி (ராந்தியம்_ p | ||||
| _) பி (ரித்தானி b | _) பி (ரித்தானி b | ||||
| _) பிரின்சிப (ால prinsip | _) பிரின்சிப (ால prinsip | ||||
| _) பி (ரிமிய p | _) பி (ரிமிய p | ||||
| _) பி (ரியங்கள p | |||||
| _) பிரியங்க (ா prijVNk | _) பிரியங்க (ா prijVNk | ||||
| _) பி (ரியதர p | _) பி (ரியதர p | ||||
| _) பி (ரியத்த p | |||||
| _) பி (ரியன p | _) பி (ரியன p | ||||
| _) பி (ரியப்பட p | _) பி (ரியப்பட p | ||||
| _) பி (ரியம p | _) பி (ரியம p |
| q kju: | q kju: | ||||
| r a:r | r a:r | ||||
| s Es | s Es | ||||
| t thi: | |||||
| t t#i: | |||||
| u ju: | u ju: | ||||
| v vi: | v vi: | ||||
| w dVbVlju: | w dVbVlju: |
| //================================ | //================================ | ||||
| // Consonants | // Consonants | ||||
| //================================ | //================================ | ||||
| .L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve | |||||
| .L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge | |||||
| .L02 n | .L02 n | ||||
| .group i | .group i | ||||
| i i | i i | ||||
| i (A j | |||||
| //i (A j | |||||
| ia i@ | ia i@ | ||||
| ià i@2 | ià i@2 | ||||
| iá i@3 | iá i@3 | ||||
| .group y | .group y | ||||
| y i | y i | ||||
| y (A j | |||||
| // y (A j | |||||
| ya i@ | ya i@ | ||||
| yà i@2 | yà i@2 | ||||
| yá i@3 | yá i@3 | ||||
| yệ i@6 | yệ i@6 | ||||
| // yêu i@U | // yêu i@U | ||||
| y (L01 _^_EN | |||||
| .group ỳ | .group ỳ | ||||
| ỳ i2 | ỳ i2 |
| REF_HASH_TAB **list; | REF_HASH_TAB **list; | ||||
| const char *data_path; | const char *data_path; | ||||
| int prev_table; | int prev_table; | ||||
| int procedure_num; | |||||
| int prev_mnemonic; | int prev_mnemonic; | ||||
| if(f_report == NULL) | if(f_report == NULL) | ||||
| j++; | j++; | ||||
| } | } | ||||
| fprintf(f_report," [%s] %s",WordToString(prev_mnemonic = list[ix]->ph_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||||
| prev_mnemonic = list[ix]->ph_mnemonic; | |||||
| if((prev_mnemonic >> 24) == 'P') | |||||
| { | |||||
| // a procedure, not a phoneme | |||||
| procedure_num = atoi(WordToString(prev_mnemonic)); | |||||
| fprintf(f_report," %s %s", phoneme_tab_list2[prev_table = list[ix]->ph_table].name, proc_names[procedure_num]); | |||||
| } | |||||
| else | |||||
| { | |||||
| fprintf(f_report," [%s] %s",WordToString(prev_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||||
| } | |||||
| fputc('\n',f_report); | fputc('\n',f_report); | ||||
| } | } | ||||
| } | } | ||||
| sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | ||||
| if(system(command) < 0) | |||||
| if(system(command) != 0) | |||||
| { | { | ||||
| failed = 1; | failed = 1; | ||||
| } | } | ||||
| } | } | ||||
| strcpy(proc_names[n_procs], item_string); | strcpy(proc_names[n_procs], item_string); | ||||
| phoneme_out = &phoneme_out2; | phoneme_out = &phoneme_out2; | ||||
| sprintf(number_buf,"%.3dP", n_procs); | |||||
| phoneme_out->mnemonic = StringToWord(number_buf); | |||||
| } | } | ||||
| phoneme_out->code = phcode; | phoneme_out->code = phcode; | ||||
| make_envs(); | make_envs(); | ||||
| #endif | #endif | ||||
| wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal)); | |||||
| n_envelopes = 0; | n_envelopes = 0; | ||||
| error_count = 0; | error_count = 0; | ||||
| resample_count = 0; | resample_count = 0; | ||||
| memset(markers_used,0,sizeof(markers_used)); | |||||
| memset(markers_used,0,sizeof(markers_used)); | |||||
| f_errors = stderr; | f_errors = stderr; | ||||
| if(error_count > 0) | if(error_count > 0) | ||||
| { | { | ||||
| report += _T(" See file: 'phsource/error_log'."); | |||||
| report += _T(" See file: '")+wxString(path_source,wxConvLocal)+_T("phsource/error_log'."); | |||||
| wxLogError(report); | wxLogError(report); | ||||
| } | } | ||||
| wxLogStatus(report + report_dict); | wxLogStatus(report + report_dict); | ||||
| void CompileSampleRate() | void CompileSampleRate() | ||||
| { | { | ||||
| long value; | long value; | ||||
| value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs sox)"), 22050, 5000, 48000); | |||||
| #ifndef PLATFORM_POSIX | |||||
| wxLogError(_T("Change Sample Rate needs the 'sox' program. It probably doesn't work on Windows")); | |||||
| #endif | |||||
| value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs 'sox' program)"), 22050, 5000, 48000); | |||||
| if(value > 1000) | if(value > 1000) | ||||
| { | { |
| data_menu = new wxMenu; | data_menu = new wxMenu; | ||||
| data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | ||||
| data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | ||||
| data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||||
| data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||||
| data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data 22050Hz")); | |||||
| data_menu->Append(MENU_COMPILE_PH2, _("Compile at sample &rate")); | |||||
| data_menu->AppendSeparator(); | data_menu->AppendSeparator(); | ||||
| data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | ||||
| data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); | data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.51 15.Mar.13"; | |||||
| const char *version_string = "1.46.53 16.Mar.13"; | |||||
| const int version_phdata = 0x014640; | const int version_phdata = 0x014640; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| int ix; | int ix; | ||||
| static char buf[5]; | static char buf[5]; | ||||
| for(ix=0; ix<3; ix++) | |||||
| for(ix=0; ix<4; ix++) | |||||
| buf[ix] = word >> (ix*8); | buf[ix] = word >> (ix*8); | ||||
| buf[4] = 0; | buf[4] = 0; | ||||
| return(buf); | return(buf); |
| static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | ||||
| static const short stress_lengths_ta2[8] = {230, 230, 240, 240, 0, 0, 260, 260}; | |||||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | ||||
| // convert name string into a word of up to 4 characters, for the switch() | // convert name string into a word of up to 4 characters, for the switch() | ||||
| if(name2 == L('a','n')) | if(name2 == L('a','n')) | ||||
| { | { | ||||
| tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | ||||
| tr->langopts.numbers2 = 0; | |||||
| } | } | ||||
| else | else | ||||
| if(name2 == L_pap) | if(name2 == L_pap) | ||||
| case L('m','r'): // Marathi | case L('m','r'): // Marathi | ||||
| case L('t','e'): // Telugu | case L('t','e'): // Telugu | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | |||||
| SetupTranslator(tr,stress_lengths_ta2, stress_amps_ta); | |||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| if(name2 == L('t','a')) | if(name2 == L('t','a')) | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_ta, NULL); | |||||
| tr->letter_bits_offset = OFFSET_TAMIL; | tr->letter_bits_offset = OFFSET_TAMIL; | ||||
| tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | ||||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
| } | } | ||||
| else | |||||
| if(name2 == L('m','r')) | if(name2 == L('m','r')) | ||||
| { | { | ||||
| tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
| tr->letter_bits_offset = OFFSET_TELUGU; | tr->letter_bits_offset = OFFSET_TELUGU; | ||||
| tr->langopts.numbers = 0x1; | tr->langopts.numbers = 0x1; | ||||
| } | } | ||||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
| SetIndicLetters(tr); // call this after setting OFFSET_ | SetIndicLetters(tr); // call this after setting OFFSET_ | ||||
| SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
| SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
| } | } | ||||
| break; | break; | ||||
| char prefix_chars[0x3f + 2]; | char prefix_chars[0x3f + 2]; | ||||
| int found=0; | int found=0; | ||||
| int end_flags; | int end_flags; | ||||
| char c_temp; // save a character byte while we temporarily replace it with space | |||||
| int c_temp; // save a character byte while we temporarily replace it with space | |||||
| int first_char; | int first_char; | ||||
| int last_char = 0; | int last_char = 0; | ||||
| int add_plural_suffix = 0; | int add_plural_suffix = 0; | ||||
| if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | ||||
| { | { | ||||
| // retranslating a 1-character word using a different language, say its name | // retranslating a 1-character word using a different language, say its name | ||||
| spell_word = 1; | |||||
| utf8_in(&c_temp, wordx+1); // the next character | |||||
| if(!IsAlpha(c_temp) || (AlphabetFromChar(last_char) != AlphabetFromChar(c_temp))) | |||||
| spell_word = 1; | |||||
| } | } | ||||
| if(option_sayas == SAYAS_KEY) | if(option_sayas == SAYAS_KEY) | ||||
| if(ok) | if(ok) | ||||
| { | { | ||||
| *p2 = '-'; // replace next space by hyphen | *p2 = '-'; // replace next space by hyphen | ||||
| wtab[0].flags &= ~FLAG_ALL_UPPER; // prevent it being considered an abbreviation | |||||
| flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | ||||
| if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | ||||
| { | { |