私は最近、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の実装で設定するように、これはエンティアサイトのカルチャに変更されていないようです。