تقویم ایرانی، افزونه وردپرس

وردپرس پر استفاده‌ترین CMS دنیا هست و کاربران زیادی هم تو ایران داره، چند ساله گذشته قدم‌های خوبی برای بومی‌سازی‌ش برداشته شده، مهمترین کارها رو هم تیم ورپرس فارسی کرده. 

سیستم وردپرس برای ساپورت از چندین زبان ساده‌ست. ترجمه‌ی رشته‌ها در قالب فایل po داخل دایرکتوری wp-content/languages قرار میگره و صفحه‌ی مدیریت وردپرس هم یه استایل راست به چپ داره. وقتی زبان رو مثلا fa_IR داخل فایل کانفیگ وردپرس (wp-config)  انتخاب کنم، فایل fa_IR.po فراخونی میشه و چون fa (فارسی) یه زبان راست به چپ هست استایل راست به چپ برای مدیریت لود میشه. البته کاملا مطمعن نیستم همچین فرایندی داشته باشه ولی تو همین مایه‌ها هست!

مشکلی که با وردپرس دارم فارسی بودنش نیست چون اصلا روی سایت‌هام از وردپرس فارسی استفاده نمی‌کنم و دلیلش ظاهر راست به چپ افتضاح قسمت مدیریت هست؛ چون یه عده فکر می‌کنن راست به چپ یعنی یه direction:rtl از اول تا آخر بندازی توی css ! بومی سازی برای کاربرهای ایرانی فقط به ترجمه و ظاهر راست به چپ هم خلاصه نمیشه. چون ما تقویم رسمی‌مون هجری خورشیدی هست  و وردپرس از میلادی استفاده می‌کنه، باید تاریخ‌ها پست و کامنت رو تبدیل کرد. وردپرس فارسی یه افزونه به اسم wp-jalali برای این منظور داره.

چند مشکل داره این wp-jalali:

  • ماژولار نیست. هر افزونه برای انجام یه کار نوشته میشه و باید اون‌کار و انجام بده و نه بیشتر. wp-jalali با این‌که اسمش تاریخ جلالی هست در کنار تبدیل تاریخ، عددها رو فارسی می‌کنه، کارکترها رو عوض می‌کنه و …
  • یه سریع از تابع‌هایی که استفاده کرده Depricate شدن
  • همه جا رو انگول می‌کنه: اسم، آدرس و خروجی فید wp-persian.com رو میزاره همه‌جا، حتی لوگوی ورود و خروج وردپرس رو عوض می کنه. شاید ما نخوایم اون سایت از بالا و پایین وردپرس‌مون بزنه بیرون.
  • گند میزنه به ادیتور (البته اگر وردپرس فارسی استفاده کنید گند وردپرس فارسی با گند این افزونه یه جورایی همدیگه رو خنثی می‌کنند!)
  • بیشتر یه مکمل برای وردپرس فارسی هست تا یه افزونه‌ی مستقل

خب حالا من یه افزونه‌ی جدید بر مبنای wp-jalali نوشتم و تنها کاری هم که انجام میده تبدیل تاریخ پست‌ها و کامنت‌ها به گاه‌شمار خورشیدی هست، جایی رو هم دستکاری نمی‌کنه. صحفه تنظیماتش رو با استفاده از Settings API وردپرس نوشتم (یعنی نسخه وردپرس‌تون حداقل باید ۲.۷ باشه) برای تبدیل تاریخ از کتاب‌خونه جلالی فارسی‌وب شریف استفاده می‌کنه و یه کتاب‌خونه جمع و جور برای تبدیل عددها که جناب فرهادی نوشته. 

یه نگاهی به کدها بندازید، آخرین نسخه‌ش رو از این‌جا بگیرید. به خوبی هم داره کار می‌کنه روی این وبلاگ.

یه todo list کوچیک هم این‌جا براش بنویسم که یادم نره

  • بومی‌سازی بهتره
  • تبدیل URI های بر مبنای تاریخ
  • تبدیل تاریخ با icu

تو نظرم هست دیگر امکانات wp-persian رو در قالب یک یا چند افزونه‌ی دیگه منتشر کنم. منتظر نظرات و پیشنهاداتون هستم :)

دسته‌ها: متن باز
برچسب‌ها: , ,

6 نظر به تقویم ایرانی، افزونه وردپرس

  1. آفرین به تو ساسان. خیلی خوشحالم که این قذم رو برداشتی.

  2. افشین

    کار مفیدی است.
    متشکرم.

  3. سلام آقا ساسان
    من بطور اتفاقی و بصورت انحاصی این اولین پست وبلاگتان است که میخوانم
    شاید باورتون نشه اما اونقدر از کارتون خوشحال شدم که نمیدونم چی بگم
    با افتخار شما رو جز دوستان قرار میدم و به زودی از کد شما به جای افزونه جلالی در بلاگم استفاده میکنم
    موفق باشید دوست خوبم
    برای اون راست به چپ هم اگه پوشه language و فایل fa_IR.php را مشاهده بفرمائید متوجه میشید که از اینجا دستون راست به چپ میگیره
    موفق باشی

  4. سلام
    من که از دست این تقویم جلالی کفری شده بودم. سالهاست که آپدیت نشده و مشکلات زیادی با تم ها و پلاگینهای جدید داره.
    ممنون

  5. عبدالله

    سلام. افزونه شما رو نصب کردم اما هنگام فعال کردنش متاسفانه ارور داد و فعال نشد. پیامی که داد این بود
    Warning: require_once(__DIR__/libs/jalali-core.php): failed to open stream: No such file or directory in /hsphere/local/home/c277845/bidary.net/wp-content/plugins/sasy360-Iranian-Calendar-for-Wordpress-4bc0b0d/iraniancal.php on line 13 Fatal error: require_once(): Failed opening required ‘__DIR__/libs/jalali-core.php’ (include_path=’.:/hsphere/shared/apache/libexec/php5ext/php/’) in /hsphere/local/home/c277845/bidary.net/wp-content/plugins/sasy360-Iranian-Calendar-for-Wordpress-4bc0b0d/iraniancal.php on line 13
    وردپرسم هم نسخه 3.3.1 هست.

    • ساسان

      باید نسخه phpـی که نصب دارید حداقل ۵.۳ باشه. البته تنها چیز خاصی که از ۵.۳ استفاده کردم __DIR__ هست. سعی می‌کنم تا چند روز دیگه این مورد رو بهبود ببخشم و اولین نسخه این افزونه رو هم منتشر کنم.

دیدگاه شما

آدرس email شما منتشر نخواهد شد.

*

شاید این تگ‌ها به درد بخوره: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>