کارت پستال


در این سوال قصد داریم برای یک سایت تولید کارت پستال امکان فارسی کردن ارقام را بگذاریم.

شرکتی خدمات کارت پستال ارائه می‌دهد. این شرکت به تازگی سایتی ساخته‌است که با وارد کردن متنی که می‌خواهید، می‌توانید کارت پستال آن را به صورت html مشاهده کنید.

اما یکی از مشکلاتی که دارد ارقام انگلیسی است. به همین دلیل تصمیم گرفته‌است که تمام ارقام انگلیسی از 0 تا 9 داخل متن را، هنگام نمایش به فارسی تبدیل کند و نمایش دهد.

پروژه اولیه را می‌توانید از اینجا دانلود کنید.

ساختار پروژه به شکل زیر است:

├── Company
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── postal_card
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── static
│   │   └── CSS
│   │       └── intro.css
│   ├── templates
│   │   └── postal_card.html
│   ├── templatetags
│   │   ├── __init__.py
│   │   └── filters.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── requirements.txt
Plain text

جزئیات🔗

اپ اصلی پروژه postal_card است که داخل آن کدهایی که کارت پستال را تولید می‌کنند وجود دارد. همچنین پروژه دارای یه url اصلی است که کارت پستال را تولید می‌کند و آدرس آن postal_card/ است که یک پارامتر به نام text می‌گیرد و مقدار آن متن داخل کارت پستال را مشخص می‌کند.

برای مثال آدرس‌های postal_card/?text=this-is-card-postal1/ و postal_card/?text=this%20is%card-postal%20with%20spaces/ به ترتیب متن‌های this-is-card-postal1 و this is card-postal with spaces تولید می‌کنند.

حال وظیفه‌ی شما تبدیل ارقام انگلیسی داخل متن به ارقام فارسی است. به عنوان مثال متن 22 شهریور روز برنامه‌نویس مبارک باید به متن ۲۲ شهریور روز برنامه‌نویس مبارک تبدیل شود.

اما با توجه به اینکه نمی‌خواهیم به کد‌های view و url مان دست بزنیم و منطق پشت کد دست‌نخوره باقی بماند، شما باید تغییرات را در فایل‌های templates/postal_card.html و templatetags/filters.py داخل اپ postal_card قرار دهید.

نکات🔗

  • شما تنها مجاز به تغییر دو فایل گفته شده هستید و اگر تغییری در سایر فایل‌ها ایجاد کنید، این تغییرات نادیده گرفته خواهد شد.
  • پس از اعمال تغییرات، کل پروژه را Zip کرده و ارسال کنید.
  • نام فایل Zip اهمیت ندارد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.