A hiperglota ajuda a tipo que os designers respondem a uma pergunta aparentemente simples do suporte à linguagem em fontes: quando posso usar a fonte A para definir textos no idioma B? É preciso uma resposta pragmática, identificando um conjunto de caracteres padrão para cada ortografia usada por um idioma. O banco de dados que atualmente contém informações para mais de 640 idiomas é um trabalho em andamento, projetado para crescer.
Registramos um conjunto de caracteres básicos e auxiliares para cada ortografia de um idioma. Observe que apenas ortografias usadas ativamente (seu status é definido como primary ) são usadas ao detectar suporte da linguagem em uma fonte. Outras ortografias secundárias ou históricas são exibidas apenas para fins de informação.
Quando relevante, também fornecemos uma breve nota de design que contém dicas sobre os requisitos de modelagem e posicionamento que vão além dos pontos de código de caracteres Unicode. A hiperglota deve ser usada apenas para detectar se uma fonte pode ser considerada para uso com um idioma específico. Não diz nada sobre a qualidade do design de uma fonte.
A hiperglota é um trabalho em andamento fornecido como está, e a validade de seus dados de idiomas varia. Para ajudá -lo a avaliar a validade dos resultados que você vê, cada idioma no banco de dados vem com um rótulo indicando a qualidade dos dados que temos para ele (por exemplo, alguns são considerados drafts , alguns foram verified ). Verificamos as informações em várias fontes on -line e offline e estamos comprometidos em melhorá -las continuamente. No entanto, admitimos que o mapeamento de todas as línguas do mundo dessa maneira está além da nossa capacidade - precisamos de ajuda de usuários de cada idioma respectivo! Portanto, se você encontrar um problema ou observar que seu idioma favorito está totalmente ausente no banco de dados, entre em contato. Felizmente, incorporaremos seus comentários e creditaremos você.
Leia mais sobre o Hyperglot no aplicativo da web sobre a página
A comparação do hiperglot e o Unicode CLDR
Existem várias maneiras de usar o banco de dados:
pip install hyperglot , consulte Notas de uso abaixo)pip install hyperglot )Algumas notas para ilustrar por que a questão do suporte à linguagem é complicada:
É importante observar que há mais suporte ao idioma em fontes do que suportar um conjunto de pontos de código . Uma fonte precisa incluir glifos com formas aceitáveis/legíveis dos caracteres para um idioma específico. Às vezes, existem variações regionais ou de idioma para o mesmo ponto de código, o que significa que diferentes idiomas representam requisitos diferentes na forma de um caractere, mas requisitos idênticos no ponto de código do caractere. Além disso, os glifos precisam interagir como esperado pela convenção de um roteiro/ortografia específica. Por exemplo, alguns idiomas/scripts exigem (ou esperam fortemente) certas combinações de glifos para formar ligaduras ou algumas combinações de glifos requerem correção de espaçamento adicional (kerning) para evitar confrontos ou lacunas. Assim, o relatório produzido pelas ferramentas de hiperglota deve ser usado apenas para detectar se uma fonte pode ser considerada para uso com um idioma específico. Não diz nada sobre a qualidade do design.
Leia mais sobre isso no aplicativo da web sobre a página
Os caracteres são representados usando os pontos de código Unicode nos textos digitais, por exemplo, a letra do script latino a possui um ponto de código U+0061 . As fontes digitais do OpenType Mapearem esses pontos para os glifos, representações visuais dos caracteres. Para descobrir se se pode usar uma fonte para textos em um idioma específico, é preciso saber quais pontos de código de caracteres são necessários para o idioma. É para isso que serve o banco de dados Hyperglot.
Uma lista de pontos codePoints é obtida de uma fonte.
O banco de dados pode ser acessado em dois modos:
ä ), pontos de código para caracteres de base e combinação de caracteres marcados (por a e combinar ¨ ) dessas combinações não são necessárias, a menos que a combinação não tenha uma forma codificada ou a sinalização --marks é usada.--decomposed necessárias para conter o caractere base e combinar marcas para um idioma (por exemplo, idiomas com ä corresponderão a fontes que possuem apenas a e combinando ¨ , mas não ä como glifo codificado). O nível validity especificado é usado para filtrar entradas de idioma com uma validade mais baixa (significando, mais incerta).
Se solicitado, as listas de base e aux (auxiliares) são combinadas para obter critérios mais rigorosos usando a opção --support . As marks nos dados são necessárias com base nos sinalizadores --decomposed e --marks . Marcas que aparecem apenas em caracteres aux não serão necessárias para a validade base .
Ao detectar o suporte à linguagem, são considerados os pontos de código para qualquer ortografia primária para um determinado idioma. Ortografias com status historical e secondary são ignoradas. Se várias ortografias tiverem o valor preferred_as_group , elas são consideradas uma ortografia, mesmo que incluam vários scripts.
Ao detectar o suporte de ortografia, use --include-all-orthographies , todas as ortografias para um determinado idioma são verificadas individualmente. Ortografias com status secondary estão incluídas. Ortografias com status historical são ignoradas.
Se a lista de pontos de código na fonte incluir todos os pontos de código da lista de pontos de código dos pontos 5 ou 6, a fonte será considerada para apoiar esse idioma/ortografia. Além disso, o comportamento de união e o acessório de marcação é validado e uma linguagem/ortografia é considerada apenas suportada se a fonte for formar corretamente. Nas listagens, os idiomas suportados são agrupados por scripts.
A combinação de ortografia de idiomas significa que um idioma que possui várias ortografias usando scripts diferentes (por exemplo, sérvio ou japonês) está listado em todos esses scripts na saída das ferramentas.
Nota importante: o aplicativo da web atualmente não inclui as verificações de modelagem!
Uma ferramenta CLI simples é fornecida para produzir dados de suporte ao idioma para um arquivo de font passado no arquivo.
Você precisará instalar o Python 3. Instale via PIP:
pip install hyperglothyperglot path/to/font.otf ou para verificar várias fontes de uma só vez, ou sua cobertura combinada (com -m union )
hyperglot path/to/font.otf path/to/anotherfont.otf ...Opções adicionais :
-s, --support : especifique qual nível de suporte para verificar (atualmente as opções são "base" (padrão se omitido) ou "aux")-m, --marks : sinalizador para sinalizar uma fonte também deve incluir todas as marcas de combinação usadas para um idioma -por padrão, apenas as marcas são necessárias que não fazem parte de caracteres pré -codificados (o padrão é falso)-d, --decomposed : Flag para sinalizar uma fonte deve ser considerada apoiar um idioma, desde que todos tenham glifos e marcas básicos para escrever um idioma -por padrão também são necessários glifos pré -compostos pré -compostos (o padrão é falso)-a, --autonyms : produz os nomes de idiomas em seu idioma nativo e script--speakers : OUPUT quantos falantes cada idioma tem (onde disponível)--sort : Especifique "alto-falantes" para classificar por alto-falantes (o padrão é "alfabético")--sort-dir : Especifique "Desc" para classificar em ordem decrescente (o padrão é "ASC" para ordem ascendente)-o, --output : forneça um caminho de arquivo para gravar a saída, no formato YAML. Para uma fonte de entrada única, este será um subconjunto do banco de dados hiperglot com os idiomas e ortografias que a fonte suporta. Se várias fontes forem fornecidas, o arquivo YAML terá uma chave de dicta de nível superior para cada arquivo. Se a opção -m for fornecida, o arquivo YAML conterá a interseção específica ou resultado da união-c, --comparison : Como processar a entrada se vários arquivos forem fornecidos (atualmente as opções são "individuais", "união" e "cruzamento")--include-all-orthographies : verifique todas as ortografias de um idioma, não apenas o (s) principal (s) principal (s)--validity : especifique filtrar pelo nível de validade dos dados do idioma (o padrão é "preliminar")--include-historical : opção para incluir idiomas e ortografias marcadas como históricas (o padrão é falso)--include-constructed : opção para incluir idiomas e ortografias marcadas como construídas (o padrão é falso)--strict-iso : exibir nomes de idiomas e dados macrolanguage estritamente de acordo com a ISO (o padrão é falso)-v, --verbose : mais informações de registro (o padrão é falso)-V, --version : imprima o número da versão da versão hiperglot (o padrão é falso) A instalação do pacote PIP também instalou os comandos hyperglot-validate e hyperglot-save , que permitem verificar e salvar os dados da YAML de maneira estruturada e compatível.
O Hyperglot vem com um comando hyperglot-report que tem as mesmas opções que o comando principal hyperglot (veja acima). Além disso, são necessárias essas opções para gerar relatórios sobre quais caracteres ou modelagem estão faltando para apoiar os idiomas detectados como não suportados:
--report-missing : Parâmetro para relatar idiomas incomparáveis que estão ausentes n ou menos caracteres. Se n for 0, todos os idiomas com qualquer número de caracteres ausentes estão listados (padrão).--report-marks : Parâmetro para relatar idiomas que estão ausentes N ou menos sequências de fixação de marcação. Se n for 0 todos os idiomas com qualquer número, qualquer número de sequências de fixação de marcação ausentes estiverem listadas (padrão).--report-joining : Parâmetro para relatar idiomas que estão ausentes N ou menos sequências de união. Se n for 0 todos os idiomas com qualquer número de seqüências de união ausentes (padrão).--report-all : parâmetro para definir/substituir todos os outros parâmetros --report-xxx . A estrutura de dados é descrita em um arquivo separado, juntamente com as diretrizes para contribuir.
As atualizações são emoldas/mescladas à filial dev com a filial master , mantendo a versão mais recente lançada.
Banco de dados e contribuindo
base + mark são afetadas pelas instruções da fonte O banco de dados e as ferramentas do Hyperglot foram originalmente desenvolvidos por Rosetta, especialistas em tipografia mundial, editores e fabricantes de fontes originais que atendem às necessidades da tipografia global.
Até agora, o desenvolvimento de ferramentas foi apoiado por Rosetta, Antonio Cavedoni (@verbosus) e estamos solicitando mais financiamento. Você também pode patrocinar hiperglota via Github.
Principais colaboradores, até agora:
A lista completa de colaboradores