How to use asp.net and visual basic to make a page stay translated after clicking the desired language?

Viewed 27

so today, I have tried a turorial from https://www.aspsnippets.com/Articles/ASPNet-Multilingual-website-Support-and-display-Multiple-Languages-English-French-in-ASPNet.aspx

However, when I clicked on a different page, I discovered that it was not auto translated and i need to click the language everytime, despite the fact that I had added the drop down in Master's site. Could someone kindly help me? This is my coding:

Master's site Front-end:

<div class="col-lg-12 text-right " style="padding-top:2%">
      <asp:Label ID="Label1" runat="server" Font-Italic="True" Font-Size="Smaller" Text="Bahasa"></asp:Label>
    <asp:DropDownList ID="ddlLanguages" runat="server" AutoPostBack="true" OnSelectedIndexChanged = "OnSelectedIndexChanged" style="margin-right:2em" Font-Bold="True" Font-Size="Small" ForeColor="Black" Height="38px" Width="109px">
        <asp:ListItem Text="English" Value="en-us" />
          <asp:ListItem Text="Malay" Value="Ms" />
    </asp:DropDownList>
    <hr />
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
 </div>

Master's Back-end

 Protected Sub OnSelectedIndexChanged(sender As Object, e As EventArgs)
        If Not Me.IsPostBack Then
            If ddlLanguages.Items.FindByValue(CultureInfo.CurrentCulture.Name) IsNot Nothing Then
                ddlLanguages.Items.FindByValue(CultureInfo.CurrentCulture.Name).Selected = True
            End If
        End If
  End Sub

Basic Page's class (where I inherited in all aspx page)

Imports System.Threading
Imports System.Globalization

Public Class BasePage
    Inherits System.Web.UI.Page
    Protected Overrides Sub InitializeCulture()
        Dim language As String = "en-us"

        'Detect User's Language.
        If Request.UserLanguages IsNot Nothing Then
            'Set the Language.
            language = Request.UserLanguages(0)
        End If

        'Check if PostBack is caused by Language DropDownList.
        If Request.Form("__EVENTTARGET") IsNot Nothing AndAlso Request.Form("__EVENTTARGET").Contains("ddlLanguages") Then
            'Set the Language.
            language = Request.Form(Request.Form("__EVENTTARGET"))
        End If

        'Set the Culture.
        Thread.CurrentThread.CurrentCulture = New CultureInfo(language)
        Thread.CurrentThread.CurrentUICulture = New CultureInfo(language)
    End Sub
End Class
0 Answers
Related