2012-04-18 118 views
3

當我想更改我的網站語言時遇到問題。我爲此使用全球資源。 當我使用默認語言時,它顯示正確的文本。那麼沒問題。文本全局資源propery

但是,當我更改文化,然後它不會更新ASP.NET控件屬性中的文本。 我不知道爲什麼。

此代碼的工作完美

<h1><%= Resources.Default.Register %></h1> 

但這代碼不幸的是不改變其語言

<asp:Button ID="Button2" runat="server" Text="<%$ Resources:Default, Register %>" /> 

我通過點擊一個LinkBut​​ton,這樣

protected void lbNL_Click(object sender, EventArgs e) 
     { 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE"); 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE"); 

      Page.Culture = "nl-BE"; 
      Page.UICulture = "nl-BE"; 

     } 
更改語言

你能幫我嗎

Vincent

回答

2

這就是我如何將我的語言從英語(默認)更改爲法語。我不得不使用諸如asp:Label或asp:Literal這樣的控件。

此外,我的全局資源文件位於App_GlobalResources文件夾中,名爲Resource.fr.resx。歡迎是資源文件中密鑰的名稱。

而且,當我改變我的文化信息,以法國我只是用兩個字母代碼FR

** * ** ** *編輯* * * * * * * * *

這可能是你的問題。您可能需要重寫InitializeCulture。

protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE"); 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE"); 

    base.InitializeCulture(); 
} 
+0

我的代碼是這樣的,但不幸的是,當我點擊一個按鈕時它不會改變語言。 – Vinzcent 2012-04-18 20:33:19

+0

正在運行頁面並且ASP.NET從資源管理器檢索值時,ASP.NET會選擇與頁面的當前UICulture設置最匹配的資源文件版本,或使用資源回退來獲取資源。例如,如果運行的是Default.aspx頁面,並且當前的UICulture屬性設置爲es(西班牙語),則ASP.NET將使用本地資源文件Default.aspx.es.resx的編譯版本。 http://msdn.microsoft.com/en-us/library/ms227427(v=vs.85).aspx – PsychoDUCK 2012-04-18 20:39:38

+0

看到我上面的編輯。 – PsychoDUCK 2012-04-18 20:47:17