コード例 #1
0
        public static void LocalizeLanguagePages(LocalizationProgress progress, int portalId, string cultureCode, string defaultLocale)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    var pageList = GetTabsToLocalize(portalId, cultureCode, defaultLocale);
                    var locale   = LocaleController.Instance.GetLocale(cultureCode);

                    //add translator role
                    Localization.AddTranslatorRole(portalId, locale);

                    //populate pages
                    ProcessLanguage(pageList, locale, defaultLocale, 0, 1, progress);

                    //Map special pages
                    PortalController.Instance.MapLocalizedSpecialPages(portalId, locale.Code);

                    //clear portal cache
                    DataCache.ClearPortalCache(portalId, true);
                    progress.Reset();
                    SaveProgressToFile(progress);
                }
                catch (Exception ex)
                {
                    try
                    {
                        Logger.Error(ex);
                        progress.Reset().Error = ex.ToString();
                        SaveProgressToFile(progress);
                    }
                    catch (Exception)
                    {
                        //ignore
                    }
                }
            });
        }
コード例 #2
0
        public static void LocalizeSitePages(LocalizationProgress progress, int portalId, bool translatePages, string defaultLanguage)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    var languageCount   = LocaleController.Instance.GetLocales(portalId).Count;
                    var languageCounter = 0;

                    var pageList = GetPages(portalId).Where(p => string.IsNullOrEmpty(p.CultureCode)).ToList();

                    if (translatePages)
                    {
                        // populate default language
                        ProcessLanguage(pageList, LocaleController.Instance.GetLocale(defaultLanguage),
                                        defaultLanguage, languageCounter, languageCount, progress);
                    }
                    PublishLanguage(defaultLanguage, portalId, true);

                    PortalController.UpdatePortalSetting(portalId, "ContentLocalizationEnabled", "True");

                    if (translatePages)
                    {
                        // populate other languages
                        pageList = GetPages(portalId).Where(p => p.CultureCode == defaultLanguage).ToList();

                        foreach (var locale in LocaleController.Instance.GetLocales(portalId).Values.Where(l => l.Code != defaultLanguage))
                        {
                            languageCounter++;

                            //add translator role
                            Localization.AddTranslatorRole(portalId, locale);

                            //populate pages
                            ProcessLanguage(pageList, locale, defaultLanguage, languageCounter, languageCount, progress);

                            //Map special pages
                            PortalController.Instance.MapLocalizedSpecialPages(portalId, locale.Code);
                        }
                    }

                    //clear portal cache
                    DataCache.ClearPortalCache(portalId, true);
                    progress.Reset();
                    SaveProgressToFile(progress);
                }
                catch (Exception ex)
                {
                    try
                    {
                        Logger.Error(ex);
                        progress.Reset().Error = ex.ToString();
                        SaveProgressToFile(progress);
                    }
                    catch (Exception)
                    {
                        //ignore
                    }
                }
            });
        }