예제 #1
0
        public ActionResult SettingsLanguageUpdate(LanguageSettingModel model)
        {
            // set languageTag as it's not posted back
            foreach (var item in model.Languages)
            {
                item.LanguageTag = new LanguageTag(item.Culture);
            }

            var languagesEnabled = model.Languages.Where(x => x.Enabled);

            if (languagesEnabled.Count() == 0)
            {
                TempData[TempDataKeys.UserMessageAlertState] = "bg-danger";
                TempData[TempDataKeys.UserMessage]           = "[[[At least one language should be enabled!]]]";
                return(View("SettingsLanguage", model));
            }

            if (!languagesEnabled.Any(x => x.Culture == model.DefaultCulture))
            {
                TempData[TempDataKeys.UserMessageAlertState] = "bg-danger";
                TempData[TempDataKeys.UserMessage]           = "[[[Default language must be enabled first!]]]";
                return(View("SettingsLanguage", model));
            }

            LanguageHelper.SaveLanguages(model);

            // Update cache
            LanguageHelper.Refresh();
            return(SetLanguage(model.DefaultCulture, Url.Action("SettingsLanguage", "Manage")));
        }
예제 #2
0
        public ActionResult SettingsLanguage()
        {
            var availableLangauges = i18n.LanguageHelpers.GetAppLanguages();

            var modelFile = LanguageHelper.GetLanguages();
            var model     = new LanguageSettingModel()
            {
                DefaultCulture = modelFile.DefaultCulture
            };

            foreach (var lang in availableLangauges)
            {
                var languageSetting = new LanguageSetting();
                languageSetting.Culture     = lang.Key;
                languageSetting.LanguageTag = lang.Value;

                var existingLang = modelFile.Languages.Find(x => x.Culture == lang.Key);
                if (existingLang != null)
                {
                    languageSetting.Enabled = existingLang.Enabled;
                }

                model.Languages.Add(languageSetting);
            }

            return(View(model));
        }
예제 #3
0
        public static void SaveLanguages(LanguageSettingModel settings)
        {
            var filePath = HostingEnvironment.MapPath(LanguagesFilePath);

            if (!File.Exists(filePath))
            {
                using (File.Create(filePath))
                {
                    //we use 'using' to close the file after it's created
                }
            }

            var languages = JsonConvert.SerializeObject(settings);

            File.WriteAllText(filePath, languages);
        }
예제 #4
0
        private void InstallLanguage()
        {
            var languageCurrent    = ControllerContext.HttpContext.GetPrincipalAppLanguageForRequest().GetLanguage();
            var availableLangauges = i18n.LanguageHelpers.GetAppLanguages();

            var modelFile = LanguageHelper.GetLanguages();
            var model     = new LanguageSettingModel()
            {
                DefaultCulture = languageCurrent,
                Languages      = availableLangauges.Select(x => new LanguageSetting()
                {
                    Culture = x.Key,
                    Enabled = x.Key == languageCurrent
                }).ToList()
            };

            LanguageHelper.SaveLanguages(model);
        }
예제 #5
0
 public static void Refresh()
 {
     AvailableLanguges = GetLanguages();
     DefaultCulture    = AvailableLanguges.DefaultCulture ?? System.Globalization.CultureInfo.InvariantCulture.Name;
 }