/// <summary> /// Examines/combines all the variables involved and sets /// CurrentUICulture and CurrentCulture. /// Can be overridden. /// </summary> /// <param name="e"></param> protected virtual void OnChangeLanguage(LanguageSwitcherEventArgs e) { // Updates current cultures SetCurrentLanguage(e.CultureItem, SWITCHER_COOKIE_NAME, this); if (ChangeLanguage != null) { ChangeLanguage(this, e); //Invokes the delegates } }
/// <summary> /// Examines/combines all the variables involved and sets /// CurrentUICulture and CurrentCulture. instance containing the event data. /// </summary> /// <param name="e"></param> protected override void OnChangeLanguage(LanguageSwitcherEventArgs e) { if (Context != null) { int mID = 0; if (Context.Request.Params["Mid"] != null) { mID = Int32.Parse(Context.Request.Params["Mid"]); } int tID = 0; if (Context.Request.Params["PageID"] != null) { tID = Int32.Parse(Context.Request.Params["PageID"]); } else if (Context.Request.Params["TabID"] != null) { tID = Int32.Parse(Context.Request.Params["TabID"]); } string auxUrl = Context.Request.Url.AbsolutePath; string auxApplication = Context.Request.ApplicationPath; int index = auxUrl.ToLower().IndexOf(auxApplication.ToLower()); if (index != -1) { auxUrl = auxUrl.Substring(index + auxApplication.Length); } if (auxUrl.StartsWith("/")) { auxUrl = "~" + auxUrl; } else { auxUrl = "~/" + auxUrl; } string customParams = string.Empty; foreach (string key in Context.Request.QueryString.Keys) { if (!key.ToLower().Equals("mid") && !key.ToLower().Equals("tabid") && !key.ToLower().Equals("lang")) { customParams += "&" + key + "=" + Context.Request.Params[key]; } } string returnUrl = HttpUrlBuilder.BuildUrl(auxUrl, tID, mID, e.CultureItem.Culture, customParams, string.Empty, string.Empty); if (returnUrl.ToLower().IndexOf("lang") == -1) { customParams += "&Lang=" + e.CultureItem.Culture.Name; returnUrl = HttpUrlBuilder.BuildUrl(auxUrl, tID, mID, e.CultureItem.Culture, customParams, string.Empty, string.Empty); } //System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(e.CultureItem //LanguageCultureItem lci = new LanguageCultureItem(e.CultureItem.Culture.Name, e.CultureItem.Culture.Name) SetCurrentLanguage(e.CultureItem); Context.Response.Redirect(returnUrl); } }