| فارسی سازی سیستم مدیریت محتوای جوملا 1.0 |
|
| 25 تیر 1387 ساعت 19:41 | |
|
یکی از بزرگترین مشکلاتی که در اوایل کار با سیستم مدیریت محتوای جوملا خودنمایی کرد مسئله مشاهده داده های فارسی در نرم افزار phpmyadmin بود. همچنین این مشکل در واسط گرافیکی mysql administrator نیز وجود داشت. در آن زمان مشکل خود را از طریق مقاله ای در سایت اکسیژن حل کردم که نتیجه آن جایگزینی چند فایل در برنامه phpmyadmin بود. اما پس از مدتی با بررسی این 2 نرم افزار و سیستم مدیریت پایگاه داده MySQL متوجه شدم که قابلیت ذخیره و مشاهده داده فارسی در آن ها وجود دارد. پس مشکل در کجا بود؟! با مقداری جستجو در اینترنت سرانجام مشکل حل شد! در حقیقت جوملا 1.0x به صورت پیش فرض داده ها را به فرمت utf-8 به پایگاه داده ارسال نمی کند.(این مشکل در جوملا 1.5 حل شده است.) گرچه این پیش فرض وجود ندارد اما گویا طراحان هوشیار این CMS بستر لازم را در زمان توسعه این ورژن فراهم کرده بوده اند!
پس در صورتی که حتی اقدام به استفاده از نسخه فارسی شده این CMS از سایت joomla.ir و یا سایت های نظیر آن می کنید که به این نکته توجه نکرده اند لازم است شخصا تغییراتی را در CMS صورت دهید. پیش فرض را بر این می گذارم که قرار است نسخه اصلی CMS را که از سایت joomla.com دریافت کرده اید جهت درج داده های فارسی بروز رسانی کنیم. پس مراحل زیر را به ترتیب طی نمایید. :
1.فرمت صفحات شما به صورت پیش فرض باید روی utf-8 قرار بگیرد (می توانید آن را در قسمت encoding مرورگر خود چک نمایید)
![]()
/** templates/*.php */ مقدار پیش فرض آن در نسخه اصلی عبارت است از : iso-8859-1 تا نهایتا داشته باشید : /** templates/*.php */ سپس فایل را ذخیره کرده و صفحه راrefresh کنید. باید مرورگر به طور اتوماتیک encoding utf-8 را انتخاب کند (مانند تصویر بالا)
2. ارتباط با پایگاه داده باید به صورت utf-8 باشد. به عبارت دیگر باید جوملا داده ها را به فرمت utf-8 برای پایگاه داده بفرستد. به این منظور وارد پوشه include شوید و فایل database را باز کنید. عبارت [utf8] راجستجو کنید. پس از یافتن خط زیر: ;(mysql_query("SET NAMES 'utf8'", $this->_resource@// علامت comment آن را پاک کنید (//) : ;(mysql_query("SET NAMES 'utf8'", $this->_resource@ فایل را ذخیره کنید. از این پس داده ها به فرمت utf-8 به پایگاه داده ارسال می شوند.
3.مرحله آخر مرحله تبدیل جنس فیلدهای آن دسته از جداول پایگاه داده است که می خواهیم در آن ها داده فارسی ذخیره کنیم. به عنوان مثال به کمک phpMyAdmin ساختار جدول jos_users را ملاحظه کنید:
![]()
![]()
و سپس نتیجه را ذخیره می کنیم. از این پس اگر کاربری در سایت عضو شود و نام خود را فارسی وارد کند، در نرم افزار phpmyadmin نیز این نام فارسی ذخیره شده و قابل مشاهده خواهد بود. مراحل فارسی سازی به اتمام رسیده است اما توجه به چند نکته زیر نیز ضروری به نظر می رسد : - در اینجا تنها فیلد name از جدول کاربران را تغییر collation دادیم. اما قسمت های دیگری نیز در CMS هستند که ممکن است فارسی نام گذاری شوند. مثلا منوها. بنابراین لازم است تا جدولjos_menu را نیز بررسی کنید. در حالت کلی این کار برای هر جدولی که قرار است در آن داده فارسی قرار گیرد لازم است. ممکن است خسته کننده بنظر بیاید اما تنها یکبار انجام می شود و در عوض همواره داده های شما به صورت اصولی و صحیح در جداول قرار خواهند گرفت. |



