My solution installed lang in BeginRequest in global.asax
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) Dim lang As String = "es" ''//default If Request.Url.ToString.ToLower.StartsWith("http://es.") lang = "es" ElseIf Request.Url.ToString.ToLower.StartsWith("http://en.") Then lang = "en" End If Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang) Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang) Site.Idioma = lang ''//static variable that I use in other parts of the site End Sub
Remember to set the redirection when the user clicks on www.mysite.com using the user's preferred browser language.
Imports System.Globalization Partial Class redirect_Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal s As Object, ByVal e As System.EventArgs) _ Handles Me.Load Select Case Mid(Request.UserLanguages(0).ToString(), 1, 2).ToLower Case "en" Response.Redirect("http://en.mysite.com") Case Else Response.Redirect("http://es.mysite.com") End Select End Sub End Class
As a side item, I recommend using http://www.mysite.com/en because itโs better from an SEO point of view (if your site matters)
source share