See commit message for 23a4d88f
.
This commit fixes cmn and yue.
CalcPitches_Tone() now accepts cmn for translator_name.
SelectTranslator() now has a case for yue instead of zhy.
master
@@ -2,7 +2,6 @@ name Latgalian | |||
language ltg | |||
maintainer Valdis Vitolins <[email protected]> | |||
status testing | |||
translator lv // Reuse pronunciation rules from Latvian | |||
phonemes lv | |||
dictionary lv | |||
dictrules 2 // Setting for Latgalian pronunciation |
@@ -3,8 +3,6 @@ name Malay | |||
language ms | |||
phonemes id | |||
translator id | |||
stressLength 160 200 180 180 0 0 220 240 | |||
stressAmp 16 18 18 18 0 0 22 21 | |||
intonation 3 // Less intonation, and comma does not raise the pitch. |
@@ -3,7 +3,6 @@ language cmn | |||
language zh-cmn | |||
language zh | |||
translator zh | |||
phonemes zh | |||
dictionary zh | |||
words 1 |
@@ -2,6 +2,5 @@ name Hakka Chinese | |||
language hak | |||
maintainer Chen Chien-ting <[email protected]> | |||
status testing | |||
translator hak | |||
phonemes hak | |||
dictionary hak |
@@ -3,7 +3,6 @@ language yue | |||
language zh-yue | |||
language zh 8 | |||
translator zhy | |||
phonemes zhy | |||
dictionary zhy | |||
@@ -3,6 +3,5 @@ language ms 1 | |||
gender female | |||
pitch 140 260 | |||
phonemes id | |||
translator id | |||
mbrola ma1 ma1_phtrans | |||
@@ -847,7 +847,7 @@ static void CalcPitches_Tone(Translator *tr) | |||
} | |||
} | |||
// Mandarin | |||
if (tr->translator_name == L('z', 'h')) { | |||
if (tr->translator_name == L('z', 'h') || tr->translator_name == L3('c', 'm', 'n')) { | |||
if (tone_ph == 0) { | |||
if (pause || tone_promoted) { | |||
tone_ph = PhonemeCode2('5', '5'); // no previous vowel, use tone 1 |
@@ -1169,6 +1169,7 @@ Translator *SelectTranslator(const char *name) | |||
} | |||
break; | |||
case L('l', 'v'): // latvian | |||
case L3('l', 't', 'g'): // latgalian | |||
{ | |||
static const unsigned char stress_amps_lv[8] = { 14, 10, 10, 8, 0, 0, 20, 15 }; | |||
static const short stress_lengths_lv[8] = { 180, 180, 180, 160, 0, 0, 230, 180 }; | |||
@@ -1552,7 +1553,7 @@ Translator *SelectTranslator(const char *name) | |||
tr->langopts.break_numbers = BREAK_INDIVIDUAL; | |||
break; | |||
case L3('c', 'm', 'n'): // no break, just go to 'zh' case | |||
case L3('z', 'h', 'y'): // just go to 'zh' case | |||
case L3('y', 'u', 'e'): | |||
case L('z','h'): | |||
{ | |||
static const short stress_lengths_zh[8] = { 230, 150, 230, 230, 230, 0, 240, 250 }; // 1=tone5. end-of-sentence, 6=tone 1&4, 7=tone 2&3 | |||
@@ -1569,7 +1570,7 @@ Translator *SelectTranslator(const char *name) | |||
tr->langopts.ideographs = 1; | |||
tr->langopts.our_alphabet = 0x3100; | |||
tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word | |||
if (name2 == L3('z', 'h', 'y')) { | |||
if (name2 == L3('y', 'u', 'e')) { | |||
tr->langopts.textmode = true; | |||
tr->langopts.listx = 1; // compile zh_listx after zh_list | |||
tr->langopts.numbers = NUM_DEFAULT; |
@@ -72,7 +72,6 @@ enum { | |||
V_NAME = 1, | |||
V_LANGUAGE, | |||
V_GENDER, | |||
V_TRANSLATOR, | |||
V_PHONEMES, | |||
V_DICTIONARY, | |||
V_VARIANTS, | |||
@@ -127,7 +126,6 @@ static MNEM_TAB keyword_tab[] = { | |||
{ "formant", V_FORMANT }, | |||
{ "pitch", V_PITCH }, | |||
{ "phonemes", V_PHONEMES }, | |||
{ "translator", V_TRANSLATOR }, | |||
{ "dictionary", V_DICTIONARY }, | |||
{ "stressLength", V_STRESSLENGTH }, | |||
{ "stressAmp", V_STRESSAMP }, | |||
@@ -649,17 +647,6 @@ voice_t *LoadVoice(const char *vname, int control) | |||
current_voice_selected.age = age; | |||
} | |||
break; | |||
case V_TRANSLATOR: | |||
if (tone_only) break; | |||
sscanf(p, "%s", translator_name); | |||
if (new_translator != NULL) | |||
DeleteTranslator(new_translator); | |||
new_translator = SelectTranslator(translator_name); | |||
langopts = &new_translator->langopts; | |||
break; | |||
case V_DICTIONARY: // dictionary | |||
sscanf(p, "%s", new_dictionary); | |||
break; |