در این سوال قصد داریم برای یک سایتِ تولید کارت پستال، امکان فارسی کردن ارقام را بگذاریم.
شرکتی خدمات کارت پستال ارائه میدهد. این شرکت به تازگی سایتی ساختهاست که با وارد کردن متنی که میخواهید، میتوانید کارت پستال آن را به صورت 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
جزئیات
اپ اصلی پروژه، 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
نکات
- شما تنها مجاز به تغییر در
templatetags/filters.py
وtemplates/postal_card.html
هستید. اگر تغییری در سایر فایلها ایجاد کنید، این تغییرات نادیده گرفته خواهد شد. - فراموش نکنید که میتوانید با مطالعهی
testsample.py
با روش تست کردن آشنا شوید.
نحوه ارسال
یک فایل ZIP حاوی همهی فایلهای پروژه، آپلود کنید. نام فایل ZIP اهمیتی ندارد.
ارسال پاسخ برای این سؤال