diff --git a/dictsource/pt_list b/dictsource/pt_list index 3650ea21..a625c789 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -734,6 +734,7 @@ comodo $alt2 concerto $alt2 $noun concordo $alt conforto $alt $verb +congelo $alt consolo $alt2 $noun controle $alt2 $noun controlo $alt2 $noun @@ -861,7 +862,6 @@ hemorroida $alt hoje $alt2 horrores $alt2 ideia $alt -insonoro $alt interesse $alt2 $noun jogo $alt2 $noun joguete $alt2 @@ -993,6 +993,7 @@ selvagem seUv'aZeIN sexteto $alt2 ?1 senhora $alt2 senhores $alt2 +singelo $alt sinopse $alt soco $alt2 soco $alt $verb @@ -1030,6 +1031,7 @@ trombeta $alt2 tumores $alt2 valeta $alt2 vanessa $alt2 +velo $alt velozes $alt verme $alt violeta $alt2 diff --git a/dictsource/pt_rules b/dictsource/pt_rules index d109740c..58442a4c 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -359,7 +359,7 @@ _perd) e (L05_ e _quis) e (L05_ E _soub) e (L05_ E - diss) e (L06_ E / contra- + diss) e (L06_ E // contra- tend) e (L06_ e // a- con- en- es- vend) e (L06_ e // re- _mord) e (L06_ e @@ -433,7 +433,7 @@ _perec) e (L07_ e _rejuvenec) e (L07_ e _resolv) e (L07_ e _suspend) e (L07_ e -abastec) e (L07_ e / re- +abastec) e (L07_ e // re- conhec) e (L07_ e // & re- des- estabelec) e (L07_ e // re- favorec) e (L07_ e // des- @@ -461,6 +461,7 @@ respond) e (L07_ e // cor- _g) e (rL04_ E qu) e (rL04_ E // re- _op) e (rL04_ E + gen) e (rL04_ E // de- re- _alt) e (rL04_ E _sug) e (rL04_ E _sup) e (rL04_ E @@ -863,6 +864,10 @@ _desabr) o (chL04_ O _ens) o (pL04_ O _s) o (prL04_ O _) o (ptL04_ O + _inod) o (rL03_ O +_inson) o (rL03_ O +_comem) o (rL04 O +_remem) o (rL04_ O _enf) o (rquL02_ O c) o (rrL01_ o // escorra, incorra, corra, recorra _m) o (rrL01_ o diff --git a/src/compiledata.cpp b/src/compiledata.cpp index 253eae0f..eada5710 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -1867,7 +1867,7 @@ static int LoadWavefile(FILE *f, const char *fname) } 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; } @@ -3511,10 +3511,11 @@ static void CompilePhonemeData2(const char *source) make_envs(); #endif + wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal)); n_envelopes = 0; error_count = 0; resample_count = 0; -memset(markers_used,0,sizeof(markers_used)); + memset(markers_used,0,sizeof(markers_used)); f_errors = stderr; @@ -3679,7 +3680,7 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references 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); } wxLogStatus(report + report_dict); @@ -4149,7 +4150,11 @@ void CompilePhonemeData() void CompileSampleRate() { 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) { diff --git a/src/menus.cpp b/src/menus.cpp index 52ac13ab..8f69539f 100644 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -91,8 +91,8 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) data_menu = new wxMenu; data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); 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->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); diff --git a/src/synthdata.cpp b/src/synthdata.cpp index c14247c7..1b843f84 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.52 16.Mar.13"; +const char *version_string = "1.46.53 16.Mar.13"; const int version_phdata = 0x014640; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index e40726f2..07c86abe 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -455,6 +455,7 @@ Translator *SelectTranslator(const char *name) 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_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 }; // convert name string into a word of up to 4 characters, for the switch() @@ -1424,7 +1425,7 @@ SetLengthMods(tr,3); // all equal case L('m','r'): // Marathi 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.stress_rule = STRESSPOSN_1L; @@ -1434,9 +1435,12 @@ SetLengthMods(tr,3); // all equal if(name2 == L('t','a')) { + SetupTranslator(tr,stress_lengths_ta, NULL); tr->letter_bits_offset = OFFSET_TAMIL; 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')) { tr->letter_bits_offset = OFFSET_DEVANAGARI; @@ -1459,9 +1463,8 @@ SetLengthMods(tr,3); // all equal tr->letter_bits_offset = OFFSET_TELUGU; tr->langopts.numbers = 0x1; } - tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words 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; diff --git a/src/translate.cpp b/src/translate.cpp index ec194b24..3773a0a5 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -842,7 +842,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt char prefix_chars[0x3f + 2]; int found=0; 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 last_char = 0; int add_plural_suffix = 0; @@ -912,7 +912,9 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) { // 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)