title: Multilingual website, how do I change the asp CommandArgument directive to html to switch languages?
body: <p>I have a multilingual company website (Visual Studio / VB / ASP.NET 4.0), and when, on the homepage, you click a flag, the text changes to that language and stays with you the entire session, after I made a class, BasePage.vb.  Everything works great, but the <strong>URL never changes</strong> .... clients.aspx remains clients.aspx although the text DOES switch to Dutch.</p>
  
  <p>It's been recommended by @Aritstos to make it so it looks like <strong>clients.aspx?lang=nl</strong> as opposed to just <strong>clients.aspx</strong> in another language.</p>
  
  <p><strong>Currently, my asp homepage hyperlinks that work look like this:</strong></p>
  
  <pre><code>      &lt;asp:LinkButton ID="LinkButton7" runat="server"
        CommandArgument="nl" OnClick="RequestLanguageChange_Click"
        class="flagbutton"&gt;      
        &lt;asp:Image ID="Image1" runat="server" ImageUrl="~/images/flagnl.png"
        tooltip="Bekijk deze website in het Nederlands" title="Bekijk deze website 
        in het Nederlands"/&gt;
        &lt;img class="map" src="images/flaghovernl.png" alt=""/&gt;
        &lt;/asp:LinkButton&gt;
  </code></pre>
  
  <p><strong>I tried to change the asp links to html links, like this:</strong></p>
  
  <pre><code>     &lt;a href="default.aspx?lang-nl" class="flagbutton"&gt;
       &lt;img src="images/flagnl.png" alt="Bekijk deze website in het Nederlands"
       title="Bekijk deze website in het Nederlands"/&gt;
       &lt;img class="map" src="images/flaghovernl.png" alt=""/&gt;
  </code></pre>
  
  <p>But that didn't work.  The page doesn't switch languages to Dutch.  And when I click on any link, say, about.aspx, the ?lang-nl disappears.  So nothing appears in Dutch.  I was told the asplinks do the javascript_dopostback? which is bad.  Can somebody please tell me how to change my links so that they <strong>create a string at the end of the URL saying "?lang-nl"</strong> at the end, and it stays like that through their <strong>entire session</strong>?  Any help would be sincerely appreciated!</p>
  
  <p>PS -- here is the code for my BasePage.vb:</p>
  
  <pre><code>    Imports Microsoft.VisualBasic
      Imports System
      Imports System.Data
      Imports System.Configuration
      Imports System.Globalization
      Imports System.Threading
      Imports System.Web
      Imports System.Web.Security
      Imports System.Web.UI
      Imports System.Web.UI.WebControls
      Imports System.Web.UI.WebControls.WebParts
      Imports System.Web.UI.HtmlControls
  
       Namespace Udev.MasterPageWithLocalization.Classes
        ''' &lt;summary&gt;
        ''' Custom base page used for all web forms.
        ''' &lt;/summary&gt;
        Public Class BasePage
            Inherits Page
            Protected Overrides Sub InitializeCulture()
                'retrieve culture information from session
                Dim culture__1 As String =  
    Convert.ToString(Session([Global].SESSION_KEY_CULTURE))
  
                'check whether a culture is stored in the session
                If culture__1.Length &gt; 0 Then
                    Culture = culture__1
                End If
  
                'set culture to current thread
                Thread.CurrentThread.CurrentCulture =  
    CultureInfo.CreateSpecificCulture(culture__1)
                Thread.CurrentThread.CurrentUICulture = New CultureInfo(culture__1)
  
                'call base class
                MyBase.InitializeCulture()
            End Sub
        End Class
    End Namespace
  </code></pre>
  
  <p>In my Global.vb, I have this:</p>
  
  <pre><code>  Namespace Udev.MasterPageWithLocalization.Classes
        ''' &lt;summary&gt;
        ''' Summary description for Global
        ''' &lt;/summary&gt;
        Public Structure [Global]
            Public Const SESSION_KEY_CULTURE As String = "culture"
        End Structure
    End Namespace
  </code></pre>
  
  <p>In my Culture.vb, I have this:</p>
  
  <pre><code>  Namespace Udev.MasterPageWithLocalization.Classes
        ''' &lt;summary&gt;
        ''' This class provides ISO definitions for all cultures that are supported by 
      this application.
        ''' &lt;/summary&gt;
        Public Structure Culture
            'German - Switzerland definition
            Public Const DE As String = "de"
            'English - Great Britain definition
            Public Const EN As String = "en"
        End Structure
    End Namespace
  </code></pre>