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. |