示例#1
0
        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);
                }
            }
        }
示例#2
0
        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)
            }
        }
示例#3
0
        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);
            }
        }