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