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 } } }); }
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 } } }); }