کاملترین اسکریپت فارسی نویسی

arinolan

Member
اسکریپت‌هایی که در حال حاضر برای اضافه کردن امکان تایپ فارسی در فرم‌های وب مورد استفاده قرار می‌گیرند، دارای ۲ مشکل هستند:

اول اینکه بخاطر استفاده از رویدادهای onkeypress یا onclick یا... و اینکه این رویداد/خصوصیت‌ها دیگر در استانداردهای وب جایی ندارند، نمی‌توان صفحاتی که امکان تایپ فارسی را در آنها قرار داده‌ایم، استاندارد کنیم.

مشکل دوم اینکه تنظیم این امکانات با توجه به کارهایی که باید انجام شود، می‌تواند گیج کننده باشد.

به همه‌ی اینها باید اضافه کرد این نکته را که اکثر اسکریپت‌هایی که در حال حاضر مورد استفاده قرار می‌گیرند، باگ‌های فراوانی دارند. مثلا به صفحه عضویت پرشین‌بلاگ - به عنوان یک سایت معتبر (احتمالا!) - نگاه کنید: فیلد "نام کاربر" را انگلیسی کنید سپس در فیلد "عنوان وبلاگ" چیزی تایپ کنید. می‌بینید که به‌جای فارسی، کاراکترهای انگلیسی تایپ می‌شوند! یعنی همه‌ی فیلدها همزمان یا انگلیسی هستند یا فارسی اما دکمه‌های تغییر زبان همزمان تغییر نمی‌کنند و ممکن است دکمه، تایپ در حالت فارسی را نشان دهد اما انگلیسی تایپ شود!!!!! (البته حل مشکل این اسکریپت بسیار ساده است اما متاسفانه ما آدم‌های بنداز و در رویی هستیم!)

برای اینکه کار را راحت‌تر کنیم، استاندارد بمانیم و باگ نداشته باشیم(!!!!)، اسکریپت تایپ فارسی را جور دیگری بازنویسی کردم!
این سکریپت در Internet Explorer و خانواده‌ی GECKO (یعنی Mozilla/FireFox) و همچنین Opera بدرستی و کاملا یکسان کار می‌کند! ضمن اینکه استفاده از آن بسیار ساده است، به استاندارد بودن صفحات لطمه‌ای نمی‌زند، باگ هم ندارد(امیدوارم!!!).
Basic Usage

استفاده از این اسکریپت فقط ۱+۲ مرحله دارد:

۰. متغیرهای ShowChangeLangButton، KeyBoardError و ChangeDir را براساس نظر خود مقدار دهی کنید:
ShowChangeLangButton: نمایش دکمه تعییر زبان: 0: نمایش و 1: عدم نمایش
KeyBoardError: در صوتی که کیبرد کاربر در حالت تایپ فارسی بود: 0: غیرفعال کردن FarsiType و 1: نمایش پیغام خطا
ChangeDir: تغییر جهت نمایش متن هنگام تغییر زبان: 0: بدون واکنش، 1: تغییر کند و 2: تنظیم یک دکمه برای تغییر Direction

۱. فایل farsitype.js را به صفحات مورد نظر الحاق کنید! (داخل تگ <head>)
کد:
    <script language="javascript" src="farsitype.js" type="text/javascript"></script>
۲. به شناسه lang هرکدام از تگ‌های <input> یا <textarea> که می‌خواهید دارای امکان تایپ فارسی باشند، مقدار "fa" یا "fa-IR" بدهید! (فقط lang="fa" یا lang="fa-IR" برای این اسکریپت دارای اهمیت است!)
کد:
    <input type="text" name="whatever" lang="fa" />
    <textarea cols="30" rows="7" name="whatever" lang="fa"></textarea>
    <input type="text" name="whatever" lang="fa-IR" />
    <textarea cols="30" rows="7" name="whatever" lang="fa-IR"></textarea>
تموم شد! اسکریپت به طور خودکار دکمه‌ی تغییر زبان را ایجاد می‌کند، سایر کارهای مورد نیاز را نیز انجام می‌دهد!

می‌توانید برای فعال/غیرفعال کردن سکریپت از یک چک‌باکس استفاه کنید وجود این چک‌باکس اختیاری‌ست:
کد:
    <input type="checkbox" id="disableFarsiType" />
در این اسکریپت می‌توانید علاوه بر دکمه تغییر زبان، از دکمه F8 برای تغییر زبان استفاده کنید. (دقت دارید که دکمه تغییر زبان همزمان تغییر می‌کند و با فیلدهای دیگر هم تداخلی ندارد!)

مثال : http://www.ashoob.net/farsitype/
منبع : ashoob.net
 

پیوست ها

  • farsitype.rar
    4.2 کیلوبایت · بازدیدها: 229
به نام او::

چطور میشه که اون باتنهای زشت رو برداشت و به جای اون باتنهای زیباتر گذاشت؟

منظورم اون دکمه های rtl و en رو میگم
 

fsfarhad

Member
دوست عزیز خیلی ممنون از script ی كه آماده كردید ... خیلی عالی هست ...
فقط من چند مورد به نظرم اومد كه می خواستم مطرح كنم شاید در نسخه بعدی ایده خوبی باشه ...
یكی اینكه ما تا به حال در سیستم هایی كه كار كردیم ، و خودتون هم با اونها مواجه بودید ، برخی مقادیر فیلد ها رو باید به صورت (فقط) انگلیسی وارد كرد ، مثل فیلد های email , username , password ... البته در برخی سیستم ها ممكنه اجازه برای وارد كردن فیلد های با مقادیر فارسی هم وجود داشته باشه ولی اگر این امكان بتونه ایجاد بشه كه اون فیلد فقط مقادیر انگلیسی رو بپذیره و از ورود كاراكتر های فارسی جلوگیری كنه خیلی بهتر می شه ... این كار می تونه با یك علامت EN كه Disable هم شده باشه انجام بشه ... همین طور در این صورت direction هم باید حتما به LTR تبدیل بشه ... و اون هم قابل تغییر نباشه ... (به دلیل وجود كاراكتر های فقط انگلیسی)

ایده های دیگه ای هم می شه در این قالب ایجاد كرد كه می تونه مفید باشه ... یه ایده دیگه می تونه دریافت یك تاریخ شمسی به صورت on time validator باشه یعنی یه فیلد ورود تاریخ شمسی كه اولا فقط مقادیر عددی انگلیسی رو بپذیره و در ثانی تعداد ۸ كاراكتر رو حداكثر بپذیره (می گم ۸ كاراكتر چون دو تا كاراكتر / به صورت پیشفرض در خود فرم قرار می گیره و لزومی به ورود اون نیست) ... اگر مایل باشید من خودم هم می تونم تو این مورد كمك كنم ...

بازم ممنون از script بسیار كاربردی تون ...

فرهاد سخایی
Farhad Sakhaei
 

smehdi118

New Member
اسکریپت تاریخ شمسی

من یک مشکل دارم. میخواهم یک اسکریپت برای تاریخ شمسی در فرانتپیج که اتوماتیک هر روز آپدیت بشه. لطفا مراحل قرار دادن آن را در کد توضیح دهید.
 

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

بالا