function ResolvePdfUaEffectiveLanguage(const CatalogLanguage: WString;
const Elements: TPdfStructureElements; ElementIndex: Integer;
const MarkedContentLanguage: WString; HasMarkedContentLanguage: Boolean;
out Resolution: TPdfUaLanguageResolution): Boolean;
| CatalogLanguage | WString |
| Elements | TPdfStructureElements |
| ElementIndex | Integer |
| MarkedContentLanguage | WString |
| HasMarkedContentLanguage | Boolean |
| Resolution | TPdfUaLanguageResolution |
BooleanResolvePdfUaEffectiveLanguage tillämpar ISO 14289-språkkaskaden på en innehållsposition och fyller Resolution med den vinnande deklarationen
När HasMarkedContentLanguage är True vinner marked-content-värdet /Lang och Resolution.Source är pulsMarkedContent
Annars går elementet på ElementIndex och dess förfäder genom ParentIndex tills ett bär ett icke-tomt Language; Resolution.Source är därefter pulsStructure och StructureElementIndex registrerar det deklarerande elementet
När inget strukturelement deklarerar ett språk tillämpas ett icke-tomt CatalogLanguage med Source pulsCatalog
Varje kandidat valideras med IsPdfUaLanguageTagValid och utfallet lagras i Resolution.DeclarationValid
Funktionen returnerar Resolution.IsCovered, som är True endast när en deklaration hittades och är en välformad tagg
När ingen kandidat finns behåller Resolution Source pulsNone med ett tomt Language och resultatet är False
Covered := ResolvePdfUaEffectiveLanguage(Pdf.Language, Elements, I, '', False, Resolution);