2009-09-29 26 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