Exemple #1
0
        protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
        {
            string cultureName = null;

            // Attempt to read the culture cookie from Request
            HttpCookie cultureCookie = Request.Cookies["_culture"];

            if (cultureCookie != null)
            {
                cultureName = cultureCookie.Value;
            }
            else
            {
                cultureName = Request.UserLanguages != null && Request.UserLanguages.Length > 0 ?
                              Request.UserLanguages[0] : // obtain it from HTTP header AcceptLanguages
                              null;
            }
            // Validate culture name
            cultureName = CultureUtility.GetImplementedCulture(cultureName); // This is safe

            // Modify current thread's cultures
            Thread.CurrentThread.CurrentCulture   = new System.Globalization.CultureInfo(cultureName);
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

            return(base.BeginExecuteCore(callback, state));
        }
Exemple #2
0
        public void SetCulture(string culture)
        {
            // Validate input
            string cultureName = CultureUtility.GetImplementedCulture(culture);
            // Save culture in a cookie
            HttpCookie cookie = Request.Cookies["_culture"];

            if (cookie != null)
            {
                cookie.Value = cultureName;   // update cookie value
            }
            else
            {
                cookie         = new HttpCookie("_culture");
                cookie.Value   = cultureName;
                cookie.Expires = DateTime.Now.AddYears(1);
            }

            // Modify current thread's cultures
            Thread.CurrentThread.CurrentCulture   = new System.Globalization.CultureInfo(cultureName);
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

            Response.Cookies.Add(cookie);
        }