Ejemplo n.º 1
0
        public static string GetByAcceptLangHeader(string AcceptLangHeader)
        {
            if (string.IsNullOrEmpty(AcceptLangHeader))
            {
                return(SystemLangCode);
            }

            string[] parts = AcceptLangHeader.Split(LangSep, StringSplitOptions.RemoveEmptyEntries);

            bool HasEn = false;

            foreach (var item in parts)
            {
                if (!string.IsNullOrEmpty(item) && item.Length >= 2)
                {
                    string lang = item.ToLower().Trim();
                    if (lang.Length > 2)
                    {
                        lang = lang.Substring(0, 2);
                    }

                    if (lang.Length != 2)
                    {
                        continue;
                    }

                    if (lang == "en")
                    {
                        HasEn = true;
                        continue;
                    }

                    if (CmsLangs.ContainsKey(lang))
                    {
                        return(lang);
                    }
                }
            }

            if (HasEn)
            {
                return("en");
            }

            return(SystemLangCode);
        }
Ejemplo n.º 2
0
        public static string GetCmsLangCode(RenderContext context)
        {
            if (context.User != null && !string.IsNullOrEmpty(context.User.Language))
            {
                string lang = context.User.Language;
                if (CmsLangs.ContainsKey(lang))
                {
                    return(lang);
                }
            }

            // based on accept langs..
            var acceptlangs = context.Request.Headers.Get("Accept-Language");

            if (!string.IsNullOrWhiteSpace(acceptlangs))
            {
                return(GetByAcceptLangHeader(acceptlangs));
            }

            return(SystemLangCode);
        }