| return 0; | return 0; | ||||
| } | } | ||||
| int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||||
| int TranslateLetter(Translator *tr, char *word, char *phonemes, int control, ALPHABET *current_alphabet) | |||||
| { | { | ||||
| // get pronunciation for an isolated letter | // get pronunciation for an isolated letter | ||||
| // return number of bytes used by the letter | // return number of bytes used by the letter |
| #ifndef ESPEAK_NG_NUMBERS_H | #ifndef ESPEAK_NG_NUMBERS_H | ||||
| #define ESPEAK_NG_NUMBERS_H | #define ESPEAK_NG_NUMBERS_H | ||||
| #include "translate.h" | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| { | { | ||||
| void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars); | void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars); | ||||
| int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab); | int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab); | ||||
| int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab, int control); | int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab, int control); | ||||
| int TranslateLetter(Translator *tr, char *word, char *phonemes, int control); | |||||
| int TranslateLetter(Translator *tr, char *word, char *phonemes, int control, ALPHABET *current_alphabet); | |||||
| #ifdef __cplusplus | #ifdef __cplusplus |
| capitals |= 4; // speak charater code for unknown letters | capitals |= 4; // speak charater code for unknown letters | ||||
| while ((*word != ' ') && (*word != 0)) { | while ((*word != ' ') && (*word != 0)) { | ||||
| word += TranslateLetter(tr, word, phonemes, capitals | non_initial); | |||||
| word += TranslateLetter(tr, word, phonemes, capitals | non_initial, current_alphabet); | |||||
| posn++; | posn++; | ||||
| non_initial = true; | non_initial = true; | ||||
| if (phonemes[0] == phonSWITCH) { | if (phonemes[0] == phonSWITCH) { | ||||
| if (posn > 0) | if (posn > 0) | ||||
| non_initial = true; | non_initial = true; | ||||
| wordx += TranslateLetter(tr, wordx, unpron_phonemes, non_initial); | |||||
| wordx += TranslateLetter(tr, wordx, unpron_phonemes, non_initial, current_alphabet); | |||||
| posn++; | posn++; | ||||
| if (unpron_phonemes[0] == phonSWITCH) { | if (unpron_phonemes[0] == phonSWITCH) { | ||||
| // change to another language in order to translate this word | // change to another language in order to translate this word |
| int flags; | int flags; | ||||
| } ALPHABET; | } ALPHABET; | ||||
| extern ALPHABET *current_alphabet; | |||||
| // alphabet flags | // alphabet flags | ||||
| #define AL_DONT_NAME 0x01 // don't speak the alphabet name | #define AL_DONT_NAME 0x01 // don't speak the alphabet name | ||||
| #define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters | #define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters |