我最近观看了Piotr Szmyd 的关于本地化和国际化的非常有用的果园收获视频
我想使用这种方法设置文化,检查 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 的实现设置它那样改变整个站点的文化。