0

ASP.NETで主要なWebサイトのローカライズをほぼ完了しました。CurrentUICultureを使用してローカリゼーションに影響を与えています。ポストバックイベントがある状況を除いて、すべてうまくいきます。

このポストバックイベントをトリガーすると、カルチャが変更されたページから、ポストバックイベントはOLDCurrentUICulture値を使用します。最初にWebサイトの他のページにアクセスした場合は、正しく機能します。

正しくローカライズされたページを使用してこのイベントをトリガーします。そのため、ローカリゼーションが機能したと確信しています。

ポストバックイベントは別のスレッドにありますか?私は何か見落としてますか?プロジェクトからコードを投稿できません。私が使用する唯一の設定は、ローカリゼーションを設定および取得するための静的ラッパークラス内のThread.CurrentUICultureです。クラスには静的プロパティのみが含まれます。

編集:読み込みページのOnInitでcurrentUIcultureを設定します。セッションから毎回設定することで、UIカルチャーを維持しています。

4

2 に答える 2

1

ページのOnInitイベントでカルチャを設定する代わりに、InitializeCultureイベントをオーバーライドします。

これがvbの例ですが、あなたはその考えを理解しています。

Protected Overrides Sub InitializeCulture()
    Dim locale As String = Request.QueryString("lc")
    If locale IsNot Nothing AndAlso locale = "fr-ca" Then
        Me._LocaleID = 3084
    End If
    Dim culture As New System.Globalization.CultureInfo(Me._LocaleID)
    System.Threading.Thread.CurrentThread.CurrentCulture = culture
    System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End Sub
于 2011-09-23T16:10:59.997 に答える
0

私はこの質問に答えなかったことに気づきました。

別のドメインへのポストバック(最終的にリダイレクトされる)により、セッションが非表示になることが判明しました(明らかに、とにかく知っておくとよいでしょう)。

httpCookieドメイン設定を使用して、すべてのCookieを常にメインドメインに設定しているため、セッションは異なるサブドメイン(en.website.comとnl.website.com)間で共有されます。

于 2012-01-18T11:41:18.443 に答える