Pango (stylisé comme Παν語) est une bibliothèque de moteur de mise en page de texte (c'est-à-dire de glyphes ) qui fonctionne avec le moteur de mise en forme HarfBuzz pour afficher du texte multilingue.
Le rendu complet du texte et la prise en charge multiplateforme sont obtenus lorsque Pango est utilisé avec des API de plateforme ou des bibliothèques tierces, telles que Uniscribe et FreeType , comme backends de rendu de texte . Le texte traité par Pango apparaîtra de manière similaire sous différents systèmes d'exploitation.
Pango est une bibliothèque à usage spécifique pour le texte et non une bibliothèque de rendu graphique à usage général comme Cairo , avec laquelle Pango peut être utilisé. La documentation de Cairo recommande d'utiliser Pango pour « rendre » du texte plutôt que Cairo pour tous les « rendu » de texte, sauf le plus simple.
Histoire et dénomination
Le nom pango vient du grec pan (παν, « tout » ) et du japonais go (語, « langue » ).
En janvier 2000, la fusion des projets GScript et GnomeText a été nommée Pango.
La version 1.0.0 de Pango est sortie le 11 mars 2002.
Prise en charge des fonctionnalités OpenType

Pango 1.17 et les versions plus récentes prennent en charge la balise de fonctionnalité « locl » qui permet d'utiliser des glyphes localisés pour le même point de code Unicode. En supposant que vous ayez installé la version 5.01 de Verdana , qui prend en charge la fonctionnalité « locl » pour l'écriture latn/ROM (roumaine), une démonstration rapide (sous Linux) est la suivante :
pour lang in en ro do pango-view \ --font = "Verdana 64" \ --text "şţ vs. șț in $lang " \ --langue = $lang done
Pour une explication des règles de substitution pour le roumain, voir cette discussion .
La définition des paramètres régionaux via la variable d'environnement POSIX, par exemple LANG=ro_RO.UTF-8, entraînera également Pango à utiliser la fonction de police « locl ». Enfin, vous pouvez modifier la langue à la volée dans le même texte en utilisant le balisage Pango, par exemple :
pango-view \ --font = "Verdana 24" \ --markup \ --text 'Dans le même texte : şţ(en) et <span lang="ro">şţ(ro).</span>'
Depuis la version 1.37.1, Pango a ajouté davantage d'attributs pour fournir une prise en charge complète du traitement de la fonctionnalité OpenType.
La vitrine officielle des fonctionnalités de Pango prenant en charge les scripts est ici.
Principaux utilisateurs

Pango a été intégré dans la plupart des distributions Linux. La boîte à outils GTK UI utilise Pango pour l'ensemble de son rendu de texte. Les versions Linux du navigateur Web Mozilla Firefox et du client de messagerie Mozilla Thunderbird utilisent Pango pour le rendu de texte.