PDA

View Full Version : یک سوال درباره دو زبانه کردن سایت



korosh00
شنبه 10 مهر 1395, 10:46 صبح
سلام
اینکه وقتی زبان سایت تغییر میکند مثلا به فارسی در تولبار اینطور نمایش میدهد چیست ؟
www.domain.com/fa
این fa یعنی فارسی
میشه توضیح بدید چطوری این فارسی میشه از فولدری میخونه؟ چطوراست ؟
متشکر

mortezagt
شنبه 10 مهر 1395, 13:00 عصر
من سایتم رو اینطوری فارسی میکنم
توی جاوا یه متغیر میسازم و متن های سایتم رو خط به خط توی متغیر میریزم
به مثال زیر دقت کن

var Obj_Text = new Array();

Obj_Text["FA_Text_17"] = "بررسی شهرها و سرمایه ها";
Obj_Text["FA_Text_18"] = "بررسی نظامی";
Obj_Text["FA_Text_19"] = "بررسی تحقیقات";
Obj_Text["FA_Text_20"] = "بررسی پیغام ها و سیاستمداری";
Obj_Text["FA_Text_21"] = "سینما";


اگر دقت کنی اسم متغیر ها رو با FA شروع کردم یعنی این متن مربوط به فارسیه
حالا در اینده اگر بخوام زبان سایت رو بیشتر کنم ، کافیه متن های فارسیم رو به مثلا انگلیسی ترجمه کنم و توی یه متغیر با همون شماره ذخیره کنم ولی بجای FA بنویسم EN

مثلا من Obj_Text["FA_Text_18"] = "بررسی نظامی"; رو میخوام ترجمه میکنم و به این صورت ذخیرش میکنم



Obj_Text["EN_Text_18"] = "Military Advisor";



الان کافیه زبانی که کاربر انتخاب کرده رو توی کوکی یا غیره ذخیره کنی مثلا اگر کاربر زبان فارسی رو بخواد، FA رو توی کوکی ذخیره میکنی و اینطوری میتونی راحت متن مورد نظر رو براحتی نشون بدی بهش
مثلا :






Obj_Text[lang+"_Text_18"] = "Military Advisor";







زبان انتخابی رو توی متغیر lang ریختیم

korosh00
شنبه 10 مهر 1395, 20:36 عصر
سلام متوجه هستم .
ولیwww.domain.com/fa (http://www.domain.com/fa) این چیه ؟
چطوربا زدن اسلش fa بفهمونیم

mortezagt
شنبه 10 مهر 1395, 21:27 عصر
سلام متوجه هستم .
ولیwww.domain.com/fa (http://www.domain.com/fa) این چیه ؟
چطوربا زدن اسلش fa بفهمونیم
حرف FA یا EN رو ما دیگه از توی متغیر lang میگیریم
متغیر lang رو هم خود کاربر با انتخاب نوع زبان سایت، در واقع مقدار دهی میکنه
یعنی اگر فارسی رو کاربر انتخاب کرد، مقدار FA به متغیر lang میدیم اگرم انگلیسی رو انتحاب کرد ، مقدار EN به lang داده میشه

کاری نداره
کافیه دوتا دکمه به سایت اذافه کنی به نام فارسی و انگلیسی
بعد اگر کاربر روی فارسی کلیک کرد، اسم FA رو توی کوکی ذخیره میکنی یا اگر انگلیسی رو زد ، اسم EN رو توی کوکی یا متغیر یا سشن ذخیره میکنی و اونو فراخونی میکنی
شما الان مثلا یه متن فارسی و انگلیسی رو طبق مثالی که زدم توی جاوا توی یه متغیر ذخیره کن.
یه متغیر به اسم lang هم بساز و اون مقدار FA یا EN مربوط به انتخاب زبان که کاربر انتخاب کرده و شما توی کوکی ذخیره کردی رو توی این متغیر بریز
شما عملی یه بار تست کنی متوجه میشی
برای تست فعلا نمیخواد از کوکی و غیره استفاده کنی
برای مثال خودت دستی مثلا به متغیر lang ، حرف FA یا EN رو اذافه کن

var lang = "FA"


بعد یه متغیر آرایه مثل زیر بساز و دوتا متن فارسی و انگلیسی رو توشون بنویس.به صورت زیر


Obj_Text["FA_Text_18"] = "بررسی نظامی";
Obj_Text["EN_Text_18"] = "Military Advisor";


ما الان مثلا متن "بررسی نظامی" رو توی متغیر آرایه خودمون، به اسم FA_Text_18 ذخیره کردیم و همین متن رو ترجمه انگلیسیش رو هم توی متغیر آرایه به این اسم ذخیره کردیمEN_Text_18
دقت کنی ، هر دو متن یه اسم و شماره دارن با این اختلاف که اول اسمشون رو با FA و EN شروع کردیم
به متغیر lang مقدار FA رو دستی وارد کن

var lang = "FA"

بعد مثلا مثال زیر میتونی اون رو فراخوانی کنی

alert(Obj_Text[lang+"_Text_18"]

حالا اگر این کد رو اجرا کنی، متن فارسی رو بهت نشون میده و اگر مقدار متغیر lang رو EN کنی و اجرا کنی کد بالایی رو، متن انگلیسی رو نشونت میده

نمیدونم دیگه چه شکلی بهت توضیح بدم
فکر کنم تازه شروع کردی به این کار چون پیام اولی که دادم واضح بود
فکر نکنم واضع تر بتونم توضیحش بدم

korosh00
یک شنبه 11 مهر 1395, 20:29 عصر
سلام
متشکر
من سایت رو دوزبانه کردم و مشکلی در دوزبانه کردن سایت ندارم .
ولی این سوال رو دارم که اون اسلش که در تولبار میزارن و بعدش مینویسه fa این چجوریه قضیه اش ؟
نمیدونم درست میتونم سوالم رو برسونم چیه یا نه .

mortezagt
دوشنبه 12 مهر 1395, 02:48 صبح
اهان
اون هم کویری هستش دیگه
اون سایت اومده شرط گذاشه که اگر fa مثلا بعد از ادرس سایتش اومده باشه، منظور از زبان فارسی هستش.
این هم یه جور کویری استرینگ هست
مثل مثلا www.domain.com/home.aspx?lang=fa
روزهای مختلفی برای ارسال کویری وجود داره
این سایت فقط اومده اسم صفحه که اینجا مثلا home.aspx بوده رو برداشته