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

عددها بیشتر از هر چیز دیگری در رابط فارسی خراب میشوند: قیمتی با ارقام لاتین وسط متن فارسی، تاریخ میلادی در محصولی که کاربرانش شمسی فکر میکنند، یا «۲۵۰۰۰۰۰» که معلوم نیست دو و نیم میلیون است یا بیست و پنج میلیون.
این راهنما همهی قاعدهها را یکجا آورده، همراه با کدی که برای پیادهسازیشان لازم است.
ارقام
در متن فارسی، ارقام فارسی: ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹. ارقام لاتین فقط کنار کلمهی لاتین («iPhone 16») و در کد.
یک نکتهی فنی مهم: نمایش فارسی، ذخیره لاتین. در دیتابیس ارقام لاتین نگه دارید و فقط موقع نمایش تبدیل کنید. ورودیها هم باید هر سه نوع رقم را بپذیرند، چون کاربران ارقام فارسی، عربی (٠١٢) و لاتین را تایپ یا کپی میکنند.
جداکنندهها
| درست | نادرست | |
|---|---|---|
| هزارگان | ۱٬۲۵۰٬۰۰۰ | ۱,۲۵۰,۰۰۰ |
| اعشار | ۲٫۵ | ۲.۵ |
| درصد | ۲۵٪ | %25 |
| بازه | ۱۰ تا ۲۰ | ۱۰-۲۰ |
خوشبختانه لازم نیست اینها را دستی بنویسید. Intl.NumberFormat مرورگر همه را درست انجام میدهد:
new Intl.NumberFormat("fa-IR").format(1250000) // "۱٬۲۵۰٬۰۰۰"
new Intl.NumberFormat("fa-IR").format(2.5) // "۲٫۵"

پول
- یک واحد برای کل محصول: تومان یا ریال، و همیشه نوشتهشده. «۲۵۰٬۰۰۰» بدون واحد ابهام دارد.
- عدد بزرگ را کوتاه کنید: «۱٫۲ میلیون تومان» خواناتر از «۱٬۲۰۰٬۰۰۰ تومان» در جاهایی که دقت کامل لازم نیست.
- مبلغ به حروف در تایید پرداخت: «یک میلیون و دویست هزار تومان» زیر فیلد مبلغ، جلوی صفر اضافه یا کم را میگیرد.
- ورودی قیمت: هر نوع رقم را بپذیرد، جداکنندهها را خودش بگذارد و مکاننما را جابهجا نکند.
تاریخ
پیشفرض، شمسی. برای نمایش لازم نیست هیچ کتابخانهای نصب کنید:
new Intl.DateTimeFormat("fa-IR-u-ca-persian", { dateStyle: "long" }).format(new Date())
// "۱۸ آبان ۱۴۰۵"
- در جمله: «۱۸ آبان ۱۴۰۵».
- در جدول و ستون باریک: «۱۴۰۵/۰۸/۱۸».
- رویدادهای تازه: زمان نسبی، «۵ دقیقه پیش»، با تاریخ کامل در راهنمای کوچکی که با نگهداشتن ماوس دیده شود.
- ساعت: «ساعت ۱۴:۳۰».
برای انتخابگر تاریخ کار بیشتری لازم است: تبدیل شمسی و میلادی، شنبه بهعنوان اول هفته، جمعه تعطیل و تعطیلیهای رسمی. جزئیاتش را در راهنمای تقویم شمسی در وب نوشتهام.

شمارههای خاص
شمارهی کارت، شبا، موبایل و کد پستی چپبهراست نوشته میشوند تا گروهبندیشان درست بماند، ولی در رابط فارسی ارقامشان فارسی است. جهت و شکل رقم دو تصمیم جدا هستند. این شمارهها را در عنصری با unicode-bidi: isolate بگذارید تا در جملهی فارسی جابهجا نشوند.

طراح محصول و سازندهی دیزاینسیستم کاشی. سایتهای زیادی را با هوش مصنوعی ساختهام و چند سال اخیر روی ایجنتیک کردن فرایندهای هوش مصنوعی کار کردهام. اسکیلهای این سایت همانهاییاند که خودم هر روز با آنها کار میکنم.
بیشتر دربارهی منچیزی که خواندید را همین امروز به دستیارتان بدهید
همهی این اسکیلها با لایسنس دائمی، بهروزرسانی رایگان برای همیشه و راهنمای نصب برای همهی ابزارها.
یوایکس رایتر فارسی
متن رابط سایت و اپ شما را بازنویسی میکند یا از صفر مینویسد: دکمه، خطا، حالت خالی، اعلان، لحن برند و درستنویسی.
ساخت و توسعهی دیزاینسیستم فارسی
تجربهی ۲۱۵ کامیت ساخت کاشی در یک اسکیل: از توکن و RTL تا دادههای ایرانی، دسترسپذیری، تست تصویری و انتشار نسخه.