2013-10-30 24 views
1

我正在研究音譯腳本(將韓語音節轉換爲拉丁字母)。朝鮮語romanizer:它沒有得到一切羅馬化

問題是我的腳本只接受羅馬化'갈라','갈'或'라'。它沒有得到'갈라라','라갈','갈라','라라','갈갈'等被轉換。

有沒有人有解決方案?我會很感激。

<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> 
+0

「並不想」=? –

+0

對不起這個英文錯誤..我只是說「有些字符串不能轉換」 – user2911849

回答

0

您只會得到您定義的兩種情況,因爲您沒有遍歷整個輸入字符串。

試試這個(未經測試!):

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