public void SetCulture(string culture) { var httpContext = _httpContextAccessor.Current(); if (httpContext == null) { return; } var cookieName = ContextHelpers.IsRequestAdmin(httpContext) ? AdminCookieName : FrontEndCookieName; var cookie = new HttpCookie(cookieName, culture) { Expires = _clock.UtcNow.AddYears(DefaultExpireTimeYear), }; if (!String.IsNullOrEmpty(_shellSettings.RequestUrlHost)) { cookie.Domain = _shellSettings.RequestUrlHost; } if (!String.IsNullOrEmpty(_shellSettings.RequestUrlPrefix)) { cookie.Path = GetCookiePath(httpContext); } httpContext.Request.Cookies.Remove(cookieName); httpContext.Response.Cookies.Remove(cookieName); httpContext.Response.Cookies.Add(cookie); }
public CultureSelectorResult GetCulture(HttpContextBase context) { if (context == null || ContextHelpers.IsRequestAdmin(context)) { return(null); } // Attempt to determine culture by route. // This normally happens when you are using non standard pages that are not content items // {culture}/foo or ?culture={culture} var routeCulture = context.Request.RequestContext.RouteData.Values["culture"] ?? context.Request.RequestContext.HttpContext.Request.Params["culture"]; if (routeCulture != null && !string.IsNullOrWhiteSpace(routeCulture.ToString())) { try { var culture = CultureInfo.GetCultureInfo(routeCulture.ToString()); return(new CultureSelectorResult { Priority = -3, CultureName = culture.Name }); } catch {} } return(null); }
public CultureSelectorResult GetCulture(HttpContextBase context) { if (context == null || ContextHelpers.IsRequestAdmin(context)) { return(null); } // Attempt to determine culture by previous route if by POST string path; if (context.Request.HttpMethod.Equals(HttpVerbs.Post.ToString(), StringComparison.OrdinalIgnoreCase)) { if (context.Request.UrlReferrer != null) { path = context.Request.UrlReferrer.AbsolutePath; } else { return(null); } } else { path = context.Request.Path; } var appPath = context.Request.ApplicationPath ?? "/"; var requestUrl = (path.StartsWith(appPath) ? path.Substring(appPath.Length) : path).TrimStart('/'); var prefix = _shellSettings.RequestUrlPrefix; if (!string.IsNullOrEmpty(prefix)) { requestUrl = (requestUrl.StartsWith(prefix) ? requestUrl.Substring(prefix.Length) : requestUrl).TrimStart('/'); } var content = GetByPath(requestUrl); if (content != null) { return(new CultureSelectorResult { Priority = -2, CultureName = _localizationService.Value.GetContentCulture(content) }); } return(null); }
public CultureSelectorResult GetCulture(HttpContextBase context) { if (context == null) { return(null); } var cookieName = ContextHelpers.IsRequestAdmin(context) ? AdminCookieName : FrontEndCookieName; var cookie = context.Request.Cookies.Get(cookieName); if (cookie != null) { return new CultureSelectorResult { Priority = -1, CultureName = cookie.Value } } ; return(null); }