راه‌حل ساده برای رفع مشکل نمایش اعداد انگلیسی در وب فارسی

Tuesday، ۲۲ Mehr ۱۳۹۹

در همین ابتدا ذکر این نکته ضروریست که این راه‌حل ساده قرار است مشکل اعداد انگلیسی را برای کسانی که با کدنویسی و توابع PHP و جاوا اسکریپت و... آشنایی ندارند حل کند. حتما راه‌حل‌های دیگری وجود دارد که شامل تغییر در فونت نمی‌شود که در اینجا به آنها کاری نداریم.

یکی از این مشکلات متداول هنگام فارسی کردن پوسته‌های انگلیسی و یا استفاده از آنها این است که تمام اعداد به صورت انگلیسی دیده می‌شوند.

در گذشته‌ها که هنوز امکان ضمیمه کردن و استفاده از فونتهای دلخواه در وب وجود نداشت تاهوما معمولا تنها گزینه و خانه‌زاد وب فارسی بود. اما بعدتر که فونتهای دیگر مانند یکان و رویا و… کم کم جای خود را باز کردند، حالا طراحان و صاحبان سایتها دوست داشتند که اعداد مختلف مانند تعداد بازدیدها و دیدگاه‌ها و تاریخ و… همه فارسی باشند.

اگر شما با یک کیبورد استاندارد فارسی، اعداد را با کد درست به صورت فارسی تایپ کنید مشکلتان در هنگام وارد کردن و نوشتن متنهای خودتان مرتفع می‌شود اما باز هم اعداد درون پوسته که به عنوان مثال شامل متغیرها می‌شود را نمی‌توانید با این راه فارسی کنید.

راه حل سادهٔ فونتی:

برای این کار نیاز به موارد زیر داریم:

  • فونت فارسی دلخواه

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

  • نرم‌افزار ویرایش فونت

این برنامه‌ها در سراسر وب برای دانلود موجود هستند. برنامه ۹ FontCreator یا ۱۰ پیشنهاد می‌شود. برنامه FontForge هم به صورت آزاد در دسترس است.

حالا فونت را در برنامه فونت کریتور باز کرده و به بخش Numbers زیر Characters در ستون سمت چپ برنامه بروید. باید چیزی شبیه به این را ببینید:

۱۰ تایشان که لاتین هستند. اینها همان گلیف‌هایی هستند که وقتی شما متن فارسی را روی سایتتان می‌گذاشتید، از عالم غیب ظاهر می‌شدند و شما را آزار می‌دادند.

۱۰ تای دیگر اعداد عربی هستند که وقتی ماوس را روی آنها نگه دارید می‌بینید که پیشوند Arabic-indic دارند.

۱۰ تای دیگر اعداد فارسی و اردو هستند که پیشوند Extended arabic-indic دارند.

اگر همین الان دارید از خودتان می‌پرسید که خب تفاوت اعداد فارسی و عربی چه می‌تواند باشد؟ تفاوتش در تصویر بالا موجود است! اعداد چهار، پنج و شش در عربی و فارسی متفاوت نوشته می‌شوند.

برای این که تمام اعداد سایت یا بلاگ شما با فونت دلخواه‌تان کاملا فارسی باشد و هیچ گاه ریخت اعداد لاتین یا عربی را نبینید، به راحتی اعداد فارسی را انتخاب کرده و کپی کنید و بعد ابتدا ده عدد لاتین و سپس ده عدد عربی را جداگانه انتخاب کرده و عمل دشوار Paste را انجام دهید. حالا تمام اعداد شما ولو آنها را با کیبورد استاندارد فارسی بنویسید یا از جای دیگر کپی کنید یا در درون ابزارک‌ها و افزونه‌ها به طور کامل فارسی دیده خواهند شد.

پس از انجام مراحل بالا باید چیزی شبیه به این را در مونیتور خود ببینید:

اعداد ماهیت و کد یونیکد خود را حفظ می‌کنند. به این معنا که با کپی کردن اعداد فارسی بر روی اعداد لاتین یا عربی در هر برنامهٔ ویرایش فونت، اعداد متن یا نوشتهٔ درون پوسته تغییر نمی‌کنند و چنانچه فونت به هر دلیلی عوض شود دوباره اعداد به صورت سابق دیده خواهند شد. همچنین کادرهای جستجو و متغیرها هم همچنان اعداد لاتین را جستجو می‌کنند مگر از ابتدا نوشته‌ی شما اعداد فارسی داشته باشد.

در نهایت فونت خود را با فرمت woff برای وب خروجی بگیرید. در حال حاضر تمام مرورگرها (ی مدرن) فونتهای با این فرمت را پشتیبانی کرده و نمایش می‌دهند و دیگر نیازی به فرمت‌های نخ‌نمای eot و svg و یا ttf و otf (که بیشتر در نشر رومیزی به کار می‌روند) برای وب نیست.

همهٔ اینها به شرطی است که شما فونت مورد نظر خود را به درستی از طریق تنظیمات پوسته یا با کد font-face@ فراخوانی کرده باشید.

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