Option "language <name>"already causes SelectTranslator(<name>) to be called. Having two options to do almost the same thing is unnecessary and confusing. In the long term, all options from SelectTranslator() should have a switch case in LoadVoice() so they are user configurable (see #218). If needed, a new option (maybe called "LoadOptions") could be added to load an existing voice or language file. Changes language configuration files for: hak, cmn, yue, ltg, ms, mb-ma1. No changes to users.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 | |||
| @@ -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 }; | |||
| @@ -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; | |||