PDA

View Full Version : سوال: نحوه شناسایی زبان سایت



mehdi-ghafari
پنج شنبه 18 اسفند 1390, 12:11 عصر
سلام دوستان
من سایت چند زبانه رو پیاده سازی کردم و بدرستی هم کار میکنه
ولی یه مشکل دارم که توش موندم:
هرکاری میکنم نمیتونم زبان رو از طریق DropDown تغییر بدم.
اطلاعات :
- لیست زبانها از طریق xml به DropDown بایند میشن.
- در فایل Global من culture رو ست کردم (طبق آموزشهایی که دوستان در همین سایت داده بودند)
- زبان فعال رو در کوکی نگه داری میکنم.

با تغییر دستی زبان ، زبان سایت تغییر میکنه و بخوبی هم کار میکنه ولی از dropDown هرکاری میکنم Value کوکی عوض نمیشه؟؟ نمی دونم چکار کنم گیج شدم.

ممنونم از شما

hamid_shrk
پنج شنبه 18 اسفند 1390, 15:22 عصر
میشه کدی رو که واسه دراپ دان هاتون نوشتید رو بذارید؟

mehdi-ghafari
پنج شنبه 18 اسفند 1390, 15:33 عصر
بله حتما
این فایل XML :

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Languages>
<lang>
<name>English</name>
<nickname>انگلیسی</nickname>
<culture>en-US</culture>
<short>EN</short>
</lang>
<lang>
<name>فارسی</name>
<nickname>فارسی</nickname>
<culture>fa-IR</culture>
<short>FA</short>
</lang>
</Languages>


اینم تابعی که یه دیتا ست رو بر میگردونه و دیتاست با فایل xml بالا پر شده :

Public Shared Function Languages() As DataSet
Dim dst As New DataSet
Dim path As String = HttpContext.Current.Server.MapPath("~/elements/xmls/languages.xml")
dst.ReadXml(path)
Return dst
End Function


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

drpLanguage.DataSource = SetLanguage.Languages
drpLanguage.DataBind()


DataTextField="name"
DataValueField="culture"

اینم فایل Global :

Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)

Dim strGlobalLanguage As String = MyFunctions.SDK.SetLanguage.Language
Thread.CurrentThread.CurrentUICulture = New CultureInfo(strGlobalLanguage)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(strGlobalLanguag e)
End Sub