Bloom.Book.HtmlDom.GatherDataBookLanguages C# (CSharp) Method

GatherDataBookLanguages() public method

Gives all the unique language codes found in datadiv elements that have data-book
public GatherDataBookLanguages ( ) : List
return List
        public List<string> GatherDataBookLanguages()
        {
            var dataBookElements = RawDom.SafeSelectNodes("//div[@id='bloomDataDiv']/div[@data-book]");
            return dataBookElements.Cast<XmlElement>()
                .Select(node => node.GetOptionalStringAttribute("lang", null))
                .Where(lang => !string.IsNullOrEmpty(lang) && (lang != "*" || lang != "z"))
                .Distinct()
                .ToList();
        }

Usage Example

Example #1
0
        private void BringXmatterHtmlUpToDate(HtmlDom bookDOM)
        {
            //by default, this comes from the collection, but the book can select one, including "null" to select the factory-supplied empty xmatter
            var nameOfXMatterPack = OurHtmlDom.GetMetaValue("xMatter", _collectionSettings.XMatterPackName);
            nameOfXMatterPack = Storage.HandleRetiredXMatterPacks(OurHtmlDom, nameOfXMatterPack);
            var helper = new XMatterHelper(bookDOM, nameOfXMatterPack, _storage.GetFileLocator());
            //note, we determine this before removing xmatter to fix the situation where there is *only* xmatter, no content, so if
            //we wait until we've removed the xmatter, we no how no way of knowing what size/orientation they had before the update.
            Layout layout = Layout.FromDom(bookDOM, Layout.A5Portrait);
            XMatterHelper.RemoveExistingXMatter(bookDOM);
            layout = Layout.FromDom(bookDOM, layout);
                //this says, if you can't figure out the page size, use the one we got before we removed the xmatter
            helper.InjectXMatter(_bookData.GetWritingSystemCodes(), layout);

            var dataBookLangs = bookDOM.GatherDataBookLanguages();
            TranslationGroupManager.PrepareDataBookTranslationGroups(RawDom, dataBookLangs);
        }