PDA

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



saeed_sho
یک شنبه 06 اسفند 1391, 13:49 عصر
سلام
من میخوام یه سایت دوزبانه درست کنم و از ریسورس ها استفاده میکنم
اینو میدونم که باید رویداد initializeCulture رو override کنم این کدو برای override نوشتم
Protected Overrides Sub InitializeCulture()
If (Request.Cookies("scms_lang") Is Nothing) Then
Dim hc As New HttpCookie("scms_lang")
hc.Value = Server.HtmlEncode("fa-IR")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
'
System.Threading.Thread.CurrentThread.CurrentCultu re = New CultureInfo("fa-IR")
System.Threading.Thread.CurrentThread.CurrentCultu re = New CultureInfo("fa-IR")
Else
Dim hc As HttpCookie = Request.Cookies("scms_lang")
If (Server.HtmlDecode(hc.Value) = "fa-IR" Or Server.HtmlDecode(hc.Value) = "en") Then
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
'
System.Threading.Thread.CurrentThread.CurrentCultu re = CultureInfo.CreateSpecificCulture(Server.HtmlDecod e(hc.Value))
System.Threading.Thread.CurrentThread.CurrentCultu re = New CultureInfo(Server.HtmlDecode(hc.Value))
Else
hc.Value = Server.HtmlEncode("fa-IR")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
'
System.Threading.Thread.CurrentThread.CurrentCultu re = New CultureInfo("fa-IR")
System.Threading.Thread.CurrentThread.CurrentCultu re = New CultureInfo("fa-IR")
End If
End If
MyBase.InitializeCulture()
End Sub

اینم برای تغییر زبان نوشتم
Private Sub img_btn_fa_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles img_btn_fa.Click
'hdr_stl.Attributes("href") = "../site_style/stl_header_fa.css"
If (Request.Cookies("scms_lang") Is Nothing) Then
Dim hc As New HttpCookie("scms_lang")
hc.Value = Server.HtmlEncode("fa-IR")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
Else
Dim hc As HttpCookie = Request.Cookies("scms_lang")
hc.Value = Server.HtmlEncode("fa-IR")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
End If
End Sub

Private Sub img_btn_en_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles img_btn_en.Click
'hdr_stl.Attributes("href") = "../site_style/stl_header_en.css"
If (Request.Cookies("scms_lang") Is Nothing) Then
Dim hc As New HttpCookie("scms_lang")
hc.Value = Server.HtmlEncode("en")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
Else
Dim hc As HttpCookie = Request.Cookies("scms_lang")
hc.Value = Server.HtmlEncode("en")
hc.Expires = Now.AddDays(30)
Response.Cookies.Add(hc)
End If
End Sub

رویداد override اجرا میشه اما زبان عوض نمیشه
هم با یه فرم که مسترپیج داره تست کردم هم با یه فرم بدون مسترپیج
این در حالیه که اگر خودم زبان مرورگر رو تغییر بدم از مسیر tools > options > content tab > choose language زبان فارسی یا انگلیسی رو بزارم اول لیست کار میکنه اما با کد زبانش عوض نمیشه
لطفا راهنمایی کنید

saeed_sho
سه شنبه 08 اسفند 1391, 20:02 عصر
طبق معمول کسی جواب تاپیک من رو نداد اما یه سمپل کوچیک پیدا کردم که مشکل منو حل کرد میزارم اینجا تا بقیه دوستان هم استفاده کنند

bitcob589
سه شنبه 08 اسفند 1391, 22:31 عصر
در کلاس Basepageخط 52خطای زیر می دهد

The name 'LanguageDropDownID' does not exist in the current context

علت خطا چیست.

saeed_sho
چهارشنبه 09 اسفند 1391, 18:55 عصر
این ارور به خاطر مشکل تایپی برنامه نویسه
اسم متغیر LanguageDropDownName است که در شرط به اشتباه LanguageDropDownID نوشته که اگه خودتون اسم متغیر رو بزارید ارور برطرف میشه

saeed_sho
چهارشنبه 09 اسفند 1391, 19:00 عصر
من خودم از dropDownList استفاده نکردم و مقدارو در کوکی ذخیره میکنم و با دو تا ایمیج باتن مقدار کوکی رو عوض میکنم