韩语罗马化器 :它不会让所有内容都罗马化

Korean romanizer : it does not get everything romanized

本文关键字:罗马化 韩语      更新时间:2023-09-26

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

问题是我的脚本只接受罗马化"갈라"、"갈"或"라"。它不会转换"갈라라"、"라갈"、"갈 라"、"라라"、"갈갈"等。

有人有解决方案吗?我真的很感激。

<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;
}