نحوه فارسی سازی اعداد در کل سایت با استفاده از فونت و کتابخانه Javascript

تاریخ: 7 سال قبل
نحوه فارسی سازی اعداد در کل سایت با استفاده از فونت و کتابخانه Javascript

نمایش اعداد به صورت فارسی در کل سایت:
شاید بخواهید در وبسایتتان اعداد به جای نمایش انگلیسی (1,2,3) به صورت فارسی (۱,۲,۳) نمایش داده شوند.
برای حل این مشکل هم باید تغییراتی در Css و هم تغییراتی در خود کاراکتر‌های عددی ایجاد کنید

1- یک فونت فارسی (مثل IRANSans) را باید توسط font-face به CSS داستان خود اضافه کنید که اگر روی کامپیوتر یا گوشی کاربر نبود درست دیده شود

@font-face { font-family: IRANSans; font-style: normal; src: url('../fonts/IRANSans/IRANSans.eot');

نکته : سایر فونت‌های B و IR فونت‌های مخصوص نوشتاری هستند و برای وب مشکلاتی دارند و بهتر است از فونت‌های بهینه شده برای وب استفاده کنید
مانند : BBCNassim, IRANSans, ArabicNaskh و یا فونت‌های اصلاح شده Titr, Yekan, Trafic و …

2- همانطور که میدانید کد اسکی (ASCII) اعداد انگلیسی با فارسی متفاوت است
برای تغییر کارکتر اعداد انگلیسی به فارسی به طور کلی 2 راه وجود دارد.
الف – تغییر در سمت سرور و به هنگام رندر شدن صفحه
ب – تغییر در سمت کلاینت توسط جاواسکریپت

کتابخانه جاواسکریپتی کار سمت کلاینت آن را انجام می‌دهد
https://github.com/Maghrooni/persianNumbers
مثال : خروجی متد persianNumbers همیشه اعداد با کاراکتر‌ها فارسی را نمایش میدهد

 $.persianNumbers("این متن شامل اعداد1234 فارسی می‌باشد 12344")

ولی هدف ما در اینجا تغییر اعداد انگیسی به معادل فارسی آن در سمت سرور است برای Asp.net mvc
برای این کار نیز روش‌های مختلفی وجود دارد که 2 مورد از آنها را آورده ام

1- کتابخانه En2FaConvertor.cs را از این لینک دانلود و به پروژه خود اضافه کنید
این کلاس یک ActionFiter است و وظیفه آن تبدیل اعداد به فارسی در زمان Exectue شدن اکشن (در متد OnResultExecuted) می‌باشد.
نکته : فراموش نکنید که این Filter را به صورت سراسری در متد Application_Start اضافه کنید تا در کل پروژه برای همه اکشن‌ها اعمال شود
2- کتابخانه En2FaViewResult.cs را از این لینک دانلود و به پروژه خود اضافه کنید
این کلاس یک ViewResult (نوعی از ActionResult) می‌باشد که وظیفه آن نیز تبدیل اعداد به فارسی به هنگان رند شدن View می‌باشد
نکته : برای استفاده از آن فقط کافیست نوع خروجی اکشن خود را En2FaViewResult قرار دهید.
مقاله زیر توانسته با استفاده از همین روش در ActionFilter‌ها، کلمات کلیدی دلخواه خود را رد صفحه Highlight کند.
به عنوان مثال از این روش میتوانید برای Highlight کردن کلمه سرچ شده به هنگام نمایش نتایج جستجو به کاربر استفاده کنید.