Exemple #1
0
        /// <summary>
        /// Spracuje prichadzajuci request a nastavi aktualny jazyk
        /// </summary>
        /// <param name="sender">Odosielatel udalosti</param>
        /// <param name="e">EventArgs</param>
        private void WebApplication_BeginRequest(object sender, EventArgs e)
        {
            Nullable <LanguageTypes> language = null;
            var request = this.Request;

            if (request != null)
            {
                //pridame do requestu id
                request.CreateRequestId();

                //ziskame aktualny jazyk,
                //ak sa v parametroch stranky nachadza 'language' tak nastavime jazyk a redirecneme stranku na rovnaku url bez parametra 'language'
                String languageValue = request.QueryString["language"];
                if (!String.IsNullOrWhiteSpace(languageValue))
                {
                    language = UserBase.GetLanguage(languageValue);
                    if (languageValue != null)
                    {
                        UserBase.CurrentLanguage = language.Value;
                    }
                    var queryString = new NameValueCollection(request.QueryString);
                    if (queryString != null)
                    {
                        queryString.Remove("language");
                    }
                    StringBuilder newPath = new StringBuilder();
                    newPath.Append(request.Path + (queryString.Count > 0 ? "?" : String.Empty));
                    for (var i = 0; i < queryString.Count; i++)
                    {
                        if (i > 0)
                        {
                            newPath.Append("&");
                        }
                        newPath.Append(String.Format("{0}={1}", queryString.GetKey(i), queryString[i]));
                    }
                    this.Response.Redirect(newPath.ToString(), true);
                    base.CompleteRequest();
                }
            }
            language = UserBase.CurrentLanguage;
            CultureInfo culture = this.InternalGetCurrentCulture(language.Value);

            if (culture != null)
            {
                Thread.CurrentThread.CurrentCulture   = culture;
                Thread.CurrentThread.CurrentUICulture = culture;
            }
        }
Exemple #2
0
        /// <summary>
        /// Vrati aktualne nastaveny jazyk pre prichadzajuci request
        /// </summary>
        /// <returns>Aktualne nastaveny jazyk, alebo default</returns>
        private static LanguageTypes InternalGetCurrentLanguage()
        {
            HttpContext current      = HttpContext.Current;
            var         languageItem = current.Items[UserBase.LanguageCookieName];

            if (languageItem == null || languageItem.GetType() != typeof(LanguageTypes))
            {
                Nullable <LanguageTypes> language = null;
                if (current != null)
                {
                    HttpRequest request = current.Request;
                    if (request != null)
                    {
                        HttpCookie cookie = request.Cookies.Get(UserBase.LanguageCookieName);
                        if (cookie != null)
                        {
                            language = UserBase.GetLanguage(cookie.Value);
                        }
                        else if (request.UserLanguages != null && request.UserLanguages.Length > 0)
                        {
                            for (int i = 0; i < request.UserLanguages.Length; i++)
                            {
                                language = UserBase.GetLanguage(request.UserLanguages[i]);
                                if (language != null)
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
                if (language == null)
                {
                    language = UserBase.InternalGetDefaultLanguage();
                }
                return(language.Value);
            }
            return((LanguageTypes)languageItem);
        }