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는 ISO 14289 언어 캐스케이드를 한 콘텐츠 위치에 적용하고 이긴 선언으로 Resolution을 채웁니다
HasMarkedContentLanguage가 True면 마킹된 콘텐츠 /Lang 값이 이기고 Resolution.Source는 pulsMarkedContent입니다
그렇지 않으면 ElementIndex 위치의 요소와 조상들이 ParentIndex를 따라 올라가며 비어 있지 않은 Language를 가진 요소를 찾습니다. 이때 Resolution.Source는 pulsStructure가 되고 StructureElementIndex가 선언한 요소를 기록합니다
구조 요소가 언어를 선언하지 않으면 비어 있지 않은 CatalogLanguage가 Source pulsCatalog로 적용됩니다
각 후보는 IsPdfUaLanguageTagValid로 검증되고 그 결과가 Resolution.DeclarationValid에 저장됩니다
함수는 Resolution.IsCovered를 반환하며, 이는 선언을 찾았고 태그가 잘 구성되어 있을 때만 True입니다
후보가 없으면 Resolution은 빈 Language와 함께 Source pulsNone을 유지하고 결과는 False입니다
Covered := ResolvePdfUaEffectiveLanguage(Pdf.Language, Elements, I, '', False, Resolution);