PDA

View Full Version : چگونگی ساخت چند زبانه



mostafa_shoakry
یک شنبه 02 شهریور 1393, 21:44 عصر
سلام خدمت اساتید محترم
من می خوام یه سایت چند زبانه بنویسم ولی دقیقا نمی دونم ساختارش چجوری هست.
مثلا پنل مدیریتش چجوری خواهد بود؟ آیا برای هر زبان یدونه پنل مدیریت بزنم؟
قسمت دیتا بیس چی؟ اونم باید چنتا دیتابیس جداگانه بزنم؟
برای خوندن هر زبان هم باید یدونه Controller درست کنم؟
اگه میشه منو یکم در این مورد راهنمایی کنید . ممنون میشم :قلب:

SlowCode
دوشنبه 03 شهریور 1393, 22:57 عصر
سلام

مثلا پنل مدیریتش چجوری خواهد بود؟ آیا برای هر زبان یدونه پنل مدیریت بزنم؟
پنل مدیریت رو اگه فقط یه طیف مشخص(مثلا صاحب سایت) قراره استفاده کنن، نیازی به چندزبانه بودن نداره. ولی اگه پنل کاربر داره باید اونو هم چند زبانه درست کنی.

قسمت دیتا بیس چی؟ اونم باید چنتا دیتابیس جداگانه بزنم؟
واسه هر زبان نباید یه دیتابیس جدید درست کنی. چند راه متفاوت هست، مثلا:
در کنار فیلدهای مشخص که نیاز داری یه فیلد دیگه به نام lang_id درست کنی و موقع درج پست(توی پنل) یه DropDownList میزاری و توش زبان های سایت رو نمایش میدی. حالا موقع واکشی اطلاعات میای بر اساس زبان فعلی سایت بر اساس id پست های مربوط به زبان جاری رو بدست میازی.

برای خوندن هر زبان هم باید یدونه Controller درست کنم؟
نه کنترلرت ثابته! تو اون پکیج yii آقای شهرکی ساخت سایت دوزبانه رو یاد دادن، یه بار نگاش کن.
میای یه کنترلر جدید با محتویات زیر درست میکنی میزاری تو پوشه کامپوننت ها:

<?php
class MyController extends Controller
{
public function init()
{
parent::init();
$app = Yii::app();
if (isset($app->session['lang']))
{
$app->setLanguage($app->session['lang']);
}
}
}
?>
بعد تو همه کنترلرهات به جای extends کردن کلاس Controller میای MyController رو مینویسی، وگرنه بعد تنظیم زبان توسط کاربر اگه صفحه رو عوض کنه دوباره زبان به زبان پیشفرض برمیگرده.

پیشنهاد میکنم بعد از بازبینی آموزش آقای شهرکی سوال و جواب هایی که توی تاپیک مربوط به اون پکیج در مورد سایت چند زبانه شده رو هم مطالعه کنی.