mehrdad_t
چهارشنبه 27 تیر 1386, 12:46 عصر
سلام دوستان
برای پیاده سازی یک سایت چند زبانه ، به وسیله ASP.net 2 و با قابلیتهای System.Globalization این امکان رو میخواهم که کاربران با کلیک روی کلیک هایی (مثلآ پرچم کشور) زبان سایت رو تغییر دهند .
یکی از بهترین Sample هایی که پیدا کردم این مقاله (http://www.c-sharpcorner.com/UploadFile/mosessaur/aspnetlocalization02042006165851PM/aspnetlocalization.aspx?ArticleID=96602e53-0fb1-44ec-a67b-1c68b05eb2e1&PagePath=/UploadFile/mosessaur/aspnetlocalization02042006165851PM/aspnetlocalization.aspx) بود که به وسیله یک DropDownList زبان انتخاب میشه .
برای تبدیل DropDownList به ImageButton دچار مشکل شدم .
به این دلیل که در زمان PostBack ، اولین متد که اجرا میشه متد InitializeCulture() است .
کد C#.net
protected override void InitializeCulture()
{
string culture = Request.Form["cmbCulture"];
if (string.IsNullOrEmpty(culture)) culture = "Auto";
//Use this
this.UICulture = culture;
this.Culture = culture;
//OR This
if (culture != "Auto")
{
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentCultu re = ci;
System.Threading.Thread.CurrentThread.CurrentUICul ture = ci;
}
base.InitializeCulture();
}
کد VB.net
Protected Overrides Sub InitializeCulture()
Dim _culture As String = Request.Form("cmbCulture")
'Use this
If (String.IsNullOrEmpty(Culture)) Then
culture = "Auto"
Me.UICulture = _culture
Me.Culture = _culture
End If
'OR This
If (_culture <> "Auto") Then
Dim ci As New System.Globalization.CultureInfo(Culture)
System.Threading.Thread.CurrentThread.CurrentCultu re = ci
System.Threading.Thread.CurrentThread.CurrentUICul ture = ci
End If
MyBase.InitializeCulture()
End Sub
جایی خوندم که این متد حتی قبل از PageLoad اجرا میشه .
و به همین دلیل مهلت استفاده از Session یا property یا هر چیز دیگه را نمیده و فقط میشه از کنترل هایی مانند DropDownList که دارای Value هستند استفاده کرد.
راهی برای استفاده کردن از بیش از 1 کنترل (مثل 2 کنترل ImageButton ) هست ؟
برای پیاده سازی یک سایت چند زبانه ، به وسیله ASP.net 2 و با قابلیتهای System.Globalization این امکان رو میخواهم که کاربران با کلیک روی کلیک هایی (مثلآ پرچم کشور) زبان سایت رو تغییر دهند .
یکی از بهترین Sample هایی که پیدا کردم این مقاله (http://www.c-sharpcorner.com/UploadFile/mosessaur/aspnetlocalization02042006165851PM/aspnetlocalization.aspx?ArticleID=96602e53-0fb1-44ec-a67b-1c68b05eb2e1&PagePath=/UploadFile/mosessaur/aspnetlocalization02042006165851PM/aspnetlocalization.aspx) بود که به وسیله یک DropDownList زبان انتخاب میشه .
برای تبدیل DropDownList به ImageButton دچار مشکل شدم .
به این دلیل که در زمان PostBack ، اولین متد که اجرا میشه متد InitializeCulture() است .
کد C#.net
protected override void InitializeCulture()
{
string culture = Request.Form["cmbCulture"];
if (string.IsNullOrEmpty(culture)) culture = "Auto";
//Use this
this.UICulture = culture;
this.Culture = culture;
//OR This
if (culture != "Auto")
{
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentCultu re = ci;
System.Threading.Thread.CurrentThread.CurrentUICul ture = ci;
}
base.InitializeCulture();
}
کد VB.net
Protected Overrides Sub InitializeCulture()
Dim _culture As String = Request.Form("cmbCulture")
'Use this
If (String.IsNullOrEmpty(Culture)) Then
culture = "Auto"
Me.UICulture = _culture
Me.Culture = _culture
End If
'OR This
If (_culture <> "Auto") Then
Dim ci As New System.Globalization.CultureInfo(Culture)
System.Threading.Thread.CurrentThread.CurrentCultu re = ci
System.Threading.Thread.CurrentThread.CurrentUICul ture = ci
End If
MyBase.InitializeCulture()
End Sub
جایی خوندم که این متد حتی قبل از PageLoad اجرا میشه .
و به همین دلیل مهلت استفاده از Session یا property یا هر چیز دیگه را نمیده و فقط میشه از کنترل هایی مانند DropDownList که دارای Value هستند استفاده کرد.
راهی برای استفاده کردن از بیش از 1 کنترل (مثل 2 کنترل ImageButton ) هست ؟