protected void updateButton_Click(object sender, EventArgs e) { PortalController.UpdatePortalSetting(ModuleContext.PortalId, "EnableBrowserLanguage", chkBrowser.Checked.ToString()); PortalController.UpdatePortalSetting(ModuleContext.PortalId, "AllowUserUICulture", chkUserCulture.Checked.ToString()); // if contentlocalization is enabled, default language cannot be changed if (!PortalSettings.ContentLocalizationEnabled) { // first check whether or not portal default language has changed string newDefaultLanguage = languagesComboBox.SelectedValue; if (newDefaultLanguage != PortalSettings.DefaultLanguage) { if (!IsLanguageEnabled(newDefaultLanguage)) { var language = LocaleController.Instance.GetLocale(newDefaultLanguage); Localization.AddLanguageToPortal(ModuleContext.PortalId, language.LanguageId, true); } // update portal default language var objPortalController = new PortalController(); PortalInfo objPortal = objPortalController.GetPortal(PortalId); objPortal.DefaultLanguage = newDefaultLanguage; objPortalController.UpdatePortalInfo(objPortal); _PortalDefault = newDefaultLanguage; } PortalController.UpdatePortalSetting(ModuleContext.PortalId, "EnableUrlLanguage", chkUrl.Checked.ToString()); } BindDefaultLanguageSelector(); BindGrid(); }
public ActionResult Enabled(int lid) { string ResourcesFile = "~/DesktopModules/Vanjaro/UXManager/Extensions/Menu/" + ExtensionInfo.Name + "/Views/Setting/App_LocalResources/Languages.resx"; ActionResult actionResult = new ActionResult(); Locale language = LocaleController.Instance.GetLocale(lid); if (language == null) { actionResult.AddError("InvalidLocale.ErrorMessage", string.Format(Localization.GetString("InvalidLocale.ErrorMessage", ResourcesFile), language.Code)); return(actionResult); } if (PortalSettings.DefaultLanguage != language.Code) { if (LanguagesManager.IsLanguageEnabled(PortalSettings.PortalId, language.Code)) { //remove language from portal Localization.RemoveLanguageFromPortal(PortalSettings.PortalId, language.LanguageId); LanguagesManager.SetTabUrlsActiveToRedirect(language.LanguageId); } else { //Add language to portal Localization.AddLanguageToPortal(PortalSettings.PortalId, language.LanguageId, true); LanguagesManager.UpdateTabUrlsDefaultLocale(); } } actionResult.Data = LanguagesManager.GetLanguages(PortalSettings, UserInfo); actionResult.IsSuccess = true; return(actionResult); }
protected void enabledCheckbox_CheckChanged(object sender, EventArgs e) { try { if ((sender) is DnnCheckBox) { var enabledCheckbox = (DnnCheckBox)sender; int languageId = int.Parse(enabledCheckbox.CommandArgument); Locale locale = LocaleController.Instance.GetLocale(languageId); Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalId); Dictionary <string, Locale> enabledLanguages = LocaleController.Instance.GetLocales(PortalId); var redirectUrl = string.Empty; if (enabledCheckbox.Enabled) { // do not touch default language if (enabledCheckbox.Checked) { if (!enabledLanguages.ContainsKey(locale.Code)) { //Add language to portal Localization.AddLanguageToPortal(PortalId, languageId, true); } } else { //remove language from portal Localization.RemoveLanguageFromPortal(PortalId, languageId); //if the disable language is current language, should redirect to default language. if (locale.Code.Equals(Thread.CurrentThread.CurrentUICulture.ToString(), StringComparison.InvariantCultureIgnoreCase)) { redirectUrl = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, PortalSettings.ActiveTab.IsSuperTab, PortalSettings, "", defaultLocale.Code); } } } //Redirect to refresh page (and skinobjects) if (string.IsNullOrEmpty(redirectUrl)) { redirectUrl = Globals.NavigateURL(); } Response.Redirect(redirectUrl, true); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }
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.GetCultureInfo(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 + ";"; } roles = roles.TrimEnd(';'); } PortalController.UpdatePortalSetting(PortalId, string.Format("DefaultTranslatorRoles-{0}", Language.Code), roles); Response.Redirect(Globals.NavigateURL(), true); //Module failed to load } catch (Exception exc) { Exceptions.ProcessModuleLoadException(this, exc); } }
public static ActionResult Update(PortalSettings PortalSettings, UserInfo UserInfo, string Code) { ActionResult actionResult = new ActionResult(); try { if (!UserInfo.IsSuperUser) { actionResult.AddError("AuthFailureMessage", Constants.AuthFailureMessage); return(actionResult); } Locale language = LocaleController.Instance.GetLocale(Code) ?? new Locale { Code = Code }; language.Code = Code; language.Fallback = ""; language.Text = CultureInfo.GetCultureInfo(Code).NativeName; Localization.SaveLanguage(language); if (!IsLanguageEnabled(PortalSettings.PortalId, language.Code)) { Localization.AddLanguageToPortal(PortalSettings.PortalId, language.LanguageId, true); UpdateTabUrlsDefaultLocale(); } string roles = $"Administrators;{$"Translator ({language.Code})"}"; PortalController.UpdatePortalSetting(PortalSettings.PortalId, $"DefaultTranslatorRoles-{language.Code}", roles); Config.Touch(); actionResult.IsSuccess = true; } catch (Exception exc) { actionResult.AddError("", "", exc); } return(actionResult); }
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 + ";"; } roles = roles.TrimEnd(';'); } 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, false); // } // var portalCtl = new PortalController(); // portalCtl.MapLocalizedSpecialPages(PortalId, Language.Code); // DataCache.ClearPortalCache(PortalId, true); //} Response.Redirect(Globals.NavigateURL(), true); //Module failed to load } catch (Exception exc) { Exceptions.ProcessModuleLoadException(this, exc); } }
protected void enabledCheckbox_CheckChanged(object sender, EventArgs e) { try { if ((sender) is CheckBox) { var enabledCheckbox = (CheckBox)sender; GridDataItem item = (GridDataItem)enabledCheckbox.NamingContainer; DnnLanguageLabel code = item.FindControl("translationStatusLabel") as DnnLanguageLabel; Locale locale = LocaleController.Instance.GetLocale(code.Language); Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalId); Dictionary <string, Locale> enabledLanguages = LocaleController.Instance.GetLocales(PortalId); var localizedTabs = PortalSettings.ContentLocalizationEnabled ? TabController.Instance.GetTabsByPortal(PortalId).WithCulture(locale.Code, false).AsList() : new List <TabInfo>(); var redirectUrl = string.Empty; if (enabledCheckbox.Enabled) { // do not touch default language if (enabledCheckbox.Checked) { if (!enabledLanguages.ContainsKey(locale.Code)) { //Add language to portal Localization.AddLanguageToPortal(PortalId, locale.LanguageId, true); } //restore the tabs and modules foreach (var tab in localizedTabs) { TabController.Instance.RestoreTab(tab, PortalSettings); ModuleController.Instance.GetTabModules(tab.TabID).Values.ToList().ForEach(ModuleController.Instance.RestoreModule); } } else { //remove language from portal Localization.RemoveLanguageFromPortal(PortalId, locale.LanguageId); //if the disable language is current language, should redirect to default language. if (locale.Code.Equals(Thread.CurrentThread.CurrentUICulture.ToString(), StringComparison.InvariantCultureIgnoreCase)) { redirectUrl = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, PortalSettings.ActiveTab.IsSuperTab, PortalSettings, "", defaultLocale.Code); } //delete the tabs in this language foreach (var tab in localizedTabs) { tab.DefaultLanguageGuid = Guid.Empty; TabController.Instance.SoftDeleteTab(tab.TabID, PortalSettings); } } } //Redirect to refresh page (and skinobjects) if (string.IsNullOrEmpty(redirectUrl)) { redirectUrl = Globals.NavigateURL(); } Response.Redirect(redirectUrl, true); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }
/// <summary> /// Process legacy language package (that is based on manifest xml file). /// </summary> public static void ProcessLegacyLanguages() { string filePath = Globals.ApplicationMapPath + Localization.SupportedLocalesFile.Substring(1).Replace("/", "\\"); if (File.Exists(filePath)) { var doc = new XPathDocument(filePath); // Check for Browser and Url settings XPathNavigator browserNav = doc.CreateNavigator().SelectSingleNode("root/browserDetection"); if (browserNav != null) { HostController.Instance.Update("EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true")); } XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("root/languageInUrl"); if (urlNav != null) { HostController.Instance.Update("EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true")); } // Process each language foreach (XPathNavigator nav in doc.CreateNavigator().Select("root/language")) { if (nav.NodeType != XPathNodeType.Comment) { var language = new Locale(); language.Text = Util.ReadAttribute(nav, "name"); language.Code = Util.ReadAttribute(nav, "key"); language.Fallback = Util.ReadAttribute(nav, "fallback"); // Save Language Localization.SaveLanguage(language); if (language.Code != Localization.SystemLocale) { // Create a Package var package = new PackageInfo(new InstallerInfo()) { Name = language.Text, FriendlyName = language.Text, Description = Null.NullString, Version = new Version(1, 0, 0), PackageType = "CoreLanguagePack", License = Util.PACKAGE_NoLicense, }; // Create a LanguagePackWriter var packageWriter = new LanguagePackWriter(language, package); // Save the manifest package.Manifest = packageWriter.WriteManifest(true); // Save Package PackageController.Instance.SaveExtensionPackage(package); var languagePack = new LanguagePackInfo { LanguageID = language.LanguageId, PackageID = package.PackageID, DependentPackageID = -2, }; LanguagePackController.SaveLanguagePack(languagePack); } } } } // Process Portal Locales files foreach (PortalInfo portal in PortalController.Instance.GetPortals()) { int portalID = portal.PortalID; filePath = string.Format(Globals.ApplicationMapPath + Localization.ApplicationResourceDirectory.Substring(1).Replace("/", "\\") + "\\Locales.Portal-{0}.xml", portalID); if (File.Exists(filePath)) { var doc = new XPathDocument(filePath); // Check for Browser and Url settings XPathNavigator browserNav = doc.CreateNavigator().SelectSingleNode("locales/browserDetection"); if (browserNav != null) { PortalController.UpdatePortalSetting(portalID, "EnableBrowserLanguage", Util.ReadAttribute(browserNav, "enabled", false, null, Null.NullString, "true")); } XPathNavigator urlNav = doc.CreateNavigator().SelectSingleNode("locales/languageInUrl"); if (urlNav != null) { PortalController.UpdatePortalSetting(portalID, "EnableUrlLanguage", Util.ReadAttribute(urlNav, "enabled", false, null, Null.NullString, "true")); } foreach (Locale installedLanguage in LocaleController.Instance.GetLocales(Null.NullInteger).Values) { string code = installedLanguage.Code; bool bFound = false; // Check if this language is "inactive" foreach (XPathNavigator inactiveNav in doc.CreateNavigator().Select("locales/inactive/locale")) { if (inactiveNav.Value == code) { bFound = true; break; } } if (!bFound) { // Language is enabled - add to portal Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageId, false); } } } else { foreach (Locale installedLanguage in LocaleController.Instance.GetLocales(Null.NullInteger).Values) { // Language is enabled - add to portal Localization.AddLanguageToPortal(portalID, installedLanguage.LanguageId, false); } } } }