چگونه زبان فارسي و انگليسي را خودكار عوض كنيم؟

سلام دوستان
ميشه كمك كنيد بگيد كه چه جوري ميشه زبان فارسي را بدون استفاده از alt+shift در دريم عوض كرد؟ (مثل دكمه
fa2.gif
كه سايت مجيد داره. اين دكمه چه جوري كار مي كنه؟)
 

CaptanBlack

Member
سلام

ببين عزيز اين دكمه مي بيني احتمالا يدونه Function را صدا ميزنه تا حروفي که تايپ ميکني را ديگه به فارسي معادل ساري نکنه . حالا شايد بخواهي بدوني چطور معادل سازي ميشه . ميدوني که هر Field توي HTML Event ي به نام onkeypress داره . که بواسطه اون ميتوني کد اسکي کليد فشرده شده را بگيري . حالا بايد بدوني که معادل حرف فارسي کليد چي ميشه که اينم خيلي سادست اگه با ASCI کدها آشنا باشي و اختلاف عددي بين کدها را بدوني . اما اگه جنگي احتياج داري . از همين Page که الان ميبيني ميتوني استفاده کني .
اينه عزيز:
<!-- Begin Code of Farsi typing ! -->
<!-- By Majid Alavizadeh - www.majidonline.com - www.persianservices.com -->
<script>
function storeCaret(textEl) {
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();

}
var lang = 1; // 1: Farsi, 0: English

// Farsi keyboard map based on ISIRI-2901
var farsikey = [
0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];


function changeLang() {
if (lang == 0) {
lang = 1;
return true;
}
else {
lang = 0;
return true;
}
}

function FKeyDown (txtFrm){
var key = window.event.keyCode;
if (key == 145){
if (lang == 0) {
lang = 1;
return true;
}
else {
lang = 0;
return true;
}

}

}
function FKeyPress(txtFrm) {
var key = window.event.keyCode;

if (key == 13) { window.event.keyCode = 13; return true; }

if (lang == 1) { // If Farsi
if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
window.event.keyCode = farsikey[key - 0x0020];
if (farsikey[key - 0x0020] == 92) {
window.event.keyCode = 0x0698;
}
if (farsikey[key - 0x0020] == 8205) {
window.event.keyCode = 0x067E;
}
}
return true;
}

function change(obj){
if (lang==0)
lang=1
else
lang=0;
obj.focus();
}
</script>
<!--- END Code ---->

خلاصه کاري نداره !
اميدوارم گرفته باشي .
قربونت وحيد
 

جدیدترین ارسال ها

بالا