| if (p->synthflags & SFLAG_SYLLABLE) { | if (p->synthflags & SFLAG_SYLLABLE) { | ||||
| tone_ph = p->tone_ph; | tone_ph = p->tone_ph; | ||||
| tph = phoneme_tab[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 (tr->translator_name == L3('h','a','k')){ | ||||
| if (prev_tph->mnemonic == 0x31){ // [previous one is 1st tone] | if (prev_tph->mnemonic == 0x31){ // [previous one is 1st tone] | ||||
| // [this one is 1st, 4th, or 6th tone] | // [this one is 1st, 4th, or 6th tone] | ||||
| if (tph->mnemonic == 0x31 || tph->mnemonic == 0x34 || | if (tph->mnemonic == 0x31 || tph->mnemonic == 0x34 || | ||||
| tph->mnemonic == 0x36){ | 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'); | |||||
| } | } | ||||
| } | } | ||||
| } | } |