Friday, 19 October 2012

Multilingual website using asp.net

Multilingual website using asp.net

Step 1: in design create a drop down to select the language  and having few field such as name,number,currency and date specific to culture












<pre class="brush: csharp">// "ddlLanguage"
runat="server" AutoPostBack="True" 
            onselectedindexchanged="ddlLanguage_SelectedIndexChanged" 
            meta:resourcekey="ddlLanguageResource1">
        "en-us">English
        "fr-FR">French
        

    Your Current Culture is -"lblCulture" runat="server" Text="Label">
    
    "lblName" runat="server"  Text="Name" meta:resourcekey="lblNameResource1">                   
        "txtName" runat="server" meta:resourcekey="txtRName" Text="TechTT">
        
        
      
    
      
    "lblCurrency" runat="server" Text="Currency" meta:resourcekey="lblCurr">               
    "txtCurrency" runat="server" >
    
    
    "lblNFormat" runat="server" Text="No." meta:resourcekey="lblNumber">                       
    "txtN" runat="server" >
    
    
    "lblCDate" runat="server" Text="Current Date" meta:resourcekey="lblDate">          
    "txtCurrentDate" runat="server">
     
</pre>

      
    

Step 3: in code behind, on selection of language we will convert  the data according to Culture and UICulture

Code on selection change event
UICulture = ddlLanguage.SelectedValue;
        Culture = ddlLanguage.SelectedValue;
  
          
  
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(ddlLanguage.SelectedValue);
        Thread.CurrentThread.CurrentCulture= CultureInfo.CreateSpecificCulture(ddlLanguage.SelectedValue);
          
   //to get the current culture
               CultureInfo c = CultureInfo.CurrentCulture;
  
               lblCulture.Text = c.NativeName;
        //currentculture UI
               lblName.Text = Convert.ToString(this.GetLocalResourceObject("lblNameResource1.Text"));
               txtName.Text=Convert.ToString (this.GetLocalResourceObject ("txtRName"));
               lblCurrency.Text = Convert.ToString(this.GetLocalResourceObject("lblCurr"));
               lblNFormat.Text = Convert.ToString(this.GetLocalResourceObject("lblNumber"));
               lblCDate.Text = Convert.ToString(this.GetLocalResourceObject("lblDate"));
  
        //CurrentCulture specific to currency and no. format etc.
        double Currency = 500.50;
        double noformat = 9580000.75;
  
        txtCurrency.Text = Currency.ToString("c");
        txtN.Text = noformat.ToString("n");
        txtCurrentDate.Text = DateTime.Now.ToLongDateString();

1 comment:

  1. Thanks for providing us information that we really need for my SEO business. Good thing to know that there are people who care for other by sharing their insights about creating Multilingual websites.


    Multilingual web sites

    ReplyDelete