Browse Source

Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
	phsource/compile_report
	phsource/vnasal/a#_n2
	phsource/vnasal/o_n4
master
Reece H. Dunn 12 years ago
parent
commit
790c151a4d

+ 46
- 36
dictsource/an_list View File

_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

+ 9
- 5
dictsource/bg_list View File



// 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@

+ 1
- 1
dictsource/en_rules View File

_) 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

+ 1
- 6
dictsource/hi_list View File

ॐ #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

+ 1
- 1
dictsource/kn_list View File

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:

+ 1
- 1
dictsource/ml_list View File

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:

+ 3
- 1
dictsource/pt_list View File

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

+ 17
- 8
dictsource/pt_rules View File

_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

+ 1
- 1
dictsource/ta_list View File

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:

+ 10
- 0
dictsource/ta_rules View File

_ப) சக் 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

+ 1
- 1
dictsource/te_list View File

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:

+ 4
- 4
dictsource/vi_rules View File

//================================ //================================
// 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

BIN
phsource/klatt/nr View File


BIN
phsource/vnasal/&_n View File


BIN
phsource/vnasal/&u_n View File


BIN
phsource/vnasal/V_n View File


BIN
phsource/vnasal/W_n View File


BIN
phsource/vnasal/a#_n View File


BIN
phsource/vnasal/a#u_n View File


BIN
phsource/vnasal/aa_n View File


BIN
phsource/vnasal/aa_n2 View File


BIN
phsource/vnasal/aa_n3 View File


BIN
phsource/vnasal/aa_n4 View File


BIN
phsource/vnasal/e#_n View File


BIN
phsource/vnasal/e_n View File


BIN
phsource/vnasal/ee_n View File


BIN
phsource/vnasal/ee_n2 View File


BIN
phsource/vnasal/ee_u_n View File


BIN
phsource/vnasal/i_n View File


BIN
phsource/vnasal/i_n2 View File


BIN
phsource/vnasal/ii_n View File


BIN
phsource/vnasal/o_n View File


BIN
phsource/vnasal/o_n2 View File


BIN
phsource/vnasal/o_n3 View File


BIN
phsource/vnasal/oi_n View File


BIN
phsource/vnasal/oo_n View File


BIN
phsource/vnasal/oo_n2 View File


BIN
phsource/vnasal/oo_n3 View File


BIN
phsource/vnasal/u_n View File


BIN
phsource/vnasal/vowelchart.png View File


+ 23
- 5
src/compiledata.cpp View File

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)
{ {

+ 2
- 2
src/menus.cpp View File

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"));

+ 1
- 1
src/synthdata.cpp View File

#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;

+ 1
- 1
src/synthesize.cpp View File

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);

+ 7
- 3
src/tr_languages.cpp View File

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;



+ 5
- 2
src/translate.cpp View File

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)))
{ {

Loading…
Cancel
Save