View Full Version : فارسی کردن text box اما ....!
angel_boy013
جمعه 01 اردیبهشت 1385, 22:42 عصر
من میخواستم Text box هام بعضی هاشون فارسی بشن تو 1 فایل به نام farsi.js اینو نوشتم
// JavaScript Document
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,
0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 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
];
// on Alt+Shift, switch language
function FKeyDown()
{
if (window.event.shiftKey && window.event.altKey) {
if (lang == 0) {
lang = 1;
window.defaultStatus = "Farsi Mode";
}
else {
lang = 0;
window.defaultStatus = "English Mode";
}
return false;
}
return true;
}
// change the Farsi
function FKeyPress()
{
var key = window.event.keyCode;
// Avoid processing if control or higher than ASCII (i.e., in Arabic Windows)
if (key < 0x0020 || key >= 0x00FF)
return;
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
{
if (key==96)
{
window.event.keyCode = farsikey[109 - 0x0020];
}
else
{
if (key==92)
{
window.event.keyCode = farsikey[67 - 0x0020];
}
else
{
window.event.keyCode = farsikey[key - 0x0020];
}
}
}
}
return true;
}
توی صفحهء که میخواستم بیاد این صفحه رو اضافه کردم اما کل text box ها فارسی شدن میخوام چند تاشون انگلیسی باشه برای همین input ها رو اینطوری زدم
<INPUT style="font-family:tahoma " type="text" size="20" name="nameEN" onfocus='InputLanguage =0 ; UserCanChangeInputLanguage =0 ;'>
اما بازم انگلیسی نشد میشه یک کمک بدید بگین چطوری این فیلد دو انگلیسی کنم بقیه فارسی
pooyanm
شنبه 02 اردیبهشت 1385, 06:47 صبح
شما می تونی با onfocus برای فیلد های فارسی متدهای فوق را فعال کنی و با onblur هم دستورات فوق را غیر فعال کنی.
pooyanm
شنبه 02 اردیبهشت 1385, 06:49 صبح
اگر این توضیحات کافی نیست ویا درست کار نمی کند همین جا به من اطلاع دهید.
angel_boy013
شنبه 02 اردیبهشت 1385, 13:51 عصر
دقیق متوجه نشدم میشه یک زره دقیق تر بگین
pooyanm
یک شنبه 03 اردیبهشت 1385, 05:59 صبح
البته بدون onblur هم می توان آن را غیر فعال کرد.
pooyanm
یک شنبه 03 اردیبهشت 1385, 06:32 صبح
این کد را ببین شما فقط برای textbox های فارسی آن را فعال می کنید:
<script>
// JavaScript Document
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,
0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 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
];
// on Alt+Shift, switch language
function FKeyDown(){
if (window.event.shiftKey && window.event.altKey) {
if (lang == 0) {
lang = 1;
window.defaultStatus = "Farsi Mode";
}
else {
lang = 0;
window.defaultStatus = "English Mode";
}
return false;
}
return true;
}
// change the Farsi
function FKeyPress(){
var key = window.event.keyCode;
// Avoid processing if control or higher than ASCII (i.e., in Arabic Windows)
if (key < 0x0020 || key >= 0x00FF) return;
if (lang == 1) { //If Farsi
if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else {
if (key==96) {
window.event.keyCode = farsikey[109 - 0x0020];
}
else {
if (key==92) {
window.event.keyCode = farsikey[67 - 0x0020];
}
else {
window.event.keyCode = farsikey[key - 0x0020];
}
}
}
}
return true;
}
</script>
fa: <INPUT style="font-family:tahoma " type="text" size="20"
name="nameFA"
onfocus='lang=1;InputLanguage =0 ; UserCanChangeInputLanguage =0 ;'
onkeydown="FKeyDown()" onkeypress="FKeyPress()">
en: <INPUT style="font-family:tahoma " type="text" size="20"
name="nameEN"
onfocus='lang=0;InputLanguage =0 ; UserCanChangeInputLanguage =0 ;'
onkeydown="" onkeypress="">
pooyanm
یک شنبه 03 اردیبهشت 1385, 06:34 صبح
البته یه قسمت هایی از input ها را می تونی حذف کنی مثل onfocus
tabib_m
یک شنبه 03 اردیبهشت 1385, 09:54 صبح
function farsi(){
if (window.event.keyCode>31 && window.event.keyCode<128 && window.event) window.event.keyCode=' !"#$%،گ)(×+و-./0123456789:کؤ=.؟@ِإ}ىُىلآةـ،/ءد×؛َءٍف‘{ًْإ~جژچ^_پشذزیثب اهتنمئدخحضقسفعرصطغظ<|>ّ' . charCodeAt(window.event.keyCode-32);
}
فکر کنم اکه توی onkeypress از تابع فوق استفاده کنی ، تکست باکست فارسی بشه.
البته اکه منظورت رو فهمیده باشم.
pooyanm
یک شنبه 03 اردیبهشت 1385, 17:24 عصر
بله این کد هم همین کار را می کنه و از قبلی هم ساده تره
pooyanm
یک شنبه 03 اردیبهشت 1385, 17:37 عصر
فقط alt+shift را برای تغییر زبان نیاز داره.
لوک خوش شانس
دوشنبه 04 اردیبهشت 1385, 05:47 صبح
من میخواستم Text box هام بعضی هاشون فارسی بشن تو 1 فایل به نام farsi.js اینو نوشتم
// JavaScript Document
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,
0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 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
];
// on Alt+Shift, switch language
function FKeyDown()
{
if (window.event.shiftKey && window.event.altKey) {
if (lang == 0) {
lang = 1;
window.defaultStatus = "Farsi Mode";
}
else {
lang = 0;
window.defaultStatus = "English Mode";
}
return false;
}
return true;
}
// change the Farsi
function FKeyPress()
{
var key = window.event.keyCode;
// Avoid processing if control or higher than ASCII (i.e., in Arabic Windows)
if (key < 0x0020 || key >= 0x00FF)
return;
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
{
if (key==96)
{
window.event.keyCode = farsikey[109 - 0x0020];
}
else
{
if (key==92)
{
window.event.keyCode = farsikey[67 - 0x0020];
}
else
{
window.event.keyCode = farsikey[key - 0x0020];
}
}
}
}
return true;
}
توی صفحهء که میخواستم بیاد این صفحه رو اضافه کردم اما کل text box ها فارسی شدن میخوام چند تاشون انگلیسی باشه برای همین input ها رو اینطوری زدم
<INPUT style="font-family:tahoma " type="text" size="20" name="nameEN" onfocus='InputLanguage =0 ; UserCanChangeInputLanguage =0 ;'>
اما بازم انگلیسی نشد میشه یک کمک بدید بگین چطوری این فیلد دو انگلیسی کنم بقیه فارسی
یه سوال :
چرا از این تابع برای فارسی کردن استفاده می کنی .
در حال حاضر که بدون این توابع راحت میشه از فارسی استفاده کرد . دیگه این دردسر ها رو هم نداره .
در هر صورت چیزی که دوستمون گفتن آقا طبیب از onkeypress استفاده کنی راحت تری .
pooyanm
دوشنبه 04 اردیبهشت 1385, 06:11 صبح
بله این روش ها کمی قدیمی شده ولی هنوز هم کاربرد دارند
moohssenn
پنج شنبه 22 فروردین 1387, 10:01 صبح
میدونم که این تاپیک برای 2 سال پیشه . تمام سایتم جستجو کردم اما مشکلم حل نشد
مشکلم اینه که تابعی که توی این تاپیک و سایر تاپیکهای کفته شده وجود دارد به خوبی برروی IE کار میکنه . اما این توابع برروی FireFox کار نمیکنن.
آیا دوستان تا به حال از این نوع توابع برروی FireFox استفاده کردن و یا مثالی دارن ؟؟
moohssenn
یک شنبه 25 فروردین 1387, 07:42 صبح
اگه کسی میتونه مشکل این کدو هم بررسی بکنه ممنون میشم
angel_boy013
دوشنبه 26 فروردین 1387, 13:04 عصر
من با firefox Minefield/3.0a4pre تست کردم کار میکنه
moohssenn
سه شنبه 27 فروردین 1387, 12:57 عصر
من با firefox Minefield/3.0a4pre تست کردم کار میکنه
من با آخرین ورژن firefox که از سایتش گرفتم کار نکرد . ممکنه این مشکل به خاطر add-on های فایر فاکس باشه ؟؟
twelve
سه شنبه 27 فروردین 1387, 15:16 عصر
منم از همین روش استفاده میکنم که متاسفانه با FF کار نمیکنه ، روش بهتری که با همه Browser ها کار کنه نیست؟
soltany
پنج شنبه 14 شهریور 1387, 01:38 صبح
عذرخواهی می کنم می شه یکم بیشتر در مورد onkeypress که چطوری در فرم ها استفاده کنیم ازش توضیح بدید ؟
یک سوال دیگر هم این روش که دوستان گفتند فقط روی IE هست . مشکل من اینه که اگر firefox طرف بخواد استفاده کنه نمی تونه. من مشکل اصلی ام اینه که به خاطر اینکه برای مثال حرف "ی" در IE با نقطه هایی در زیرش است ولی در فایرفاکس اینطور نیست و من می خوام اگر به فرض کسی از فایرفاکس استفاده کرد بتونه با فارسی کردن زبان کامپیوترش ، اون فیلد ها را پر کنه ولی اگر از حرف "ی" یا "ک" یا دیگر حرف ها که چند حالت برای نوشتن دارند استفاده کند درست کار نمی کند.
انشاالله منظورم را درست گفته باشم
ممنون می شم کمکم کنید.
nemidonam
سه شنبه 02 مهر 1387, 13:29 عصر
متاسفانه روش هايي كه دوستان استفاده مي كنن هيچ كدام در firefox كار نميكنه ، اگه كسي راه حلي براي اين موضوع داره بگه
joojoo
چهارشنبه 20 آبان 1388, 10:06 صبح
این کد فقط فارسی تایپ میکنه اگر انگلیسی بخواهیم تایپ کنیم که نمیشه.
برای تغییر زبان باید alt + shift رو هم بهش اضافه کنیم.
کسی کدش رو داره؟:ناراحت::افسرده:
shocraneh
شنبه 30 آبان 1388, 22:45 عصر
من اکثر textbox هام فارسیه و چند تا انگلیسی . از اسکریپی(farsi.js) که دوستان در تاپیک های اول اشاره کردند استفاده کردم اما تو اون قسمتی که چه textbox ای فارسی باشه یا انگلیسی باشه جواب نمی گیرم .
من روی وی بی کار میکنم از کدی که دوستمون طبیب گذاشته هم نتونستم استفاده کنم
دوستمون لوک خوش شانس چرا روششونو معرفی نکردند؟؟
shocraneh
یک شنبه 01 آذر 1388, 23:28 عصر
دوستان کجایند؟؟
shocraneh
پنج شنبه 05 آذر 1388, 10:36 صبح
یعنی هیچ کس نمی دونست؟
NIMA_1981
سه شنبه 25 مرداد 1390, 10:45 صبح
دوستان هیج کدوم از این کد ها کارنمیکنه - میشه راهنمایی کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.