تبلیغات
آموزش - مطالب ASP/VB/.NET/DELPHI

Cross-Browser چیست؟


Cross-Browser در واقع به این معناست که کد های HTML و CSS و کد های Client Side نوشته شده در یک وب سایت، به شکلی نوشته شوند که در تمامی مرورگرها Browsers به یک فرم دیده شده و قابل اجرا باشند از مرورگرهای متداول می توان به نسخه های اینترنت اکسپلورر یا IE مایکروسافت ، فایرفاکس موزیلا ، کروم گوگل ، سافاری اپل ، اپرا و ... اشاره کرد.
عمل Cross-Browser یک عمل چالش برانگیز برای یک طراح وب است زیرا باید سایت خود را به گونه ای توسعه دهد که تمامی کاربران با هر نوع مرورگری از هر کجای دنیا بتوانند تمامی قسمت های سایت را مورد بازدید قراردهند و قسمتی را از دست ندهند، این عمل معمولا یکی از اصول پایه طراحی وب به شمار می رود.
وب سایتها و نرم افزار هایی نیز برای تست وب سایت های طراحی شده با این قابلیت به وجود آمده است از جمله این نرم افزار های و سرویس دهنده ها می توان به وب سایت http://crossbrowsertesting.com اشاره کرد، که البته استفاده از آن برای مدت محدودی رایگان بوده و استفاده برای کاربران حرفه ای نیاز به پرداخت هزینه دارد.


اعداد فارسی در ASP.NET


همان طور که می توانید در این سایت ببینید، تقریبا کلیه اعداد بصورت فارسی نمایش داده شده اند. بعبارت دیگر بجای "1 فروردین 1381" عبارت "۱ فروردین ۱۳۸۱" نمایش داده شده است. همچنین اعداد درون متن مقالات هم به فارسی است.

افرادی که از یونیکد استفاده کرده اند می دانند که اگرچه یونیکد تقریبا مشکل خط فارسی را حل کرده است اما مشکل تایپ اعداد فارسی در صفحه کلیدهای موجود، همچنان وجود دارد. دقت داشته باشید که مشکل در تایپ است و نه در یونیکد. بعبارت دیگر اعداد فارسی در جدول حروف یونیکد وجود دارند و حتی اعداد فارسی و عربی از یکدیگر متمایز شده اند. یعنی اعداد فارسی در یونیکد بصورت "۰۱۲۳۴۵۶۷۸۹" و اعداد عربی بصورت "٠١٢٣٤٥٦٧٨٩" می باشد.

حتما متوجه اختلافات ظاهری مثلا در مورد اعداد چهار، پنج و یا شش می شوید. علاوه بر این اختلاف ظاهری، باید توجه داشته باشید که اصولا این دو رشته عدد کاملا از یکدیگر بواسطه کد یا شماره انتسابی به آنها یا CodePage کاملا متفاوتند. این تفاوت در بانک های اطلاعاتی و مسائل مربوط به مرتب سازی متون مؤثر است.

رای حل این مشکل  دو روش در نظر گرفته شده است. باز هم دقت کنید که ما قصد صدور نسخه قطعی را نداشته و نداریم و تنها تجربیات خود را که جواب هم داده است را بیان می کنیم. مطمئن هستیم که روشهای متعدد و بهتری هم ممکن است برای حل این مشکل وجود داشته باشد اما این را هم می دانیم که روش های حل مسائل همواره سخت ترین روشها نیستند. بلکه گاهی اوقات روش های ساده هم می توانند مشکلات ما را تا حد قابل قبولی حل نمایند.

بطورکلی ما با دو نوع نمایش عدد مواجه هستیم. یکی نمایش بصورت تایپ دستی و دیگری نمایش از طریق برنامه، مثلا خواندن از بانک اطلاعاتی یا محاسبه تاریخ شمسی از روی تاریخ میلادی.

روش دستی

برای نمایش نوع دستی یک روش دستی ساده و احتمالا وقت گیر داریم. و آن استفاده از جدول (نقشه) حروف ویندوز یا Character Map است. برای اینکار ابتدا از طریق منوی Start->Programs->Accessories->System Tools->Character Map برنامه مزبور را اجرا می کنیم. در لیست مقابل عبارت Font، فونت مورد نظر خود مثلا Times New Roman را انتخاب می کنیم. حال در جدول حروف، کلیه حروف با شکل این فونت را می توانیم ببینیم. دقت داشته باشید که در اینجا بحث فونت اصلا مهم نیست. بلکه آنچه مهم است انتخاب فونتی است که یونیکد باشد مثلا همین Times New Roman یا Tahoma.

حال باید لیست اعداد فارسی را با جستجوی چشمی پیدا کنیم. این کار با سه بار کلیک بر روی ScrollBar کنار جدول قابل انجام است. در اینجا باید بتوانیم ابتدا اعداد عربی و سپس فارسی را (با اختلاف چند حرف میان آنها) ببینیم. با انتخاب عدد مورد نظر و سپس فشردن کلید یا دکمه Select، عدد مورد نظر در پائین جدول و مقابل ورودی Characters to copy ظاهر می شود. مثلا برای عدد ۱۳۸۱ باید ابتدا عدد ۱، سپس عدد ۳، سپس عدد ۸ و بالاخره عدد ۱ را انتخاب کنیم.

حال عدد مورد نظر تایپ شده است و می توانیم آن را به متن مورد نظر در یک برنامه دیگر منتقل کنیم. جهت این کار کافی است با فشردن کلید یا دکمه Copy در همان پنجره جدول حروف، آن عدد را به حافظه ویندوز بسپاریم و با برگشت به متن و برنامه مورد نظر مثلا Word و انتخاب گزینه Edit->Paste یا زدن کلید Ctrl+V عدد مذکور را در محل مورد نظر قرار دهید.

روش برنامه ای

در این روش، مثلا عدد لاتین را از بانک اطلاعاتی خوانده ایم یا اینکه از طریق یک تابع تبدیل مثلا تابع تبدیل تاریخ یا هر روش دیگری بدست آورده ایم. جهت نمایش اعداد بصورت فارسی باید اعداد مذکور را بوسیله یک تابع تبدیل ساده، به شکل فارسی تبدیل کنیم. بنابراین کار را به اینجا محدود می کنیم که یک تابع تبدیل اعداد انگلیسی به فارسی را بنویسیم. حتما می دانید که کد اعداد انگلیسی بین 48 و 57 است. اگر در جدول حروف یونیکد دقت کنید کد اعداد فارسی هم از 1728 شروع می شود. بنابراین کافی است که به محدوده اعداد انگلیسی مقدار 1728 اضافه نمائیم. تابع زیر به زبان VBScript این کار را انجام می دهد:

Function En2Fr (sStr) Dim nLen, i, ch, sFrStr
nLen = Len(sStr)
if nLen = 0 OR IsNull(nLen) then
En2Fr = sStr
Exit Function
end if
sFrStr = ""
for i = 1 to nLen
ch = Mid(sStr, i, 1)
if 48 <= Asc(ch) AND Asc(ch) <= 57 then
ch = ChrW(Asc(ch) + 1728)
end if
sFrStr = sFrStr + ch
next
En2Fr = sFrStr
End Function

می توانید این تابع را در یک فایل مجزا قرار داده و با استفاده از SSI یا فایل های ضمیمه، آن را در کلیه فایل های سایت تان ضمیمه کنید. نحوه استفاده از این تابع می تواند بصورت زیر باشد:

Response.Write En2Fr("0123456789")

یا

sometext = "1381 فروردین 1"

Response.Write En2Fr(sometext)

معادل این تابع را می توان با هرزبانی نوشت و استفاده کرد. همچنین می توان تابعی نوشت که عمل عکس این کار، یعنی تبدیل اعداد فارسی به انگلیسی را انجام دهد.

دقت داشته باشید که این تابع می تواند خیلی کاملتر از این باشد. بعبارت دیگر این تابع در مورد علامت ممیز ("." به "/") هیچ کاری نمی کند.


  • کل صفحات:6  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  •   


آموزش با نگرشی نوین

گروه آموزش

مترجم سایت


آخرین پست ها


آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
  • رتبه وبلاگ در یاهو و گوگل:

    Yahoo bot last visit powered by  Ybotvisit.com

    رتبه وبلاگ در گوگل

  • SEO Stats powered by MyPagerank.Net

  • افراد آنلاین :

    web stats

  • IP free counters