2012-11-06 46 views
1

我最近看了本地化和国际化的非常有用的orchard harvest video,由彼得·Szmyd果园CMS正在重置文化

我想用这种方法来设置区域性,检查一个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; 

     } 
    } 

这一工程但是,我希望用户能够在网站上重置自己的文化。如何在用户选择时重置整个网站的文化。

比方说,如果我有一个选择列表作为自定义模块的一部分输出。

我已经看过ChangeCulture代码形式的Orchard CulturePicker Module,但这似乎并没有改变entier网站的文化,因为它设置了ICultureSelector的实现。

+0

“重置文化”是什么意思?将其设置为默认的网站文化? –

+0

我只是指改变文化。 – Axe

+0

CulturePicker模块更改文化网站。它带有一个'ICultureSelector'的实现,与你在问题中发布的非常相似。 –

回答

1

如果我正确理解,您希望用户能够更改他当前的文化和/或能够返回到默认网站文化,对不对?

对于您的情况,应该像更改cookie值或将其删除(设置默认区域性)作为对某些用户操作的响应一样简单。

+0

是的,你理解正确。谢谢 – Axe