.com、.de、.itの3つのドメインを持つWebサイトがあります
各ドメインは、デフォルトでその国の現地の言語/文化に設定する必要があります。ベースページを作成し、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
これで結構です。ユーザーがドメイン言語を上書きできるように、ホームページに3つの言語選択ボタンも必要なため、この問題が発生します。
したがって、私のDefault.asp.vbには、このような3つのボタンイベントがあります...
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がボタンクリックが発生したかどうかを確認し、発生した場合はルーチンをスキップする方法はありますか?
何かアドバイスをいただければ幸いです。