PDA

View Full Version : مشکل درمسترپیج وسایت چندزبانه



fereshte22
پنج شنبه 01 مرداد 1388, 09:25 صبح
سلام
من طبق مقاله یه سایت چندزبانه طراحی میکنم
http://www.how2learnasp.net/article.aspx?code=7d5730a4-24e9-413c-874c-191054f445cb
حالا من میخوام لینک تغییرزبان وکدهای اون را درصفحه masterpage قراردهم ولی مشکل اینه که من نمیدونم کدزیر

response.redirectرادرهرصفحه کجاقراربدم؟
چون که من می خوام کدهای تغییرزبان ولینک اون درmasterpage باشد کجامشخص کنیم که بعدازتغییرزبان به هرصفحه هدایت شود؟

raziee
پنج شنبه 01 مرداد 1388, 11:08 صبح
میتونی آدزس فعلی رو بدست بیاری و بعد از تنظیم کوکی و بقیه ی کد ها به صفحه فعلی ریدایرکت بشی حالا هر صفحه ای که بود.

m.hamidreza
پنج شنبه 01 مرداد 1388, 18:03 عصر
بقول مهندس بهروز قشنگترش اینه که شما اینجوری سایت چندزبانه درست کنی:


ایجاد دو عدد مسترپیج فارسی و انگلیسی
توی پوشه App_Theme دو تا پوشه en-US و fa-IR درست می کنی که css های این دو تا مسترپیج توشه
یه سشن برای زبان پیش فرض توی رویداد Session_Start فایل Global.asax میذاری مثلا به نام LanguageName
یه کلاس به نام Base توی App_Code درست میکنی و این کد رو مینوسی:



public BasePage()
{

}
protected override void InitializeCulture()
{

string strLang = Session["LanguageName"].ToString();
if ((strLang != null) && (strLang != string.Empty))
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strLang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(strLang);
}

}
protected void Page_PreInit(object sender, EventArgs e)
{
if (Session["LanguageName"].ToString() == "en-US")
{
this.MasterPageFile = "~/MasterPageEn.master";
this.Page.Theme = "en-US";

}
if (Session["LanguageName"].ToString() == "fa-IR")
{
this.MasterPageFile = "~/MasterPageFa.master";
this.Page.Theme = "fa-IR";

}
}



صفحاتتو از این کلاس به ارث میبری. خود اون کلاس رو هم از کلاس Page به ارث می بری.
توی دو تا لینک باتن هایی که برای تغییر زبان توی مسترپیج ها داری سشن زبان رو تغییر میدی و ریدارکت رو به صفحه جاری انجام میدی؛ اینجوری:



protected void lnkbtn_fa_Click(object sender, EventArgs e)
{
Session["LanguageName"] = "fa-IR";
string _Url = Request.Url.ToString();
Response.Redirect(_Url);
}
protected void lnkbtn_en_Click(object sender, EventArgs e)
{
Session["LanguageName"] = "en-US";
string _Url = Request.Url.ToString();
Response.Redirect(_Url);
}


موفق باشید.