2012-04-18 6 views
3

私のウェブサイトの言語を変更したいときに問題があります。私はこれにグローバルリソースを使用します。 デフォルト言語を使用すると、正しいテキストが表示されます。それでは問題はない。本文のグローバルリソース

ただし、Cultureを変更すると、ASP.NETコントロールのプロパティのテキストは更新されません。 なぜ私は考えていない。

このコードは

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

完璧に動作しますが、このコードは、残念ながら、私はこの

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"; 

     } 
のように、LinkBut​​tonコントロールをクリックして言語を変更するその言語

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

は変更されません。

助けてもらえますか

Vincent

答えて

2

これは私の言語を英語(デフォルト)からフランス語に変更する方法です。ラベルまたはASP:リテラル

<h3><asp:Label runat="server" ID="lblWelcome" Text="<%$ Resources:Resource, Welcome %>" /></h3> 

私は、ASPなどのコントロールを使用するように強制しています。

また、私のグローバルリソースファイルは、App_GlobalResourcesフォルダにあり、Resource.fr.resxと呼ばれています。ウェルカムは、リソースファイル内のキーの名前です。また

、私はちょうど2文字のコードFR

** * ** * EDIT * * * * * * * * *

を使用していますフランス語に私の文化情報を変更するとき

これはあなたの問題かもしれません。 InitializeCultureをオーバーライドする必要があります。

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

    base.InitializeCulture(); 
} 
+0

私のコードはこのようなものですが、残念ながらボタンをクリックしても言語は変わりません。 – Vinzcent

+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

+0

上記の私の編集を参照してください。 – PsychoDUCK

関連する問題