1

私は最近、PiotrSzmydによるローカリゼーションと国際化に関する非常に有用な果樹園の収穫ビデオを見ました

この方法でカルチャを設定し、Cookieを確認したい

public class CultureSelector : ICultureSelector
    {
        public const int SelectorPriority = 5;
        public const string CookieName = "Riders-Location-Cookie";
        public const string CookieValueName = "location-code";

        public CultureSelectorResult GetCulture(HttpContextBase context)
        {
            if (context == null || context.Request == null || context.Request.Cookies == null)
            {
                return null;
            }

            // check for a cookie 
            var cookie = context.Request.Cookies[CookieName];

            if (cookie != null && !string.IsNullOrEmpty(cookie.Values[CookieValueName]))
            {
                return new CultureSelectorResult { Priority = SelectorPriority, CultureName = cookie.Values[CookieValueName] };
            }

            return null;

        }
    }

それはうまくいきますが、私はユーザーがサイトで自分の文化をリセットできるようにしたいと思っています。ユーザーが選択したときにサイト全体のカルチャをリセットするにはどうすればよいですか。

たとえば、カスタムモジュールの一部として出力される選択リストがあるとします。

Orchard CulturePickerモジュールのChangeCultureコードを見てきましたが、ICultureSelectorの実装で設定するように、これはエンティアサイトのカルチャに変更されていないようです。

4

1 に答える 1

1

私が正しく理解していれば、ユーザーが現在の文化を変更したり、デフォルトのサイト文化に戻ったりできるようにしたいと思いますか?

あなたの場合、 Cookieの値を変更するか、ユーザーの操作への応答としてCookieの値を削除する(デフォルトのカルチャを設定する)のと同じくらい簡単なはずです。

于 2012-11-07T03:52:59.927 に答える