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 applique la cascade de langues ISO 14289 à une position de contenu et renseigne Resolution avec la déclaration retenue
Lorsque HasMarkedContentLanguage vaut True, la valeur /Lang du contenu marqué l’emporte et Resolution.Source vaut pulsMarkedContent
Sinon, l’élément situé à ElementIndex et ses ancêtres sont parcourus via ParentIndex jusqu’à ce que l’un d’eux porte une Language non vide ; Resolution.Source vaut alors pulsStructure et StructureElementIndex mémorise l’élément déclarant
Lorsqu’aucun élément de structure ne déclare de langue, une CatalogLanguage non vide s’applique avec Source pulsCatalog
Chaque candidat est validé avec IsPdfUaLanguageTagValid et le résultat est stocké dans Resolution.DeclarationValid
La fonction renvoie Resolution.IsCovered, qui ne vaut True que lorsqu’une déclaration a été trouvée et qu’il s’agit d’une balise bien formée
Lorsqu’il n’existe aucun candidat, Resolution conserve Source pulsNone avec une Language vide et le résultat est False
Covered := ResolvePdfUaEffectiveLanguage(Pdf.Language, Elements, I, '', False, Resolution);