همانطور که در خبر "نقشه راه و مسیر سازگاری پرستاشاپ 1.7 با زبان های راستچین" گفته بودیم، این نقشه راه اکنون در بلاگ توسعه دهندگان پرستاشاپ منتشر شده است که ترجمه آن را در ادامه می خوانید:
یک آپدیت برای پروژه راست چین سازی 1.7
چندی پیش آغاز پروژه ای را اعلام کردیم که پرستاشاپ را با زبانهای راست چین (RTL) سازگار تر می کرد. در حال حاضر نیز جامعه کاربری کوچکی داریم که بر آنچه میگذرد نظارت میکنند (ممنون از شما!). برای اطمینان پیدا کردن از اشتراک اطلاعات توسط همه در یک سطح، مرحلهای که هماکنون در آن قرار داریم به شرح زیر است.
انتخاب یک روش: اسکریپت RTL
بحثی پیرامون بهترین روش برای سازگاری بیشتر پرستاشاپ با زبانهای راست چین شکل گرفت. در زیر میتوانید روشهای متعددی که بررسی و تست شدند و دلیل اینکه ما روش اسکریپت را برگزیدیم، مشاهده کنید.
روش 1.6
در پرستاشاپ 1.6، متد انتخاب شده استفاده از bi-app (یا یک پکیج مشابه) برای سازگاری فایلهای SASS (فایل های پیش پردازش شده CSS) با راست چین بود.این روش متکی بر یک برنامه سوم با اسکریپت بود که همه ی نیازهای ما را برآورده نمی کرد، اضافه بر آن نیازمند برخی شخصی سازی ها بود.
مزایا | - از این روش در پرستاشاپ 1.6 استفاده میکردیم |
معایب | - نیازمند توسعه مازاد است - اگر آن را شخصی سازی کنیم، نگهداری و به روز رسانی آن سخت خواهد شد - تمامی فایلهای کیت UI و SCSS باید با دوجهته سازگار باشند (به هر حال این مسأله ما خواهد بود) - نیازمند فایلهای تکراری یا اوررایدها می باشد |
روش دستی
روش دیگر ایجاد دستی فایلهای SCSS برای راست چین است. نگه داری در این روش بسیار سخت خواهد بود، چرا که هربار یک فایل SCSS تغییر می کند، باید برای فایل راست چین SCSS نیز تکرار شود.
مزایا | - کنترل کامل بر روی آنچه در حال انجام است |
معایب | - هر بار که تغییری در یک فایل CSS ایجاد می شود، باید این تغییرات تکرار شوند (روی فایلهای LTR و RTL) |
روش اسکریپت
آخرین روش، استفاده از اسکریپت PHP برای سازگاری فایلهای CSS نهایی با راست چین می باشد. کتابخانه مرتبط در محتویات هسته پرستاشاپ قرار میگیرد تا همیشه در دسترس باشد. ما از آن هنگام نصب یا فعال سازی یک زبان راست چین استفاده میکنیم تا فایلهای CSS راست چین تولید شوند.
این روش انتخاب شده برای نسخه 1.7 می باشد.
مزایا | - استفاده از یک اسکریپت برای مدیریت تمامی فایلها - فایلهای راست چین فقط در مواقع لزوم تولید میشوند (نه فایلهای چپ چین) - نگه داری سادهتر - قالب مشارکت کنندگان میتواند از این روش بهره ببرند تا با راست چین سازگار باشند |
معایب | - اسکریپت باید در هر شرایطی پاسخگو باشد - ما باید مانع تولید کدهای تکراری شویم |
برای مثال، ما یک فایل theme_rtl.css و یک فایل theme.css خواهیم داشت. هنگامی که فایل theme_rtl.css لود میشود دیگر فایل theme.css لود نخواهد شد. در حال حاضر، همانطور که ما (تیم آی پرستا) قبلاً پیشنهاد داده بودیم، پرستاشاپ هر فایلی که _rtl.css داشته باشد را به جای فایل اصلی آن لود خواهد کرد.
گزینه های فونت
زبانهای راست چین دست خطهای متفاوتی را استفاده میکنند (مجموعه ای از کاراکترهای نوشتاری، برای مثال زبان فارسی همانند زبان عبری نوشته نمی شود) و هر خطی برای خوانایی بهتر مستلزم فونت مناسب آن است. بنابر این ما باید برای هر دو بخش مدیریت و قالب کلاسیک، برای زبان راست چین انتخاب شده فونت را سازگار کنیم.
فونتهای پیشنهادی در حال حاضر اینها هستند:
برای فارسی: فونت وزیر
برای عربی: فونت دروید کوفی عربی یا شاید هم نوتو کوفی عربی
برای سایر زبان ها، اگر فونتی مشخص نشده باشد، پیشفرض فونت نوتو سنز استفاده خواهد شد.
https://www.google.com/get/noto/#sans-lgc
اگر میخواهید فونت خاصی را برای یک زبان راستچین، یا زبان عربی که هنوز برای آن تصمیم گیری نشده، پیشنهاد کنیدلطفا نظر خود را در برد ترلو ارسال کنید (https://trello.com/c/FI0ri5Ev/1-fonts) یا نظر خود را همینجا بگذارید! ما از پیشنهادها شما استقبال میکنیم :)
آیکون ها
پرستاشاپ 1.7 از متریال آیکون استفاده میکند (https://material.io/icons) که در آن آیکون ها با content آنها به جای یک کلاس مشخص تعیین می شوند. این موضوع تشخیص آیکون های نیازمند به راست چین شدن را در CSS بسیار دشوار میکند. با توجه به این مسئله، ما یک کلاس CSS به آیکون های چپ چینی که نیاز به راست چین سازی در زبان راست چین را ندارند اضافه خواهیم کرد.
تقویم خورشیدی (برای ایران)
ایران دارای تقویم منحصر به فرد خود می باشد، تقویم جلالی. برای کاربران ایرانی ما یک نوع جدیدی از تقویم را اضافه خواهیم کرد. انتخاب تقویم نیز بر اساس کشور کاربر صورت میپذیرد (= بنابر این اگر کشور فروشگاه روی ایران تنظیم شده باشد، تقویم پیشفرض تقویم خورشیدی خواهد بود).
یک گزینه نیز برای انتخاب نوع تقویم در صفحه بومی سازی ها قرار خواهد گرفت تا کاربر بتواند انتخاب کند چه نوع تقویمی را میخواهد در فروشگاه خود نمایش دهد. در همین زمان، کارمندان نیز قادر خواهند بود نوع تقویم نمایش داده شده در صفحه مدیریت خود را از طریق صفحه کارمندان انتخاب کنند اگر نیاز داشته باشند تقویمی متفاوت از تقویم پیشفرض فروشگاه استفاده کنند (= تقویم جلالی برای ایران، تقویم میلادی برای سایر).
اگر نیاز دارید نوع خاصی از تقویم به پرستاشاپ اضافه شود الان زمان خوبی برای صحبت در این مورد است!
یک کلاس جدید (به نام “pdate”، برای تاریخ فارسی) معرفی خواهد شد که کار تبدیل تاریخ بین دو تقویم و ذخیره آن در دیتابیس را به عهده خواهد داشت. این تبدیل یکبار برای تبدیل تاریخ شمسی به میلادی و یک بار برای نمایش تاریخ های ذخیره شده میلادی به صورت شمسی اعمال خواهد شد.
توسعه در گیت هاب
پروژه راست چین سازی باز است و هر کسی میتواند روند پیشرفت آن را در شاخه مخصوص راست چین سازی در گیت هاب دنبال کند:
https://github.com/PrestaShop/PrestaShop/tree/rtl.
اگر دوست دارید مشارکت داشته باشید، خوشحالمان می کنید. لطفاً برای ایجاد pull-request درنگ نکنید. فقط به یاد داشته باشید، ما از متد 3 استفاده می کنیم: روش اسکریپت PHP.
اسکریپت مورد اشاره در 4 آگوست (13 مرداد ماه 96) به گیت هاب ارسال خواهد شد، و همه شما دعوتید تا با نظرات و ارسال های خود به پیشرفت آن کمک کنید، همه چیز را خواهید دید.
ما مشارکت کننده های زیادی از ایران و تعدادی از تونس داریم و دوست داریم از سایر کشورها نیز مشارکت کننده هایی داشته باشیم. مثلاً برای زبانهای مالزیایی و عبری :)
لطفاً نظرات خود را با ما به اشتراک بگذارید.