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 applica la cascata di lingue ISO 14289 a una posizione di contenuto e riempie Resolution con la dichiarazione vincente
Quando HasMarkedContentLanguage è True vince il valore /Lang del marked-content e Resolution.Source è pulsMarkedContent
Altrimenti si percorre l'elemento alla posizione ElementIndex e i suoi antenati attraverso ParentIndex finché uno non porta una Language non vuota; Resolution.Source è quindi pulsStructure e StructureElementIndex registra l'elemento dichiarante
Quando nessun elemento di struttura dichiara una lingua, si applica una CatalogLanguage non vuota con Source pulsCatalog
Ogni candidata viene validata con IsPdfUaLanguageTagValid e l'esito è memorizzato in Resolution.DeclarationValid
La funzione restituisce Resolution.IsCovered, che è True solo quando è stata trovata una dichiarazione ed è un tag ben formato
Quando non esiste alcuna candidata, Resolution mantiene Source pulsNone con una Language vuota e il risultato è False
Covered := ResolvePdfUaEffectiveLanguage(Pdf.Language, Elements, I, '', False, Resolution);