private void ProcessLanguage(List <TabInfo> pageList, Locale locale, int languageCount, int totalLanguages) { var tabCtrl = new TabController(); RadProgressContext progress = RadProgressContext.Current; progress.Speed = "N/A"; progress.PrimaryTotal = totalLanguages; progress.PrimaryValue = languageCount; int total = pageList.Count; if (total == 0) { progress.SecondaryTotal = 0; progress.SecondaryValue = 0; progress.SecondaryPercent = 100; } for (int i = 0; i <= total - 1; i++) { TabInfo currentTab = pageList[i]; int stepNo = i + 1; progress.SecondaryTotal = total; progress.SecondaryValue = stepNo; float secondaryPercent = ((float)stepNo / (float)total) * 100; progress.SecondaryPercent = Convert.ToInt32(secondaryPercent); float primaryPercent = ((((float)languageCount + ((float)stepNo / (float)total)) / (float)totalLanguages)) * 100; progress.PrimaryPercent = Convert.ToInt32(primaryPercent); progress.CurrentOperationText = string.Format(Localization.GetString("ProcessingPage", LocalResourceFile), locale.Code, stepNo, total, currentTab.TabName); if (!Response.IsClientConnected) { //clear cache DataCache.ClearPortalCache(PortalId, true); //Cancel button was clicked or the browser was closed, so stop processing break; } progress.TimeEstimated = (total - stepNo) * 100; if (locale.Code == PortalDefault) { tabCtrl.LocalizeTab(currentTab, locale, false); } else { tabCtrl.CreateLocalizedCopy(currentTab, locale, false); } } }
private void ProcessLanguage(List <TabInfo> pageList, Locale locale, int languageCount, int totalLanguages) { var tabCtrl = new TabController(); RadProgressContext progress = RadProgressContext.Current; progress.Speed = "N/A"; progress.PrimaryTotal = totalLanguages; progress.PrimaryValue = languageCount; int total = pageList.Count; for (int i = 0; i <= total - 1; i++) { TabInfo currentTab = pageList[i]; int stepNo = i + 1; progress.SecondaryTotal = total; progress.SecondaryValue = stepNo; float secondaryPercent = ((float)stepNo / (float)total) * 100; progress.SecondaryPercent = Convert.ToInt32(secondaryPercent); float primaryPercent = ((((float)languageCount + ((float)stepNo / (float)total)) / (float)totalLanguages)) * 100; progress.PrimaryPercent = Convert.ToInt32(primaryPercent); progress.CurrentOperationText = string.Format(Localization.GetString("ProcessingPage", LocalResourceFile), locale.Code, stepNo, total, currentTab.TabName); if (!Response.IsClientConnected) { //Cancel button was clicked or the browser was closed, so stop processing break; } progress.TimeEstimated = (total - stepNo) * 100; tabCtrl.CreateLocalizedCopy(currentTab, locale); //Add a delay for debug testing //Threading.Thread.Sleep(500) } }
protected void cmdUpdate_Click(object sender, EventArgs e) { try { if (UserInfo.IsSuperUser) { //Update Language if (Language == null) { _Language = LocaleController.Instance.GetLocale(languageComboBox.SelectedValue); if (_Language == null) { _Language = new Locale(); Language.Code = languageComboBox.SelectedValue; } } Language.Fallback = fallBackComboBox.SelectedValue; Language.Text = CultureInfo.CreateSpecificCulture(Language.Code).NativeName; Localization.SaveLanguage(Language); } if (!IsLanguageEnabled(Language.Code)) { //Add language to portal Localization.AddLanguageToPortal(PortalId, Language.LanguageId, true); } string roles = Null.NullString; if (IsAddMode) { roles = string.Format("Administrators;{0}", string.Format("Translator ({0})", Language.Code)); } else { foreach (string role in translatorRoles.SelectedRoleNames) { roles += role + ";"; } } PortalController.UpdatePortalSetting(PortalId, string.Format("DefaultTranslatorRoles-{0}", Language.Code), roles); var tabCtrl = new TabController(); TabCollection tabs = tabCtrl.GetTabsByPortal(PortalId).WithCulture(Language.Code, false); if (PortalSettings.ContentLocalizationEnabled && tabs.Count == 0) { //Create Localized Pages foreach (TabInfo t in tabCtrl.GetCultureTabList(PortalId)) { tabCtrl.CreateLocalizedCopy(t, Language); } var portalCtl = new PortalController(); portalCtl.MapLocalizedSpecialPages(PortalId, Language.Code); } Response.Redirect(Globals.NavigateURL(), true); //Module failed to load } catch (Exception exc) { Exceptions.ProcessModuleLoadException(this, exc); } }