我正在研究音译脚本(将韩文音节转换成拉丁字母)。

问题是我的脚本只接受罗马字化“갈라”,“갈”或“라”。它不会转换为“갈라라”,“라갈”,“갈”,“라라”,“갈갈”等。

有没有人有办法解决吗?我真的很感激。

<script>

var hangul_syllable_to_roman2 = {
'갈라' : 'galla',
}
var hangul_syllable_to_roman = {
'갈' : 'gal',
'라' : 'ra',
}

function transliteration_hangul_to_roman(syllable) {
    var roman2 = hangul_syllable_to_roman2[syllable];
    var roman = hangul_syllable_to_roman[syllable];
        if (roman2 || roman) {
        return roman2 || roman;
        }
        else {
        return syllable;
        }
}

function afficher(form2) {
    var testin = document.form2.entree.value;
                 document.form2.sortie.value=transliteration_hangul_to_roman(testin);
}

</script>

    <div>
        <FORM NAME="form2">
            <textarea name="entree" value="input"></textarea>
            <input type="button" name="bouton" value="Convertir" onClick="afficher(form2)">
            <textarea name="sortie" value="output"></textarea>
        </FORM>
    </div>

最佳答案

您仅得到定义的两种情况,因为您没有遍历整个输入字符串。

试试这个(未经测试!):

function transliteration_hangul_to_roman(syllable)
{
    var result = '', roman, roman2;
    while (syllable.length > 0)
    {
        roman2 = hangul_syllable_to_roman2[syllable.substr(0,2)];
        if (roman2)
        {
            result += roman2;
            syllable = syllable.substr(2);
        } else
        {
            roman = hangul_syllable_to_roman[syllable.substr(0,1)];
            if (roman)
                result += roman;
            else
                result += syllable.substr(0,1);
            syllable = syllable.substr(1);
        }
    }
    return result;
}

关于javascript - 韩语romanizer:并不能使所有内容都实现罗马化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19689153/

10-10 07:23