2009-09-29 28 views
0

我在本地机器上进行调试时遇到了自定义区域性问题。我有一个具有内部VS外部用户的单独的resx文件(术语是不同的)问题调试自定义文化

我们今天使用自定义的文化实现一个网站EN-GB-外部和相关的resx。内部客户端将使用en-GB resx文件。

一台PC上进行调试时,我只得到了EN-GB.resx文件,而不是EN-GB-internal.resx文件。但是,如果我构建代码并将其放在服务器上,并从同一台PC上浏览,它就可以工作。

如果我调试另一台PC上相同的代码(从SVN签出),它工作正常。

在哪里可以我甚至开始寻找,以确定为什么一台电脑上调试时这不起作用?

+0

这是否仍然是一个问题?你能发布你的逻辑/代码来实现en-gb.resx和en-gb-internal.resx文件吗? – 2010-05-25 03:27:23

回答

0

我们遵循实施自定义文化的msdn示例。然而,我们尽可能在页面生命周期尽早切换文化。上面的问题是通过让不同的用户在2个不同的页面上登录来解决的。然后我们覆盖InitializeCulture:

protected override void InitializeCulture() 
    { 
     SetCulture("en-GB-Internal"); 
     base.InitializeCulture(); 
    } 
public void SetCulture(string nameOfCulture) 
    { 
     CreateCultureCookie(nameOfCulture); 
     SetCurrentThreadCultureFromCultureCookie(); 
    } 

    public void CreateCultureCookie(string name) 
    { 
     CultureInfo culture = new CultureInfo(name); 

     HttpCookie cultureCookie = new HttpCookie("CultureCookie", culture.Name); 
     cultureCookie.Expires = DateTime.Now.AddDays(30); 

     AddCookie("CultureCookie", cultureCookie); 
    } 
private void SetCurrentThreadCultureFromCultureCookie() 
    { 
     if (Request.Cookies["CultureCookie"] != null && Request.Cookies["CultureCookie"].Value != null) 
     { 
      CultureInfo culture = new CultureInfo(Request.Cookies["CultureCookie"].Value); 
      Thread.CurrentThread.CurrentCulture = culture; 
      Thread.CurrentThread.CurrentUICulture = culture; 
     } 
    } 
0

也许检查IE的文化设置。

+0

我有 - 如果它是IE浏览器,它不会为远程站点工作吗? – Bernard 2009-09-29 08:50:18