PDA

View Full Version : حرفه ای: سایت چندزبانه



sajadhashemlou
سه شنبه 25 مهر 1391, 15:45 عصر
با سلام
من میخواستم سایتم رو چند زبانه بکنم
دو راهکار به ذهنم میرسه

یا دیتابیساشونو جدا بکنم

که با if بگم کاربر en رو انتخاب کرد اطلاعات رو از فلان db بخون

یا بیام فیلد اضافه بکنم
مثلا نام رو هم فارسی بزنه هم انگلیسی

شما چه راهکار بهتری پیشنهاد میکنید

djsaeedkhan
سه شنبه 25 مهر 1391, 17:28 عصر
سلام
روش های مختلفی وجود داره. ولی چیزی که من دیدم و تست کردم و خب جواب هم گرفتم این بود که یه فایل داریم به اسم en و یه فایل داریم به اسم fa. در داخل اون ها اینجوری اطلاعات رو قرار میدیم.


fa:
define("user_name","نام کاربری");
define("pass_word","رمز عبور");

en
define("user_name","UserName");
define("pass_word","Password");

حالا توی سایت هرجا که خواستید از عبارت زیر استفاده می کنید

echo user_name;
کاربر زمانی که زبان رو انتخاب می کنه فایل مورد نظر داخل سشن اینکلود میشه و در سایت استفاده میشه. می تونید برای ثابت بودنش از کوکی هم استفاده کنید.
شاید این روش خیلی خوب هم نباشه ولی من تو سی ام اسه "ای کامِرس(E-commerce)" دیدم از این روش استفاده شده. اینجوری می تونید فایل رو به یکی بدید و به زبان های مختلف ترجمه کنید.
اگر روش بهینه تر از این پیدا کردید در همینجا بگذارید که بقیه دوستان هم استفاده کنن
با سپاس

sajadhashemlou
سه شنبه 25 مهر 1391, 17:41 عصر
این کار برای کلمات سیستمی خوبه
ولی برای اطلاعاتی مثل مقاله اصلا کارا نیست

یه راه حل بهتر سراغ نداری؟

djsaeedkhan
سه شنبه 25 مهر 1391, 18:05 عصر
این کار برای کلمات سیستمی خوبه
ولی برای اطلاعاتی مثل مقاله اصلا کارا نیست
یه راه حل بهتر سراغ نداری؟
میشه بیشتر توضیح بدید کلمات سیستمی چیه؟؟ اطلاعاتی مثل مقاله چیه؟؟؟

eshpilen
چهارشنبه 26 مهر 1391, 08:50 صبح
سلام
روش های مختلفی وجود داره. ولی چیزی که من دیدم و تست کردم و خب جواب هم گرفتم این بود که یه فایل داریم به اسم en و یه فایل داریم به اسم fa. در داخل اون ها اینجوری اطلاعات رو قرار میدیم.


fa:
define("user_name","نام کاربری");
define("pass_word","رمز عبور");

en
define("user_name","UserName");
define("pass_word","Password");

حالا توی سایت هرجا که خواستید از عبارت زیر استفاده می کنید

echo user_name;
کاربر زمانی که زبان رو انتخاب می کنه فایل مورد نظر داخل سشن اینکلود میشه و در سایت استفاده میشه. می تونید برای ثابت بودنش از کوکی هم استفاده کنید.
شاید این روش خیلی خوب هم نباشه ولی من تو سی ام اسه "ای کامِرس(E-commerce)" دیدم از این روش استفاده شده. اینجوری می تونید فایل رو به یکی بدید و به زبان های مختلف ترجمه کنید.
اگر روش بهینه تر از این پیدا کردید در همینجا بگذارید که بقیه دوستان هم استفاده کنن
با سپاس
منم چند وقت دیگه شاید بخوام واسه پروژم زبان فارسی بذارم.
فقط الان به ذهنم رسید که اگر بجای define از متغییرهای معمولی استفاده کنم این مزیت رو داره که توی رشته ها هم جایگزین میشن. مثلا:

echo "We have $tr_cats cats in the home";
اون پیشوند ‎tr‎‎_‎ رو اضافه کردم تا احتمال تداخل با متغییرهای عادی برنامه به حداقل برسه.

متغییر معمولی احتمالا از ثابت ها منابع بیشتری مصرف میکنه، ولی خب این مزیت رو داره. منم که از Variable interpolation (درج مستقیم متغییر در رشته ها) زیاد استفاده میکنم.

djsaeedkhan
چهارشنبه 26 مهر 1391, 14:15 عصر
سلام
خوب بهتر نیست از آرایه استفاده کنید که در آخر صفحه هم Unset کنید ؟

plague
چهارشنبه 26 مهر 1391, 14:28 عصر
معمولا از یه آرایه استفاده میکنن برای نگه داشتن کلمات در فایل زبان
---------

برای مقالات و محتویات داینامیک که در سایت وارد میشن هم باید از تیبل جدا استفاده کنی