我有一個網站有三個域.com,.de和.itASP.NET設置文化與InitializeCulture
每個域需要默認爲本國語言/文化。 我創建了一個基本頁面,並增加了InitializeCulture
Protected Overrides Sub InitializeCulture()
Dim url As System.Uri = Request.Url
Dim hostname As String = url.Host.ToString()
Dim SelectedLanguage As String
If HttpContext.Current.Profile("PreferredCulture").ToString Is Nothing Then
Select Case hostname
Case "www.domain.de"
SelectedLanguage = "de"
Thread.CurrentThread.CurrentUICulture = New CultureInfo(SelectedLanguage)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(SelectedLanguage)
Case "www.domain.it"
SelectedLanguage = "it"
Thread.CurrentThread.CurrentUICulture = New CultureInfo(SelectedLanguage)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(SelectedLanguage)
Case Else
SelectedLanguage = "en"
Thread.CurrentThread.CurrentUICulture = New CultureInfo(SelectedLanguage)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(SelectedLanguage)
End Select
End If
End Sub
這是好的。現在出現了這個問題,因爲我們還希望主頁上有三個語言選擇按鈕,以便用戶可以覆蓋域語言。
所以我Default.asp.vb我們有三個按鈕,這樣的活動......
Protected Sub langEnglish_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles langEnglish.Click
Dim SelectedLanguage As String = "en"
'Save selected user language in profile'
HttpContext.Current.Profile.SetPropertyValue("PreferredCulture", SelectedLanguage)
'Force re-initialization of the page to fire InitializeCulture()'
Context.Server.Transfer(Context.Request.Path)
End Sub
但當然InititalizeCulture然後將覆蓋任何按鈕已經做出選擇。 InitialCulture是否有任何方法可以檢查是否發生了按鈕單擊,如果是這樣,則跳過該例程?
任何意見將不勝感激,謝謝。
完美的,這樣一個乾淨的解決方案。謝謝。 – Helen 2010-03-09 20:19:38