예제 #1
0
        private ShowcaseLanguage GetUserResourceFile(string acceptLanguage)
        {
            string i18nRelativePath = "~/Scripts/app/i18n/";
            string i18nDir          = Server.MapPath(i18nRelativePath);
            //  Default to English if nothing else hints for a different language);
            ShowcaseLanguage result = new ShowcaseLanguage()
            {
                Language     = "en",
                ResourceFile = i18nDir + "en" + ".js"
            };

            if (!string.IsNullOrWhiteSpace(acceptLanguage))
            {
                //  Get all languages the user accepts
                string[] languages = acceptLanguage.Split(';')[0].Split(',');

                foreach (var lang in languages)
                {
                    //  Check if a specific JS resource file exists
                    if (System.IO.File.Exists(i18nDir + lang + ".js"))
                    {
                        result.Language = lang;
                        break;
                    }
                    else
                    {   //  Check if a general JS resource file exists
                        string baseLang = lang.Split('-')[0];
                        if (System.IO.File.Exists(i18nDir + baseLang + ".js"))
                        {
                            result.Language = baseLang;
                            break;
                        }
                    }
                }
            }

            result.ResourceFile = Url.Content(string.Format("{0}{1}.js", i18nRelativePath, result.Language));
            return(result);
        }
        private ShowcaseLanguage GetUserResourceFile(string acceptLanguage)
        {
            string i18nRelativePath = "~/Scripts/app/i18n/";
            string i18nDir = Server.MapPath(i18nRelativePath);
            //  Default to English if nothing else hints for a different language);
            ShowcaseLanguage result = new ShowcaseLanguage()
            {
                Language = "en",
                ResourceFile = i18nDir + "en" + ".js"
            };

            if (!string.IsNullOrWhiteSpace(acceptLanguage))
            {
                //  Get all languages the user accepts
                string[] languages = acceptLanguage.Split(';')[0].Split(',');

                foreach (var lang in languages)
                {
                    //  Check if a specific JS resource file exists
                    if (System.IO.File.Exists(i18nDir + lang + ".js"))
                    {
                        result.Language = lang;
                        break;
                    }
                    else
                    {   //  Check if a general JS resource file exists
                        string baseLang = lang.Split('-')[0];
                        if (System.IO.File.Exists(i18nDir + baseLang + ".js"))
                        {
                            result.Language = baseLang;
                            break;
                        }
                    }
                }
            }

            result.ResourceFile = Url.Content(string.Format("{0}{1}.js", i18nRelativePath, result.Language));
            return result;
        }