| @@ -844,13 +844,17 @@ static void CalcPitches_Tone(Translator *tr) | |||
| if (p->synthflags & SFLAG_SYLLABLE) { | |||
| tone_ph = p->tone_ph; | |||
| tph = phoneme_tab[tone_ph]; | |||
| // Hakka | |||
| /* Hakka | |||
| ref.:https://en.wikipedia.org/wiki/Sixian_dialect#Tone_sandhi */ | |||
| if (tr->translator_name == L3('h','a','k')){ | |||
| if (prev_tph->mnemonic == 0x31){ // [previous one is 1st tone] | |||
| // [this one is 1st, 4th, or 6th tone] | |||
| if (tph->mnemonic == 0x31 || tph->mnemonic == 0x34 || | |||
| tph->mnemonic == 0x36){ | |||
| prev_p->tone_ph = PhonemeCode('2'); | |||
| /* trigger the tone sandhi of the prev. syllable | |||
| from 1st tone ->2nd tone */ | |||
| prev_p->tone_ph = PhonemeCode('2'); | |||
| } | |||
| } | |||
| } | |||