|
|
16³â Àü
|
<HEAD>
<TITLE>¿µ¾î -> ÇѱÛ</TITLE>
</HEAD>
<SCRIPT>
/**
* ÁÖ±âÀû ÇÔ¼ö ½ÇÇà
* ¿µ¾î¸¦ Çѱ۷Π¹Ù²ãÁÖ´Â englishToKorean() ÇÔ¼ö¸¦
* 100/1 ÃÊ °£°ÝÀ¸·Î Àç½ÇÇà
*/
function intervalExcute()
{
setInterval( "englishToKorean()", 10 );
}
/**
* ¿µ¾î¸¦ Çѱ۷Î...
*/
function englishToKorean()
{
form.korean.value = "";
// ÀÔ·ÂÇÑ ¿µ¹® ÅؽºÆ® ÃßÃâ
var text = form.english.value;
// º¯¼ö ÃʱâÈ
var initialCode = 0;
var medialCode = 0;
var finalCode = 0;
// ÀÔ·ÂÇÑ ¹®ÀÚ¿ ±æÀÌ ÃßÃâ
var textLength = text.length;
for( var idx = 0; idx < textLength; idx++ )
{
// Ãʼº ÄÚµå ÃßÃâ
initialCode = getCode( 'initial', text.substring( idx, idx + 1 ) );
idx++; // ´ÙÀ½ ¹®ÀÚ·Î.
/**
* ÇöÀç ¹®ÀÚ¿Í ´ÙÀ½ ¹®ÀÚ¸¦ ÇÕÇÑ ¹®ÀÚ¿ÀÇ Áß¼º ÄÚµå ÃßÃâ
* ¤Î ( np ) ¶Ç´Â ¤¬ ( fq ) °°Àº µÎ°³ÀÇ ¹®ÀÚ°¡ µé¾î°¡´Â °ÍÀ» üũÇϱâ À§ÇÔ
*/
tempMedialCode = getCode( 'medial', text.substring( idx, idx + 2 ) );
// ÄÚµå °ªÀÌ ÀÖÀ» °æ¿ì
if( tempMedialCode != -1 )
{
// ÄÚµå °ªÀ» ÀúÀåÇÏ°í À妽º°¡ ´Ù´ÙÀ½ ¹®ÀÚ¿À» °¡¸£Å°°Ô ÇÑ´Ù.
medialCode = tempMedialCode;
idx += 2;
}
else // Äڵ尪ÀÌ ¾øÀ» °æ¿ì ÇϳªÀÇ ¹®ÀÚ¿¡ ´ëÇÑ Áß¼º ÄÚµå ÃßÃâ
{
medialCode = getCode( 'medial', text.substring( idx, idx + 1 ) );
idx++;
}
// ÇöÀç ¹®ÀÚ¿Í ´ÙÀ½ ¹®ÀÚ¸¦ ÇÕÇÑ ¹®ÀÚ¿ÀÇ Á¾¼º ÄÚµå ÃßÃâ
tempFinalCode = getCode( 'final', text.substring( idx, idx + 2 ) );
// ÄÚµå °ªÀÌ ÀÖÀ» °æ¿ì
if( tempFinalCode != -1 )
{
// ÄÚµå °ªÀ» ÀúÀåÇÑ´Ù.
finalCode = tempFinalCode;
// ±× ´ÙÀ½ÀÇ Áß¼º ¹®ÀÚ¿¡ ´ëÇÑ Äڵ带 ÃßÃâÇÑ´Ù.
tempMedialCode = getCode( 'medial', text.substring( idx + 2, idx + 3 ) );
// ÄÚµå °ªÀÌ ÀÖÀ» °æ¿ì
if( tempMedialCode != -1 )
{
// Á¾¼º ÄÚµå °ªÀ» ÀúÀåÇÑ´Ù.
finalCode = getCode( 'final', text.substring( idx, idx + 1 ) );
}
else
{
idx++;
}
}
else // ÄÚµå °ªÀÌ ¾øÀ» °æ¿ì
{
// ±× ´ÙÀ½ÀÇ Áß¼º ¹®ÀÚ¿¡ ´ëÇÑ ÄÚµå ÃßÃâ
tempMedialCode = getCode( 'medial', text.substring( idx + 1, idx + 2 ) );
// ±× ´ÙÀ½¿¡ Áß¼º ¹®ÀÚ°¡ Á¸ÀçÇÒ °æ¿ì
if( tempMedialCode != -1 )
{
// Á¾¼º ¹®ÀÚ´Â ¾øÀ½.
finalCode = 0;
idx--;
}
else
{
// Á¾¼º ¹®ÀÚ ÃßÃâ
finalCode = getCode( 'final', text.substring( idx, idx + 1 ) );
if( finalCode == -1 ) finalCode = 0;
}
}
// ÃßÃâÇÑ Ãʼº ¹®ÀÚ ÄÚµå, Áß¼º ¹®ÀÚ ÄÚµå, Á¾¼º ¹®ÀÚ Äڵ带 ÇÕÇÑ ÈÄ º¯È¯ÇÏ¿© Ãâ·Â
result = String.fromCharCode( 0xAC00 + initialCode + medialCode + finalCode );
form.korean.value += result;
}
}
/**
* ÇØ´ç ¹®ÀÚ¿¡ µû¸¥ Äڵ带 ÃßÃâÇÑ´Ù.
* @param type Ãʼº : chosung, Áß¼º : jungsung, Á¾¼º : jongsung ±¸ºÐ
* @param char ÇØ´ç ¹®ÀÚ
*/
function getCode( type, char )
{
// Ãʼº
var initial = "rRseEfaqQtTdwWczxvg";
// Áß¼º
var medial = new Array( 'k', 'o', 'i', 'O', 'j', 'p', 'u', 'P', 'h', 'hk', 'ho', 'hl', 'y', 'n', 'nj', 'np', 'nl', 'b', 'm', 'ml', 'l' );
// Á¾¼º
var final = new Array( 'r', 'R', 'rt', 's', 'sw', 'sg', 'e', 'f', 'fr', 'fa', 'fq', 'ft', 'fx', 'fv', 'fg', 'a', 'q', 'qt', 't', 'T', 'd', 'w', 'c', 'z', 'x', 'v', 'g' );
var returnCode; // ¸®ÅÏ ÄÚµå ÀúÀå º¯¼ö
var isFind = false; // ¹®ÀÚ¸¦ ã¾Ò´ÂÁö üũ º¯¼ö
if( type == 'initial' )
{
returnCode = initial.indexOf( char ) * 21 * 28;
isFind = true;
}
else if( type == 'medial' )
{
for( var i = 0; i < medial.length; i++ )
{
if( medial[i] == char )
{
returnCode = i * 28;
isFind = true;
break;
}
}
}
else if( type == 'final' )
{
for( var i = 0; i < final.length; i++ )
{
if( final[i] == char )
{
returnCode = i + 1;
isFind = true;
break;
}
}
}
else
{
alert("À߸øµÈ ŸÀÔÀÔ´Ï´Ù.");
}
if( isFind == false ) returnCode = -1; // °ªÀ» ãÁö ¸øÇßÀ» °æ¿ì -1 ¸®ÅÏ
return returnCode;
}
</SCRIPT>
<BODY onLoad = "intervalExcute();form.english.focus()">
<FORM name = "form">
<TABLE>
<TR>
<TD>¿µ¾î : </TD>
<TD><TEXTAREA rows = "4" cols = "30" name = "english"></TEXTAREA></TD>
</TR>
<TR>
<TD>ÇÑ±Û : </TD>
<TD><TEXTAREA rows = "4" cols = "30" name = "korean"></TEXTAREA></TD>
<TR>
</TABLE>
</FORM>
</BODY> |
|
̵̧ : 252 |
̵̧
¸ñ·Ï
|
|