Этот пост был переведен этим скриптом.
Приветствую вас, господа, уже на русском языке! После долгих запарок и анализа команд языка JavaScript, получилось то что вы видите ниже. Вот собственно код (вероятно его стоит хорошо потестировать):
| Код | <HTML> <HEAD> <TITLE>Transliteration Convertion v2.0</TITLE> </HEAD>
<BODY> <font face="sans-serif"> <FORM NAME = "SENDDATA"> <TEXTAREA NAME="message" ROWS=18 cols=100% WRAP="VIRTUAL"></TEXTAREA> <script language="JavaScript"> var lat=new Array("JO","Jo","ZH","Zh","I'","Ch","CH","Sh","SH","Xh","XH","Je","JE","Ju","JU","Ja","JA","A","B","V","G","D","E","Z","I","K","L","M","N","O","P","R","S","T","U","F","C","Y","J","H","jo","zh","i'","ch","sh","xh","je","ju","ja","a","b","v","g","d","e","z","i","k","l","m","n","o","p","r","s","t","u","f","c","'","y","`","j","h"); var rus=new Array("Ё","Ё","Ж","Ж","Й","Ч","Ч","Ш","Ш","Щ","Щ","Э","Э","Ю","Ю","Я","Я","А","Б","В","Г","Д","Е","З","И","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Ц","Ы","Ж","Х","ё", "ж", "й", "ч", "ш", "щ", "э", "ю", "я", "а","б","в","г","д","е","з","и","к","л","м","н","о","п","р","с","т","у","ф","ц","ь","ы","ъ","ж","х"); var eng = new Array("[eng]","[/eng]"); var _num_=lat.length;
function match(src, pos, str) { var i; for (i=pos; i<pos+str.length; i++) { if (src.charAt(i)!=str.charAt(i-pos)) return 0; } return 1; }
function transliterate(tex) { var i; var l; var j; var result=""; for (i=0; i<tex.length; i++) { switch(tex.charAt(i)) { case ':': while(tex.charAt(i)!=' ') { if(i<tex.length) result=result.concat(tex.charAt(i++)); else return result; } result=result.concat(" "); break; case '[': if (match(tex.toLowerCase(), i, eng[0])) { i+=5; while(!match(tex.toLowerCase(), i, eng[1])) { if (i<tex.length) result=result.concat(tex.charAt(i++)); else return; } i+=6; } else { result=result.concat(tex.charAt(i++)); while (tex.charAt(i)!=']') { if (i>=tex.length) return; else result=result.concat(tex.charAt(i++)); } result=result.concat("]"); } break; default: for (j=0; j<_num_; j++) { if (l=match(tex, i, lat[j])) { result=result.concat(rus[j]); i+=lat[j].length-1; break; } } if (l==0) result=result.concat(tex.charAt(i)); } } return result; }
function onClickBtnRu(){ var txt = document.SENDDATA.message.value; txt = transliterate(txt); document.SENDDATA.message.value = txt; document.SENDDATA.message.focus; }
</script> <table width="100%" border="0"> <tr> <td align="center"> <a href="javascript:void(null)" ONCLICK="onClickBtnRu();"> <img src="d:\ass.bmp" alt = "Translit -> Russian" border = 0> </a> </td> </tr> </table> <br> History: <br> I. v1.0 transliteration convertion, developed by BearBeer <br> II. v2.0 added new features by neutrino: <br> - supports [eng]..[/eng] tags <br> - non-translatable smiles (:angry)<br> - non-translatable BBCodes ([quote]..[/quote])<br> </FORM> </BODY> </HTML>
|
Достоинства этого скрипта: I. Поддержка тэгов [eng]..[/eng] II. непереводимые улыбочки ( ) III. непереводимые тэги YaBB |