ASP.NET: Changing the Site Culture Programmatically

I am trying to customize my site culture programmatically, so when a user clicks a button, they can change the text on the page from English to Spanish. here is my code:

protected void btnChangeLanguage(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("es);
}

<asp:Label ID="lblDisplay" runat="server" meta:ResourceKey="lblDisplay" />

<asp:Button ID="btnChangeLanguage" runat="server" Text="Change Language"
        OnClick="btnChangeLanguage_Click" />

I have a Default.aspx.resx file with a key / value: lblDisplay.text / English and a Default.aspx.es.resx file with a key / value: lblDisplay.text / Espanol

I cannot change the text of my label from "English" to "Spanish". Does anyone see what I'm doing wrong?

+5
source share
2 answers

ASP.Net , . , , ( , , ).

InitializeCulture() . . :
http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

+11
  • , "CurrentUI". :

    protected void EnglishLinkButton_Click(object sender, EventArgs e) {
       Session["CurrentUI"] = "en-US";
       Response.Redirect(Request.Url.OriginalString);
    
    }
    
    protected void SinhalaLinkButton_Click(object sender, EventArgs e) {
       // සිංහල (ශ්‍රී ලංකා)
       Session["CurrentUI"] = "si-LK";
       Response.Redirect(Request.Url.OriginalString);
    
    }
    
  • InitializeCulture()

     protected override void InitializeCulture() {
         if (Session["CurrentUI"] != null) {
             String selectedLanguage = (string)Session["CurrentUI"];
             UICulture = selectedLanguage;
             Culture = selectedLanguage;
    
             Thread.CurrentThread.CurrentCulture =
                 CultureInfo.CreateSpecificCulture(selectedLanguage);
             Thread.CurrentThread.CurrentUICulture = new
                 CultureInfo(selectedLanguage);
         }
    
         base.InitializeCulture();
    }
    
  • ,

    //Response.Redirect(Request.Url.OriginalString);
    

    , . InitializeCulture() , .

+8

All Articles