private static void GenerateEditableDivsWithPreTranslatedContent(XmlNode elementOrDom) { foreach (XmlElement editableDiv in elementOrDom.SafeSelectNodes(".//*[contains(@class,'bloom-editable') and @data-generate-translations and @data-i18n]")) { var englishText = editableDiv.InnerText; var l10nId = editableDiv.Attributes["data-i18n"].Value; if (String.IsNullOrWhiteSpace(l10nId)) { continue; } foreach (var uiLanguage in LocalizationManager.GetAvailableLocalizedLanguages()) { var translation = LocalizationManager.GetDynamicStringOrEnglish("Bloom", l10nId, englishText, null, uiLanguage); if (translation == englishText) { continue; } var newEditableDiv = elementOrDom.OwnerDocument.CreateElement("div"); newEditableDiv.SetAttribute("class", "bloom-editable"); newEditableDiv.SetAttribute("lang", LanguageLookupModelExtensions.GetGeneralCode(uiLanguage)); newEditableDiv.InnerText = translation; editableDiv.ParentNode.AppendChild(newEditableDiv); } editableDiv.RemoveAttribute("data-generate-translations"); editableDiv.RemoveAttribute("data-i18n"); } }
private static int compareLangItems(LanguageItem a, LanguageItem b) { var aText = a.MenuText; if (!LanguageLookupModelExtensions.IsLatinChar(aText[0])) { aText = a.EnglishName; } var bText = b.MenuText; if (!LanguageLookupModelExtensions.IsLatinChar(bText[0])) { bText = b.EnglishName; } return(string.Compare(aText.ToLowerInvariant(), bText.ToLowerInvariant(), StringComparison.Ordinal)); }