Hyperglot aide les concepteurs à saisir une question apparemment simple de support linguistique dans les polices: quand puis-je utiliser la police A pour définir des textes dans le langage B? Il prend une réponse pragmatique en identifiant un jeu de caractères standard pour chaque orthographie utilisée par une langue. La base de données qui contient actuellement des informations pour plus de 640 langues est un travail en cours, conçu pour croître.
Nous enregistrons un jeu de caractères basique et auxiliaire pour chaque orthographie d'une langue. Notez que uniquement des orthographies utilisées activement (leur statut est défini sur primary ) sont utilisés lors de la détection du support linguistique dans une police. D'autres orthographies secondaires ou historiques sont affichées uniquement à des fins d'information.
Le cas échéant, nous fournissons également une brève note de conception contenant des conseils sur les exigences de mise en forme et de positionnement qui vont au-delà des points de code de caractères Unicode. L'hyperglot ne doit être utilisé que pour détecter si une police peut être envisagée pour une utilisation avec une langue particulière. Il ne dit rien sur la qualité de la conception d'une police.
L'hyperglot est un travail en cours fourni tel quel, et la validité de ses données linguistiques varie. Pour vous aider à évaluer la validité des résultats que vous consultez, chaque langue de la base de données est livrée avec une étiquette indiquant la qualité des données que nous avons pour elle (par exemple, certains sont considérés comme drafts , certains ont été verified ). Nous avons vérifié les informations contre diverses sources en ligne et hors ligne et nous nous engageons à l'améliorer continuellement. Cependant, nous admettons que la cartographie de toutes les langues du monde de cette manière est au-delà de notre capacité - nous avons besoin de l'aide des utilisateurs de chaque langue respective! Donc, si vous repérez un problème ou remarquez que votre langue préférée est complètement absente de la base de données, contactez-nous. Nous allons heureusement intégrer vos commentaires et vous attribuerons.
En savoir plus sur HyperGlot sur l'application Web About Page
La comparaison de l'hyperglot et du CLDR Unicode
Il existe plusieurs façons d'utiliser la base de données:
pip install hyperglot , voir les notes d'utilisation ci-dessous)pip install hyperglot )Quelques notes pour illustrer pourquoi la question du soutien linguistique est compliquée:
Il est important de noter qu'il y a plus dans le support linguistique dans les polices que de prendre en charge un ensemble de points de code . Une police doit inclure des glyphes avec des formes acceptables / lisibles des caractères pour une langue particulière. Parfois, il existe des variations régionales ou linguistiques pour le même point de code, ce qui signifie que différentes langues posent des exigences différentes sur la forme d'un caractère, mais des exigences identiques sur le point de code du caractère. De plus, les glyphes doivent interagir comme prévu par la convention d'un script / orthographie particulier. Par exemple, certaines langues / scripts nécessitent (ou attendent fortement) certaines combinaisons de glyphes pour former des ligatures ou certaines combinaisons de glyphes nécessitent une correction d'espacement supplémentaire (kerning) pour éviter les affrontements ou les lacunes. Ainsi, le rapport produit par les outils HyperGlot ne devrait être utilisé que pour détecter si une police peut être envisagée pour une utilisation avec une langue particulière. Il ne dit rien sur la qualité de la conception.
En savoir plus à ce sujet sur l'application Web sur Page
Les caractères sont représentés à l'aide de points de code Unicode dans les textes numériques, par exemple, la lettre de script latine a a un point de code U+0061 . Digital OpenType Fonts map Ces code pointent vers les glyphes, les représentations visuelles des caractères. Afin de découvrir si l'on peut utiliser une police pour les textes dans une langue particulière, il faut savoir quels points de code de caractère sont requis pour la langue. C'est à cela que sert la base de données HyperGlot.
Une liste de points de code est obtenue à partir d'une police.
La base de données est accessible en deux modes:
ä ), des points de code pour les caractères de base et la combinaison des caractères de marque (par exemple a et combinant ¨ ) à partir de ces combinaisons ne sont requises que si la combinaison n'a aucune forme codée ou que le drapeau --marks n'est utilisé.--decomposed est nécessaire pour contenir le caractère de base et combiner les marques pour une langue (par exemple, les langues avec ä correspondront aux polices qui n'ont que a et combinant ¨ mais pas ä comme glyphe codé). Le niveau validity spécifié est utilisé pour filtrer les entrées du langage avec une validité inférieure (signifiant, plus incertaine).
En cas de demande, les listes base et aux (auxiliaires) de points de code sont combinées pour atteindre des critères plus stricts en utilisant l'option --support . Les marks dans les données sont requises en fonction des drapeaux --decomposed et --marks . Les marques qui n'apparaissent que dans les caractères aux ne seront pas nécessaires pour la validité base .
Lors de la détection du support linguistique, les points de code pour toute orthographie principale pour une langue donnée sont considérés. Les orthographies à statut historical et secondary sont ignorées. Si plusieurs orthographies ont la valeur preferred_as_group , elles sont considérées comme une orthographie même si elles incluent plusieurs scripts.
Lors de la détection du support de l'orthographe, utilisez --include-all-orthographies , toutes les orthographies pour une langue donnée sont vérifiées individuellement. Les orthographies à statut secondary sont incluses. Les orthographies ayant un statut historical sont ignorées.
Si la liste des points de code dans la police comprend tous les points de code à partir de la liste des points de code des points 5 ou 6, la police est considérée comme prenant en charge cette langue / orthographie. De plus, le comportement d'adhésion et l'attachement de la marque est validé et une langue / orthographie n'est considérée que si la police les façonne correctement. Dans les listes, les langues prises en charge sont regroupées par scripts.
La combinaison de langue-orthographie signifie qu'une langue qui a plusieurs orthographies utilisant différents scripts (par exemple, serbe ou japonais) est répertoriée dans tous ces scripts dans la sortie des outils.
Remarque importante: l'application Web n'inclut actuellement pas les vérifications de mise en forme!
Un outil CLI simple est fourni aux données de support du langage de sortie pour un fichier de police passé dans la police.
Vous devrez installer Python 3. Installer via PIP:
pip install hyperglothyperglot path/to/font.otf ou pour vérifier plusieurs polices à la fois, ou leur couverture combinée (avec -m union )
hyperglot path/to/font.otf path/to/anotherfont.otf ...Options supplémentaires :
-s, --support : Spécifiez le niveau de support à vérifier (actuellement les options sont "base" (par défaut si omise) ou "AUX")-m, --marks : le drapeau pour signaler une police doit également inclure toutes les marques de combinaison utilisées pour une langue - par défaut, seules les marques sont requises qui ne font pas partie de caractères préencolés (par défaut est faux)-d, --decomposed : le drapeau pour signaler une police doit être considéré comme soutenant une langue tant qu'il a tous les glyphes et marques de base pour écrire une langue - par défaut, des glyphes précomposés sont également codés (par défaut est faux)-a, --autonyms : Sortie les noms de la langue dans leur langue maternelle et leur script--speakers : ouput combien de locuteurs de chaque langue (le cas échéant)--sort : spécifiez "haut-parleurs" à trier par des haut-parleurs (par défaut est "alphabétique")--sort-dir : Spécifiez "desc" pour trier dans l'ordre descendant (la valeur par défaut est "ASC" pour l'ordre croissant)-o, --output : fournit un chemin de fichier pour écrire la sortie, au format YAML. Pour une seule police d'entrée, ce sera un sous-ensemble de la base de données HyperGlot avec les langues et orthographies que la police prend en charge. Si plusieurs polices sont fournies, le fichier YAML aura une clé de dict de niveau supérieur pour chaque fichier. Si l'option -m est fournie, le fichier yaml contiendra l'intersection spécifique ou le résultat syndical-c, --comparison : Comment traiter les entrées si plusieurs fichiers sont fournis (les options sont actuellement "individuelles", "syndicats" et "intersection")--include-all-orthographies : Vérifiez toutes les orthographies d'une langue, pas seulement son (s) principale (s)--validity : spécifiez pour filtrer par le niveau de validité des données du langage (la valeur par défaut est "préliminaire")--include-historical : option pour inclure les langues et les orthographies marquées comme historiques (la valeur par défaut est fausse)--include-constructed : option pour inclure les langues et les orthographies qui sont marquées comme construites (par défaut est faux)--strict-iso : afficher les noms de langage et les données de macrolanguage strictement en fonction de l'ISO (par défaut est faux)-v, --verbose : plus d'informations de journalisation (par défaut est faux)-V, --version : imprimez le numéro de version de la version hyperglot (par défaut est faux) L'installation du package PIP a également installé les commandes hyperglot-validate et hyperglot-save , qui permettent de vérifier et d'enregistrer les données YAML de manière structurée et compatible.
HyperGlot est livré avec une commande hyperglot-report qui prend toutes les mêmes options la commande hyperglot principale (voir ci-dessus). Il prend en outre ces options pour les rapports de sortie sur les caractères ou la mise en forme pour prendre en charge les langages détectés comme non pris en charge:
--report-missing : Paramètre pour signaler les langues inégalées qui manquent n ou moins de caractères. Si N est 0, toutes les langues avec un nombre de caractères manquantes sont répertoriées (par défaut).--report-marks : Paramètre pour signaler les langages qui manquent des séquences de pièce jointe N ou moins de marque. Si N est 0, toutes les langues avec n'importe quel nombre, un nombre de séquences d'attachement de marque manquantes sont répertoriées (par défaut).--report-joining : Paramètre pour signaler les langages qui manquent n ou moins les séquences de jonction. Si N est 0, toutes les langues avec un nombre de séquences de jointure manquantes sont répertoriées (par défaut).--report-all : paramètre pour définir / remplacer tous les autres paramètres --report-xxx . La structure des données est décrite dans un fichier séparé avec les directives de contribution.
Les mises à jour sont comises / fusionnées dans la branche dev avec la branche master tenant la dernière version publiée.
Base de données et contribution
base + mark sont affectées par les instructions de police La base de données et les outils de HyperGlot ont été initialement développés par Rosetta, spécialistes de la typographie mondiale, éditeurs et fabricants de polices originales répondant aux besoins de la typographie mondiale.
Jusqu'à présent, le développement des outils a été soutenu par Rosetta, Antonio Cavedoni (@verbosus), et nous demandons plus de financement. Vous pouvez également parrainer HyperGlot via GitHub.
Les principaux contributeurs, jusqu'à présent:
La liste complète des contributeurs