Hyperglot ayuda a los diseñadores de tipos a responder una pregunta aparentemente simple de soporte del lenguaje en las fuentes: ¿Cuándo puedo usar la fuente A para establecer textos en el lenguaje B? Se necesita una respuesta pragmática identificando un conjunto de caracteres estándar para cada ortografía utilizada por un idioma. La base de datos que actualmente contiene información para más de 640 idiomas es un trabajo en progreso, diseñada para crecer.
Grabamos un conjunto básico y de caracteres auxiliares para cada ortografía de un idioma. Tenga en cuenta que solo se usan ortografías utilizadas activamente (su estado se establece en primary ) al detectar el soporte del lenguaje en una fuente. Otras ortografías, secundarias o históricas, se muestran solo para fines de información.
Cuando sea relevante, también proporcionamos una breve nota de diseño que contiene consejos sobre la configuración y los requisitos de posicionamiento que van más allá de los puntos de código de caracteres Unicode. Hyperglot solo debe usarse para detectar si una fuente puede considerarse para su uso con un lenguaje en particular. No dice nada sobre la calidad del diseño de una fuente.
Hyperglot es un trabajo en progreso proporcionado tal cual, y la validez de sus datos de lenguaje varía. Para ayudarlo a evaluar la validez de los resultados que ve, cada idioma en la base de datos viene con una etiqueta que indica la calidad de los datos que tenemos para él (por ejemplo, algunos se consideran drafts , algunos han sido verified ). Hemos revisado la información con varias fuentes en línea y fuera de línea y estamos comprometidos a mejorarla continuamente. Sin embargo, admitimos que mapear todos los idiomas del mundo de esta manera está más allá de nuestra capacidad: ¡necesitamos ayuda de los usuarios de cada idioma respectivo! Entonces, si ve un problema o nota que su idioma favorito se falta por completo en la base de datos, póngase en contacto. Felizmente incorporaremos sus comentarios y le acreditaremos.
Lea más sobre Hyperglot en la aplicación web sobre la página
La comparación de Hyperglot y Unicode CLDR
Hay varias formas de usar la base de datos:
pip install hyperglot , consulte las notas de uso a continuación)pip install hyperglot )Algunas notas para ilustrar por qué la cuestión del soporte del idioma es complicada:
Es importante tener en cuenta que hay más en el soporte del idioma en las fuentes que admitir un conjunto de puntos de código . Una fuente debe incluir glifos con formas aceptables/legibles de los personajes para un idioma en particular. A veces hay variaciones regionales o de idioma para el mismo punto de código, lo que significa que diferentes idiomas representan diferentes requisitos en la forma de un carácter, pero requisitos idénticos en el punto de código del carácter. Además, los glifos tienen que interactuar como se esperaba por la convención de un script/ortografía particular. Por ejemplo, algunos idiomas/scripts requieren (o esperan fuertemente) ciertas combinaciones de glifo para formar ligaduras o algunas combinaciones de glifo requieren una corrección de espaciado adicional (kerning) para evitar enfrentamientos o brechas. Por lo tanto, el informe producido por las herramientas Hyperglot solo debe usarse para detectar si una fuente puede considerarse para su uso con un lenguaje en particular. No dice nada sobre la calidad del diseño.
Lea más sobre esto en la aplicación web sobre la página
Los caracteres se representan utilizando puntos de código Unicode en textos digitales, por ejemplo, la a de Script Latin tiene un punto de código U+0061 . Las fuentes digitales de OpenType mapean estos códigos apuntan a glifos, representaciones visuales de caracteres. Para encontrar si uno puede usar una fuente para textos en un idioma en particular, uno debe saber qué puntos de código de caracteres se requieren para el idioma. Para esto es la base de datos Hyperglot.
Se obtiene una lista de puntos de código de código de una fuente.
Se puede acceder a la base de datos en dos modos:
ä ), no se requieren puntos de código de códigos para caracteres base y combinando caracteres de marcas (por a y combinar ¨ ) de estas combinaciones a menos que la combinación no tenga forma codificada o el indicador --marks .--decomposed debe contener el carácter base y combinar marcas para un idioma (por ejemplo, los idiomas con ä coincidirán con fuentes que solo tienen a y combinando ¨ pero no ä como glifo codificado). El nivel validity especificado se utiliza para filtrar entradas de lenguaje con una validez más baja (de significado, más incierta).
Si se solicita, las listas base y aux (auxiliares) de puntos de código de código se combinan para lograr criterios más estrictos utilizando la opción --support . Las marks en los datos se requieren en función de los indicadores --decomposed y --marks . Las marcas que solo aparecen en los caracteres aux no serán necesarias para la validez base .
Al detectar el soporte del lenguaje, se consideran los puntos de código para cualquier ortografía primaria para un idioma determinado. Se ignoran las ortografías con estatus historical y secondary . Si múltiples ortografías tienen el valor preferred_as_group , se consideran una ortografía incluso si incluyen varios scripts.
Al detectar el soporte de ortografía, use --include-all-orthographies , todas las ortografías para un idioma determinado se verifican individualmente. Se incluyen ortografías con estado secondary . Se ignoran las ortografías con estatus historical .
Si la lista de puntos de código en la fuente incluye todos los puntos de código de la lista de puntos de códigos de los puntos 5 o 6, se considera que la fuente admite este idioma/ortografía. Además, el comportamiento de unión y el archivo adjunto de la marca se validan y un idioma/ortografía solo se considera admitido si la fuente los da forma correctamente. En los listados, los idiomas compatibles se agrupan mediante scripts.
La combinación de lenguaje-ortografía significa que un idioma que tiene múltiples ortografías que usan scripts diferentes (por ejemplo, serbio o japonés) se enumera en todos estos scripts en la salida de las herramientas.
Nota importante: ¡La aplicación web actualmente no incluye los cheques de conformación!
Se proporciona una herramienta CLI simple para emitir datos de soporte de lenguaje para un archivo de fuentes aprobados.
Deberá tener instalado Python 3. Instalar a través de PIP:
pip install hyperglothyperglot path/to/font.otf o para verificar varias fuentes a la vez, o su cobertura combinada (con -m union )
hyperglot path/to/font.otf path/to/anotherfont.otf ...Opciones adicionales :
-s, --support : especifique qué nivel de soporte verificar (actualmente las opciones son "base" (predeterminadas si se omiten) o "aux")-m, --marks : el indicador para señalar una fuente también debe incluir todas las marcas de combinación utilizadas para un idioma -Por defecto, solo se requieren esas marcas que no son parte de los caracteres preencodificados (el valor predeterminado es falso)-d, --decomposed : el indicador para señalar una fuente debe considerarse que admite un idioma siempre que tenga todos los glifos y marcas base para escribir un idioma, por defecto, también se requieren glifos precompuestos codificados (el valor predeterminado es falso)-a, --autonyms : genere los nombres de idioma en su idioma y guión nativo--speakers : Oven cuántos hablantes tiene cada idioma (donde esté disponible)--sort : especifique "altavoces" para clasificar por los altavoces (el valor predeterminado es "alfabético")--sort-dir : especifique "DESC" para ordenar en orden descendente (el valor predeterminado es "ASC" para el orden ascendente)-o, --output : suministra una ruta de archivo para escribir la salida a, en formato Yaml. Para una sola fuente de entrada, este será un subconjunto de la base de datos Hyperglot con los idiomas y las ortografías que la fuente admite. Si se proporcionan varias fuentes, el archivo YAML tendrá una tecla DICT de nivel superior para cada archivo. Si se proporciona la opción -m , el archivo YAML contendrá la intersección o el resultado de la Unión específico-c, --comparison : cómo procesar la entrada si se proporcionan varios archivos (actualmente las opciones son "individuales", "unión" e "intersección")--include-all-orthographies : verifique todas las ortografías de un idioma, no solo su (s) principal (s) principal (s)--validity : especifique para filtrar por el nivel de validez de los datos del idioma (el valor predeterminado es "preliminar")--include-historical : opción para incluir idiomas y ortografías marcadas como históricas (el valor predeterminado es falso)--include-constructed : la opción para incluir idiomas y ortografías marcadas como construidas (el valor predeterminado es falso)--strict-iso : Muestra los nombres de idiomas y los datos de MacRolanguage estrictamente de acuerdo con ISO (el valor predeterminado es falso)-v, --verbose : más información de registro (el valor predeterminado es falso)-V, --version : imprima el número de versión de la versión Hyperglot (el valor predeterminado es falso) La instalación del paquete PIP también instaló los comandos hyperglot-validate y hyperglot-save , que permiten verificar y guardar los datos YAML de una manera estructurada y compatible.
Hyperglot viene con un comando hyperglot-report que toma las mismas opciones el comando principal hyperglot (ver arriba). Además, lleva estas opciones para obtener informes sobre qué caracteres o modelado faltan para admitir idiomas detectados como no admitidos:
--report-missing : Parámetro para informar idiomas inigualables que faltan n o menos caracteres. Si n es 0, todos los idiomas con cualquier número de caracteres faltantes se enumeran (predeterminado).--report-marks : parámetro para informar idiomas que faltan n o menos secuencias de archivo adjunto de marca. Si n es 0 todos los idiomas con cualquier número de cualquier número de secuencias de archivo adjunto de marca faltante (predeterminada).--report-joining : parámetro para informar idiomas que faltan n o menos secuencias de unión. Si n es 0, todos los idiomas con cualquier número de secuencias de unión faltantes se enumeran (predeterminadas).--report-all : Parámetro para establecer/sobrescribir todos los demás parámetros --report-xxx . La estructura de datos se describe en un archivo separado junto con pautas para contribuir.
Las actualizaciones se comprometen/se fusionan con la rama dev con la rama master que contiene la última versión lanzada.
Base de datos y contribuyendo
base + mark se ven afectadas por las instrucciones de fuente La base de datos y las herramientas de Hyperglot fueron desarrolladas originalmente por Rosetta, especialistas en tipografía mundial, editores y fabricantes de fuentes originales que abordan las necesidades de la tipografía global.
Hasta ahora, el desarrollo de herramientas ha sido respaldado por Rosetta, Antonio Cavedoni (@verbosus), y estamos solicitando más fondos. También puede patrocinar Hyperglot a través de GitHub.
Colaboradores principales, hasta ahora:
La lista completa de contribuyentes