JpnForPhp\Transliterator\Kana::transliterateSokuon PHP Method

transliterateSokuon() protected method

Transliterate proper combinaisons of latin alphabet characters into Sokuon (http://en.wikipedia.org/wiki/Sokuon) characters.
protected transliterateSokuon ( string $str, array $parameters ) : string
$str string String to be transliterated.
$parameters array Sokuon character.
return string Transliterated string.
    protected function transliterateSokuon($str, $parameters)
    {
        $new_str = $str;
        $length = Analyzer::length($str);
        //No need to go further.
        if ($length < 2) {
            return $new_str;
        }
        $skip = array('a', 'i', 'u', 'e', 'o', 'n');
        for ($i = 1; $i < $length; $i++) {
            $prev_char = substr($str, $i - 1, 1);
            if (!in_array($prev_char, $skip)) {
                // Don't forget Hepburn special case: ch > tch
                if ($prev_char === substr($str, $i, 1) || $prev_char === 't' && substr($str, $i, 2) === 'ch') {
                    $new_str = substr_replace($str, $parameters['sokuon'], $i - 1, 1);
                }
            }
        }
        return $new_str;
    }