Fixed problem with languages: ru, el, zhy, not speaking English words. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@163 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -703,6 +703,8 @@ int Translator::IsLetterGroup(char *word, int group, int pre) | |||
| int Translator::IsLetter(int letter, int group) | |||
| {//============================================ | |||
| int letter2; | |||
| if(letter_groups[group] != NULL) | |||
| { | |||
| if(wcschr(letter_groups[group],letter)) | |||
| @@ -713,10 +715,12 @@ int Translator::IsLetter(int letter, int group) | |||
| if(group > 7) | |||
| return(0); | |||
| if(letter_bits_offset > 0) | |||
| { | |||
| letter -= letter_bits_offset; | |||
| if(((letter2 = (letter - letter_bits_offset)) > 0) && (letter2 < 0x80)) | |||
| letter = letter2; | |||
| else | |||
| return(0); | |||
| } | |||
| else | |||
| { | |||
| @@ -562,7 +562,11 @@ void Translator::LookupLetter(unsigned int letter, int next_byte, char *ph_buf1) | |||
| ph_buf1[0] = 0; | |||
| return; | |||
| } | |||
| if(ph_buf3[0] == phonSWITCH) | |||
| { | |||
| strcpy(ph_buf1,ph_buf3); | |||
| return; | |||
| } | |||
| // at a stress marker at the start of the letter name, unless one is already marked | |||
| ph_stress[0] = phonSTRESS_P; | |||
| ph_stress[1] = 0; | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.34 07.Mar.08"; | |||
| const char *version_string = "1.35 07.Mar.08"; | |||
| const int version_phdata = 0x013400; | |||
| int option_device_number = -1; | |||
| @@ -787,7 +787,7 @@ if((wmark > 0) && (wmark < 8)) | |||
| { | |||
| // change to another language in order to translate this word | |||
| strcpy(word_phonemes,phonemes); | |||
| return(FLAG_SPELLWORD); | |||
| return(0); | |||
| } | |||
| p = &wordx[word_length-3]; // this looks wrong. Doesn't consider multi-byte chars. | |||