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

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

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

پروژه اولیه

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

postcard
├── 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 قرار دهید.

تست نمونه

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

تست‌ها را می‌توانید با دستور زیر اجرا کنید:

python manage.py test
Shell
terminal

نکات

  • شما تنها مجاز به تغییر در templatetags/filters.py و templates/postal_card.html هستید. اگر تغییری در سایر فایل‌ها ایجاد کنید، این تغییرات نادیده گرفته خواهد شد.
  • فراموش نکنید که می‌توانید با مطالعه‌ی testsample.py با روش تست کردن آشنا شوید.

نحوه ارسال

یک فایل ZIP حاوی همه‌ی فایل‌های پروژه، آپلود کنید. نام فایل ZIP اهمیتی ندارد.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.