برگزیده های پرشین تولز

راهنمای ساده برای تایپ فارسی در فرمها

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
چون در copy-paste مقدار s بهم ريخته بود كد رو عوض كردم كه ديگه مشكل نداشته باشين. ضمنا تا حد زيادي هم اصلاح شده
کد:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" type="text/javascript">
//===================================================================
var farsi = true ;
var s = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
                  32,33,34,35,36,37,1548,1711,41,40,215,43,1608,45,46,47,48,49,50,51,52,53,54,55,56,57,58,1603,
                  44,61,46,1567,64,1616,1584,125,1609,1615,1609,1604,1570,247,1600,1548,47,8217,1583,215,1563,
                  1614,1569,1613,1601,8216,123,1611,1618,1573,126,1580,1688,1670,94,95,1662,1588,1584,1586,1610,
                  1579,1576,1604,1575,1607,1578,1606,1605,1574,1583,1582,1581,1590,1602,1587,1601,1593,1585,1589,
                  1591,1594,1592,60,124,62,1617)
var b = navigator.userAgent.toLowerCase() ;
var msie  = (b.indexOf('msie')>-1)  ? true : false ;
var gecko = (b.indexOf('gecko')>-1) ? true : false ;
var opera = (b.indexOf('opera')>-1) ? true : false ;
//===================================================================
function convert(fld,e) {
	if (farsi) {
		var h =s[((msie) ? event.keyCode : e.which)] ;
		if (msie) event.keyCode = h ;
		if (gecko || opera) {
			fld.value  = fld.value + String.fromCharCode(h) ;
			return false ;
		}
	}
}
//===================================================================
function rtl_ltr(fld,btn) {
	var xfld = document.getElementsByName(fld).item(0)
	if (xfld.style.direction == "ltr") {
		xfld.style.textAlign = "right" ;
		xfld.style.direction = "rtl" ;
		btn.value = "RTL" ;
	}
	else {
		xfld.style.textAlign = "left" ;
		xfld.style.direction = "ltr" ;
		btn.value = "LTR" ;
	}
	xfld.focus() ;
}
//===================================================================
function en_fa(fld,btn){
	farsi = !farsi ;
	if (farsi) { btn.value = "FA" ; }
	else { btn.value = "EN" ; }
	document.getElementsByName(fld).item(0).focus() ;
}
//===================================================================
</script>
<title></title>
</head>
<body>
<form>
<input type="text" name="xx" onkeypress="return convert(this,event)" dir="rtl">
<input type="button" onclick="en_fa('xx',this)" value="FA">
<input type="button" onclick="rtl_ltr('xx',this)" value="RTL"><br>
<textarea name="yy" dir="rtl" rows="10" cols="70" onkeypress="return convert(this,event)"></textarea>
<input type="button" onclick="en_fa('yy',this)" value="FA">
<input type="button" onclick="rtl_ltr('yy',this)" value="RTL"><br>
</form>
</body>
</html>
 

nima178

Registered User
تاریخ عضویت
2 سپتامبر 2004
نوشته‌ها
882
لایک‌ها
12
محل سکونت
همان جایی که اینجا نیست
بچه ها من يه سوال دارم ؟
شما واقعا اين كدها رو امتحان مي كنين؟
يا همين جوري مي گين ايول دستت درد نكنه؟
من نمي خوام باز جنگ را بيفته ولي اين به به و چه چه ها نه ب درد دوست عزيزمون مي خوره نه برا درد ما دوا مي شه
اين كد قبلي دوستمون من اپ لود كردم و مشكل كپي پستيشو بر طرف كردم
اصلا نه تو موزيلا نه فاير فاكس كار نمي كنه
http://persianeditor.8m.com/PersianTools/MozilaEditor2.html
كد جديدم كار نمي كنه حتي تو اكسپلورر

اگر برا شما كار كرد من كامپيوترمو از پنجره پرت مي كنم بيرون
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
نيما خان سلام !
يك كم زحمت بكش وقتي كد رو كپي پيست ميكني تو قسمت تعريف array اون عددها رو يك نگاه بكن ممكنه وسط بعضي هاش فاصله افتاده باشه (اين ديگه بمن مربوط نيست!) اول اون فاصله ها رو حذف كن بعدش كامپيوترت رو از پنجره بنداز بيرون!!! :D :lol: :lol:

عزيز جان! من اينجا نميتونم attatchment بذارم وگرنه كد رو اينجوري نميذاشتم كه! :wacko:
 

daftarekhaterat

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
2 جولای 2003
نوشته‌ها
4,989
لایک‌ها
58
سن
41
محل سکونت
در قلب پاك او
به نقل از mazoolagh :
نيما خان سلام !
يك كم زحمت بكش وقتي كد رو كپي پيست ميكني تو قسمت تعريف array اون عددها رو يك نگاه بكن ممكنه وسط بعضي هاش فاصله افتاده باشه (اين ديگه بمن مربوط نيست!) اول اون فاصله ها رو حذف كن بعدش كامپيوترت رو از پنجره بنداز بيرون!!! :D :lol: :lol:

عزيز جان! من اينجا نميتونم attatchment بذارم وگرنه كد رو اينجوري نميذاشتم كه! :wacko:
بله وسط چند تا شماره فاصله افتاده بود. همون اول كه با فرانت پيج تست كردم درستش كردم. در ضمن گمون كنم بايد حالتهاي دكمه در حالت فارسي نويسي و انگليسي نويسي عكس باشه. يعني وقتي داري فارسي مينويسي دكمه نشون بده EN و بالعكس.
 

daftarekhaterat

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
2 جولای 2003
نوشته‌ها
4,989
لایک‌ها
58
سن
41
محل سکونت
در قلب پاك او
به نقل از nima178 :
عاليه
خيلي حال داد دمت گرم
من معذرت مي خوام از اينكه لحن تند بود
اگر برا شما كار كرد من كامپيوترمو از پنجره پرت مي كنم بيرون
خب حالا با اين جمله چه كنيم؟!! :D
اگه خواستي بندازش توي خونه ما. :blush:
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,289
لایک‌ها
34
محل سکونت
mt.cgi
ما قبوال داريم بابا ! نميخواد حالا به خودت ضرر بزني !
پس فردا دپرس ميشي ، ميفتي گوشه ي خونه ! اونوخ كي جوابتو ميده؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از nima178 :
عاليه
خيلي حال داد دمت گرم
خيلي ممنون - من به شما حق ميدم و از اينكه به خاطر دقت شما اين موضوع فاصله ها مشخص شد واقعا تشكر ميكنم. همين موشكافي ها و دقت نظرها و توقعات بجا هست كه باعث پيشرفت و بهبود كارها ميشه و گرنه همون ورژن يك هر نرم افزاري بايد كافي باشه!
 

ehsan

Administrator
مدیر انجمن
Administrator
تاریخ عضویت
5 دسامبر 2002
نوشته‌ها
7,949
لایک‌ها
3,918
محل سکونت
Internet
من با راهنمايي نيما اديتورهاي ويزيويگ فروم رو فارسي كردم. حالا هنوز داريم روش كار ميكنيم. توي راهنماي من هم با عوض كردن كلمات name به this توي موزيلا هم كار خواهد كرد ولي فقط حروف كار ميكنه و دكمه هاي جهتها و backspace كار نميكنه.
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
من این کد جدید رو توی موزیلا 1.6 و فایرفوکس 1.7.5
و نت اسکیپ : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20041122 Firefox/0.5.6+
تست کردم کار نکرد :(
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از ehsan :
فقط حروف كار ميكنه و دكمه هاي جهتها و backspace كار نميكنه.

حق با شماست. e.which در onkeypress براي كليدهاي جهت و ... مقدار صفر برميگردونه بنابراين اون if كه مقدار رو چك كنه بين 32 تا 127 هست بايد باشه (من حذفش كرده بودم تا كد مختصر تر بشه)

کد:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" type="text/javascript">
//=============================================
var farsi = true ;
var s = new Array(32,33,34,35,36,37,1548,1711,41,40,215,43,
                  1608,45,46,47,48,49,50,51,52,53,54,55,56,
                  57,58,1603,44,61,46,1567,64,1616,1584,125,
                  1609,1615,1609,1604,1570,247,1600,1548,47,
                  8217,1583,215,1563,1614,1569,1613,1601,
                  8216,123,1611,1618,1573,126,1580,1688,
                  1670,94,95,1662,1588,1584,1586,1610,1579,
                  1576,1604,1575,1607,1578,1606,1605,1574,
                  1583,1582,1581,1590,1602,1587,1601,1593,
                  1585,1589,1591,1594,1592,60,124,62,1617)
var b = navigator.userAgent.toLowerCase() ;
var msie  = (b.indexOf('msie')>-1)  ? true : false ;
var gecko = (b.indexOf('gecko')>-1) ? true : false ;
var opera = (b.indexOf('opera')>-1) ? true : false ;
//=============================================
function convert(fld,e) {
	k =(msie) ? event.keyCode : e.which ;
	if (farsi && k>32 && k<128) {
		if (msie) event.keyCode = s[k-32] ;
		else if (gecko || opera) {
			fld.value  = fld.value + String.fromCharCode(s[k-32]) ;
			return false ;
		}
	}
}
//=============================================
function rtl_ltr(fld,btn) {
	var xfld = document.getElementsByName(fld).item(0)
	if (xfld.style.direction == "ltr") {
		xfld.style.textAlign = "right" ;
		xfld.style.direction = "rtl" ;
		btn.value = "RTL" ;
	}
	else {
		xfld.style.textAlign = "left" ;
		xfld.style.direction = "ltr" ;
		btn.value = "LTR" ;
	}
	xfld.focus() ;
}
//=============================================
function en_fa(fld,btn){
	farsi = !farsi ;
	if (farsi) { btn.value = "FA" ; }
	else { btn.value = "EN" ; }
	document.getElementsByName(fld).item(0).focus() ;
}
//=============================================
</script>
<title></title>
</head>
<body>
<form>
<input type="text" name="xx" onkeypress="return convert(this,event)" dir="rtl">
<input type="button" onclick="en_fa('xx',this)" value="FA">
<input type="button" onclick="rtl_ltr('xx',this)" value="RTL"><br>
<textarea name="yy" dir="rtl" rows="10" cols="70" onkeypress="return convert(this,event)"></textarea>
<input type="button" onclick="en_fa('yy',this)" value="FA">
<input type="button" onclick="rtl_ltr('yy',this)" value="RTL"><br>
</form>
</body>
</html>
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از miladmovie :
من این کد جدید رو توی موزیلا 1.6 و فایرفوکس 1.7.5
و نت اسکیپ : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20041122 Firefox/0.5.6+
تست کردم کار نکرد :(

اينجا آپلودش كردم http://m.1asphost.com/mazoolagh/farsi.htm و روي linux هم با mozilla و هم با firefox امتحان كردم كار كرد.
روي windows هم با IE - FireFox - Netscape - Opera تست كردم موردي نبود!
 

mehrdad1355

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
2 فوریه 2004
نوشته‌ها
3,971
لایک‌ها
30
سن
47
نمی دونم کی چه تغییری رو فروم داده که فارسی نویسی تو فروم با مرورگر موزیلا دچار اختلال شده!!
با ادیتور اچ تی ام ال اریا که اصلا نمیشه با موزیلا کار کرد
یک هفته داره میشه این اختلال :(
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
به نقل از mehrdad1355 :
نمی دونم کی چه تغییری رو فروم داده که فارسی نویسی تو فروم با مرورگر موزیلا دچار اختلال شده!!
با ادیتور اچ تی ام ال اریا که اصلا نمیشه با موزیلا کار کرد
یک هفته داره میشه این اختلال :(
باید یک بار این دکمه فارسی / انگلیسی رو یک بار فشار بدی مشکلت حل می شه :)

من هم همین مشکل رو داشتم
 

mehrdad1355

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
2 فوریه 2004
نوشته‌ها
3,971
لایک‌ها
30
سن
47
به نقل از miladmovie :
باید یک بار این دکمه فارسی / انگلیسی رو یک بار فشار بدی مشکلت حل می شه :)

من هم همین مشکل رو داشتم
می دونم!!!!!!! البته برای ادیتور عادی اینجوری درست میشه!
ولی برای اچ تی ام ال اریا چی؟اصلا اونجا امکان نوشتن نیست!
مثلا چه حسنی این تغییر داشته که این مشکل دنبالشه؟؟؟
الان تو ادیتور عادی خیلی وقتها امکان اینتر زدن و به خط بعدی رفتن هم ندارم تو موزیلا :(
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
به نقل از mehrdad1355 :
می دونم!!!!!!! البته برای ادیتور عادی اینجوری درست میشه!
ولی برای اچ تی ام ال اریا چی؟اصلا اونجا امکان نوشتن نیست!
مثلا چه حسنی این تغییر داشته که این مشکل دنبالشه؟؟؟
الان تو ادیتور عادی خیلی وقتها امکان اینتر زدن و به خط بعدی رفتن هم ندارم تو موزیلا :(
HTML Area که اصلا فقط واسه IE هست :eek:
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از mehrdad1355 :
نمی دونم کی چه تغییری رو فروم داده که فارسی نویسی تو فروم با مرورگر موزیلا دچار اختلال شده!!
با ادیتور اچ تی ام ال اریا که اصلا نمیشه با موزیلا کار کرد
یک هفته داره میشه این اختلال :(

فكر كنم تقصير من باشه! آخه دوستان بزرگواري كردن اون كد اولي رو كه اشكال داشت (همين اشكالهايي كه اينجا مطرح شد مثل كليدهاي كرسر) جايگزين اسكريپت farsix.js اصلي كردن. اگه زحمت بكشن اين آخري رو بجاش بذارن احتمالا برطرف ميشه :blush:
 

mehrdad1355

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
2 فوریه 2004
نوشته‌ها
3,971
لایک‌ها
30
سن
47
من مدتها که از اون (ادیتور سوم ) استفاده می کردم تو موزیلا!
ولی از وقتی این مشکلها(4-5) روز دیگه رو موزیلا نمی تونم استفاده کنم ! فقط رو اکسپلور جواب میده! الان!
 
بالا