PDA

View Full Version : یک سایت چند زبانه یا چند سایت یک زبانه



olampiad
سه شنبه 21 بهمن 1393, 00:19 صبح
سلام و خسته نباشید به دوستان عزیز
میخوام ی پروژه چند زبانه بنویسم ی سوال خیلی وقته که ذهنمو مشغول کرده.
من برای داشتم یک سایت با زبان های مختلف کدوم یک از راه های زیر رو انتخاب کنم بهتره؟
من میخوام سایتم رو به فارسی و انگلیسی و عربی ترجمه کنم. حالا:
یک سایت چند زبانه داشته باشم؟
منظورم از یک سایت یعنی سایتم یدونه باشه و هر محتوایی رو که وارد میکنم به سه زبان در فیلد های مجزا وارد کنم و دخیره کنم مثلا
سنگ به فارسی بشه سنگ
سنگ به فارسی بشه stone
سنگ به فارسی بشه الصخرة
وقتی که کاربر وارد سایت شد یا از cookie یا از url تشخیص بدم که زبان شخص کدام است و دنبال فیلد های همان زبان بگردم.
مثلا اگر زبان شخص انگلیسی بود دنبال فیلد های انگلیسی بگردم.
و ی چیزی تو این مایه ها
یا
چند سایت تک زبانه؟
مثلا ی سایت مجزا برای زبان فارسی و یه سایت مجزا برای زبان انگلیسی و ی سایت مجزا برای زبان عربی بسازم
وقتی که کاربر رفت بر روی تفییر زبان و زبان خاصیی رو انتخاب کرد مستقیم بره روی سایت همون زبان مورد نظر.

کدوم روش سرعت لود بالاتر و استانداردتر است؟
میشه تو این زمینه کمکم کنید و روش بهترو معرفی کنید؟

امیدوارم منظورمو متوجه شده باشین
مرسی

Unique
سه شنبه 21 بهمن 1393, 01:03 صبح
قطعا یک سایت چند زبانه.
اگه شما بخواین برای هر زبان یک سایت جدا داشته باشین برای یک تغییر کوچیک باید ۳ جا تغییرات را اعمال کنید.

توی سایت های چند زبانه دو تا عامل مهم هستند یکی stylesheet که شما دو تا حالت بیشتر ندراین یکی rtl و یکی ltr که بر اساس این دو پارامتر که زبان جزو کدومه باید css مناسب را load کنید. البته اگه بخواین از فونت ها و پارامتر های خاص css برای هر زبان استفاده کنید مجبورین برای هر زبان یک فایل css جدا هم داشته باشین که بهتره واقعا این css موارد تکراری نباشه و فقط تغییرات مرتبط توی هر کدوم باشه. مثلا توی فایل rtl نیاز نیست دوباره سایز فونت و رنگش را عوض کنین و فقط float یا align و direction المان ها را تعریف میکنید یا توی فایل ar.css فقط فونت های مرتبط با زبان عربی یا line-height یا سایز فونت. خلاصه بحث stylesheet خودش خیلی مهمه.

مورد دیگه ترجمه متون هست که روش های گوناگونی داره که توی همین انجمن و اینترنت کلی مثال میشه پیدا کرد و همشون عملی هم هستند.

morrning
سه شنبه 21 بهمن 1393, 01:23 صبح
منم خیلی وقت پیش به این مسئله فکر کردم مجتمع بودن اطلاعات همه سایت ها و قابلیت حذف داده های تکراری رو اگه در نظر بگیریم قطعا یک سایت چند زبانه بهتره . برای مثال اگه چند سایت یک زبانه داشته باشیم کاربر باید برای استفاده از هر کدوم یک بار ثبت نام کنه و این یعنی داده های تکراری همسان.
بر همین اساس فریمورک مدیریت محتوایی نوشتم که این قابلیت رو به صورت درونی در خودش داره که برای شروع توسعه به این روش میتونه مفید باشه . پیشنهاد میکنم از کلاس های کتابخانه ایش کلاس core\cls\core\localize رو مطالعه بفرمایید میتونه خیلی مفید باشه.
لینک تایپینگ (http://barnamenevis.org/showthread.php?411234-Sarkesh-%D9%81%D8%B1%DB%8C%D9%85%D9%88%D8%B1%DA%A9-PHP-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C)

martoor
سه شنبه 21 بهمن 1393, 01:40 صبح
نظر شخص بنده و کاری که برای سیستم مدیریت محتوا خودم انجام دادم نصفه و نیمه اینه که شما به پوشه language داشته باش توی روت سیستمت و داخلش سه تا زبان فارسی، انگلیسی و عربی. بعد متن های توی قالب سایت و پنل مدیریت رو بیار توی فایل فارسی و به دو زبان دیگه هم ترجمه کن که در صورت تغییر زبان، قالب هم نوشته هاش تغییر کنه. این برای قالب.

برای محتوا هم داخل ادمین و قسمت ارسال مطلب؛ سه تا چک باکس بذار برای زبان های مطلب، تیک هرکدومو که زد با جیکوئری ادیتور متنشو slideDown کن و تیک هرکدومو که برداشت برعکس slideUp کن.
توی کد php هم از روی تکست باکس هایی که پر هستند می تونی تشخیص بدی که مطلب چه زبان هایی داره.

بعد از روی همین اگه زبان انگلیسی بود تعریف می کنی که فقط مطالب انگلیسی رو بیاره.

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

برای من که خیلی خوب جواب داده. سئو هم هست. البته بشرطی که لینک ها متفاوت باشه مثلا برای انگلیسی یه en یک جا از آدرس اضافه تر باشه نسبت به فارسی

olampiad
سه شنبه 21 بهمن 1393, 12:03 عصر
خیلی ممنون بایت همه ی راهنمایی هاتون
واقعا خیلی کمکم کردین.
ی سوال دیگه دارم.
از کجا تشخیص بدم که زبان سایتم چیه؟
به نظرتون از طریق url این کار رو انجام بدم یا از طریق cookie؟
میشه تو این زمینه هم ی راهنمایی ساده بکنین.

martoor
سه شنبه 21 بهمن 1393, 15:35 عصر
اگه از طریق کوکی این کارو بکنی که سایتت سئو نمی شه، گوگل فقط مطالب زبان اصلی سایتو ایندکس می کنه.
باید از طریق URL این کارو بکنی که آدرس یک مطلب، فارسیش یه چیز باشه، انگلیسیش یه چیز و عربیش یه چیز دیگه...
مثلا

site.ir/index.php?newsid=20
site.ir/en/index.php?newsid=20
site.ir/ar/index.php?newsid=20

این کار رو هم با htaccess انجام بده.