public static void SetLocale(HttpRequest req) { try { /*if( Request.UserLanguages != null && Request.UserLanguages.Length > 0 ) * { * CultureInfo ci = CultureInfo.CreateSpecificCulture( Request.UserLanguages[0] ); * Thread th = Thread.CurrentThread; * th.CurrentUICulture = th.CurrentCulture = ci; * }*/ /*cook = Response.Cookies[ CONFG_COOKIE_NAME ]; * cook[ COOKIE_LANG_NAME ] = loc.ProviderName; * * if( String.Compare( Thread.CurrentThread.CurrentCulture.Name, loc.Culture, true) != 0 )*/ LocaleHelper hlp = new LocaleHelper(); LocaleElement requiredLoc = WebUtils.DetectLocale(req); if (String.Compare(Thread.CurrentThread.CurrentCulture.Name, requiredLoc.Culture, true) != 0 || String.Compare(Thread.CurrentThread.CurrentUICulture.Name, requiredLoc.Culture, true) != 0 ) { Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(requiredLoc.Culture); } } catch (Exception) { } }
public void SwitchSiteMapProvider(Boolean enableRebind) { Boolean needRebind = false; if (CurrentProvidername != _requestedProviderName) { CurrentProvidername = _requestedProviderName; SiteMapDataSource1.SiteMapProvider = CurrentProvidername; SiteMapPath1.SiteMapProvider = CurrentProvidername; //CheckUpdateSiteMap(); needRebind = true; } LocaleElement loc = _locHlp.GetLocaleByProvider(CurrentProvidername); if (String.Compare(Thread.CurrentThread.CurrentCulture.Name, loc.Culture, true) != 0) { Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(loc.Culture); needRebind = true; } if (enableRebind && needRebind) { //pgGen = (ASP.pagegen_aspx)((ContentPlaceHolder)idPhotosPlace).Page; //pgGen. //Control cc = idPhotosPlace; /*this.DataBind(); * //idPhotosPlace.DataBind(); * if( !Page.IsCallback ) * SyncTree();*/ _requiresDataBinding = true; } }
protected override bool OnBubbleEvent(Object source, EventArgs args) { if (!(args is CommandEventArgs)) { return(false); } Control srcObj = (Control)source; Boolean res = true; CommandEventArgs a = (CommandEventArgs)args; HttpCookie cook; //L2.Text = string.Format("OnBubbleEvent: {0} /{1}", srcObj.ID, a.CommandName); if (srcObj.ID == btnRus.ID || srcObj.ID == btnEng.ID) { LocaleElement loc = _locHlp.GetLocaleByProvider(a.CommandName); if (loc != null) { cook = Response.Cookies[LocaleHelper.CONFG_COOKIE_NAME]; cook[LocaleHelper.COOKIE_LANG_NAME] = loc.ProviderName; cook.Expires = DateTime.Now.AddYears(50); ReadLocale(cook); SwitchSiteMapProvider(Request.QueryString["isTransfered"] != null); //Response.Redirect( Request.Url.AbsolutePath, true ); if (Request.QueryString["isTransfered"] == null) { Context.Server.Transfer(Request.RawUrl + "?isTransfered=" + CurrentProvidername, true); } else { Context.RewritePath(Request.RawUrl, Request.PathInfo, ""); } } else { return(base.OnBubbleEvent(source, args)); } } else if (srcObj.ID == btnHome.ID) { /*int idx = Request.Url.AbsoluteUri.IndexOf(Request.ApplicationPath); * if (idx != -1) * { * Context.Response.Redirect(Request.Url.AbsoluteUri.Substring(0, idx), true); * }*/ Context.Response.Redirect(string.Format("{0}{1}{2}:{3}", Request.Url.Scheme, Uri.SchemeDelimiter, Request.Url.Host, Request.Url.Port)); } else { switch (srcObj.ID) { case "btnPrev": case "btnUp": case "btnDown": case "btnNext": break; case "btnLogOff": FormsAuthentication.SignOut(); Session.Abandon(); Response.Redirect("~/login.aspx"); break; default: res = false; break; } } return(res); }