我最近观看了Piotr Szmyd对本地化和国际化非常有用的orchard harvest video
我想使用此方法设置文化,检查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 Module的ChangeCulture代码,但是这似乎没有改变为entier网站的文化,因为使用ICultureSelector的实现来设置它。
答案 0 :(得分:1)
如果我理解正确,您希望用户能够更改其当前的文化和/或能够返回默认的网站文化,对吗?
在您的情况下,它应该像更改cookie值或删除它(设置默认文化)一样简单,作为对某些用户操作的响应。