RemoveRtlDir() public static method

public static RemoveRtlDir ( XmlElement e ) : void
e System.Xml.XmlElement
return void
 private static void UpdateRightToLeftSetting(CollectionSettings settings, XmlElement e, string lang)
 {
     HtmlDom.RemoveRtlDir(e);
     if ((lang == settings.Language1Iso639Code && settings.IsLanguage1Rtl) ||
         (lang == settings.Language2Iso639Code && settings.IsLanguage2Rtl) ||
         (lang == settings.Language3Iso639Code && settings.IsLanguage3Rtl))
     {
         HtmlDom.AddRtlDir(e);
     }
 }
 private static void UpdateRightToLeftSetting(BookData bookData, XmlElement e, string lang)
 {
     HtmlDom.RemoveRtlDir(e);
     if ((lang == bookData.Language1IsoCode && bookData.Language1.IsRightToLeft) ||
         (lang == bookData.Language2IsoCode && bookData.Language2.IsRightToLeft) ||
         (lang == bookData.Language3IsoCode && bookData.Language3.IsRightToLeft) ||
         (lang == bookData.MetadataLanguage1IsoCode && bookData.MetadataLanguage1.IsRightToLeft))
     {
         HtmlDom.AddRtlDir(e);
     }
 }
Example #3
0
        /// <summary>
        /// We stick 'contentLanguage2' and 'contentLanguage3' classes on editable things in bilingual and trilingual books
        /// </summary>
        public static void UpdateContentLanguageClasses(XmlNode elementOrDom, CollectionSettings settings, string vernacularIso, string contentLanguageIso2, string contentLanguageIso3)
        {
            var national1Iso      = settings.Language2Iso639Code;
            var national2Iso      = settings.Language3Iso639Code;
            var multilingualClass = "bloom-monolingual";
            var contentLanguages  = new Dictionary <string, string>();

            contentLanguages.Add(vernacularIso, "bloom-content1");

            if (!String.IsNullOrEmpty(contentLanguageIso2) && vernacularIso != contentLanguageIso2)
            {
                multilingualClass = "bloom-bilingual";
                contentLanguages.Add(contentLanguageIso2, "bloom-content2");
            }
            if (!String.IsNullOrEmpty(contentLanguageIso3) && vernacularIso != contentLanguageIso3 && contentLanguageIso2 != contentLanguageIso3)
            {
                multilingualClass = "bloom-trilingual";
                Debug.Assert(!String.IsNullOrEmpty(contentLanguageIso2), "shouldn't have a content3 lang with no content2 lang");
                contentLanguages.Add(contentLanguageIso3, "bloom-content3");
            }

            //Stick a class in the page div telling the stylesheet how many languages we are displaying (only makes sense for content pages, in Jan 2012).
            foreach (XmlElement pageDiv in elementOrDom.SafeSelectNodes("descendant-or-self::div[contains(@class,'bloom-page') and not(contains(@class,'bloom-frontMatter')) and not(contains(@class,'bloom-backMatter'))]"))
            {
                HtmlDom.RemoveClassesBeginingWith(pageDiv, "bloom-monolingual");
                HtmlDom.RemoveClassesBeginingWith(pageDiv, "bloom-bilingual");
                HtmlDom.RemoveClassesBeginingWith(pageDiv, "bloom-trilingual");
                HtmlDom.AddClassIfMissing(pageDiv, multilingualClass);
            }

            foreach (XmlElement group in elementOrDom.SafeSelectNodes(".//*[contains(@class,'bloom-translationGroup')]"))
            {
                var isXMatter = @group.SafeSelectNodes("ancestor::div[contains(@class,'bloom-frontMatter') or contains(@class,'bloom-backMatter')]").Count > 0;
                foreach (XmlElement e in @group.SafeSelectNodes(".//textarea | .//div"))                 //nb: we don't necessarily care that a div is editable or not
                {
                    var lang = e.GetAttribute("lang");
                    HtmlDom.RemoveClassesBeginingWith(e, "bloom-content"); // they might have been a given content lang before, but not now
                    HtmlDom.RemoveRtlDir(e);                               // in case this language has been changed from a Right to Left language to a Left to Right language
                    if (isXMatter && lang == national1Iso)
                    {
                        HtmlDom.AddClass(e, "bloom-contentNational1");
                    }
                    if (isXMatter && !String.IsNullOrEmpty(national2Iso) && lang == national2Iso)
                    {
                        HtmlDom.AddClass(e, "bloom-contentNational2");
                    }
                    foreach (var language in contentLanguages)
                    {
                        if (lang == language.Key)
                        {
                            HtmlDom.AddClass(e, language.Value);
                            if ((lang == vernacularIso && settings.IsLanguage1Rtl) ||
                                (lang == national1Iso && settings.IsLanguage2Rtl) ||
                                (!String.IsNullOrEmpty(national2Iso) && lang == national2Iso && settings.IsLanguage3Rtl))
                            {
                                HtmlDom.AddRtlDir(e);
                            }
                            break;                             //don't check the other languages
                        }
                    }
                }
            }
        }