HyperGlotは、タイプデザイナーがフォントでの言語サポートの一見シンプルな質問に答えるのに役立ちます。フォントAを使用して言語Bでテキストを設定できますか?言語で使用される各正書法の標準文字セットを識別することにより、実用的な答えが必要です。現在、640以上の言語の情報が含まれているデータベースは、成長するように設計された進行中の作業です。
言語の各正書法に基本的な文字セットと補助文字セットを記録します。フォントで言語サポートを検出するときに、アクティブに使用される正書法(それらのステータスがprimaryに設定されている)のみが使用されることに注意してください。その他の、二次的または歴史的な正書法は、情報のためだけに表示されます。
関連する場合は、ユニコード文字コードポイントを超える形状と位置決め要件に関するヒントを含む簡単なデザインノートも提供します。 HyperGlotは、特定の言語で使用するためにフォントを検討できるかどうかを検出するためにのみ使用する必要があります。フォントのデザインの品質については何も言っていません。
Hyperglotは、そのまま提供される進行中の作業であり、その言語データの有効性はさまざまです。表示する結果の妥当性を評価するために、データベース内の各言語には、私たちが持っているデータの品質を示すラベルが付いています(例えば、 draftsと見なされ、いくつかはverifiedています)。さまざまなオンラインおよびオフラインのソースに対して情報を確認しましたが、継続的に改善することを約束しています。ただし、この方法で世界のすべての言語をマッピングすることは私たちの能力を超えていることを認めています。それぞれの言語のユーザーからの助けが必要です!したがって、問題を見つけたり、お気に入りの言語がデータベースから完全に欠落していることに気付いた場合は、連絡を取ります。私たちはあなたのフィードバックを喜んで組み込み、あなたに功績があります。
HyperGlotの詳細については、Webアプリについてページについて読む
HyperglotとUnicode Cldrの比較
データベースを使用する方法はいくつかあります。
pip install hyperglot 、以下の使用法を参照)pip install hyperglot )言語サポートの問題が複雑である理由を示すいくつかのメモ:
一連のコードポイントをサポートするよりも、フォントには言語サポートには多くのことがあることに注意することが重要です。フォントには、特定の言語の文字の許容可能/読み取り可能な形状のグリフを含める必要があります。同じコードポイントには地域または言語のバリエーションがある場合があります。これは、異なる言語が文字の形状に異なる要件をもたらすが、文字のコードポイントに同一の要件をもたらすことを意味します。さらに、グリフは、特定のスクリプト/正書法の慣習で予想されるように相互作用する必要があります。たとえば、一部の言語/スクリプトでは、結晶を形成するために特定のGlyphの組み合わせが必要です(または強く予想されます)、または一部のGLYPHの組み合わせでは、衝突やギャップを防ぐために追加の間隔補正(Kerning)が必要です。したがって、Hyperglotツールによって作成されたレポートは、特定の言語で使用するためにフォントを検討できるかどうかを検出するためにのみ使用する必要があります。デザインの品質については何も言っていません。
これについては、ページに関するWebアプリでもっと読む
文字は、デジタルテキストのUnicodeコードポイントを使用して表現されます。たとえば、ラテンスクリプト文字aにはコードポイントU+0061があります。 Digital Opentype Fontsこれらのコードポイントは、グリフ、文字の視覚的表現にマッピングされます。特定の言語のテキストにフォントを使用できるかどうかを見つけるために、言語にどの文字コードポイントが必要かを知る必要があります。これがHyperGlotデータベースの目的です。
コードポイントのリストはフォントから取得されます。
データベースには、2つのモードでアクセスできます。
ä )、ベース文字のコードポイント、およびこれらの組み合わせからマーク文字( aおよび組み合わせ¨ )を組み合わせて組み合わせたフォームがない場合、または--marksフラグが使用されない限り不要です。--decomposed Flagフォントを使用するには、基本文字と言語のマークを組み合わせるために必要です(たとえば、エンコードされたグリフとしては、アクはaと結合¨ではなく、 ä äとは一致します)。指定されたvalidityレベルは、低い(意味があり、より不確実な)有効性で言語エントリを除外するために使用されます。
要求された場合、コードポイントのbaseとaux (補助)リストを組み合わせて、 --supportオプションを使用してより厳格な基準を実現します。データ内のmarks 、 --decomposedおよび--marksフラグに基づいて必要です。 aux文字にのみ表示されるマークは、 baseな妥当性には必要ありません。
言語サポートを検出するとき、特定の言語の主要な正書法のコードポイントが考慮されます。 historicalおよびsecondaryステータスを持つ正書法は無視されます。複数の正書法にpreferred_as_group値がある場合、複数のスクリプトを含めても、1つの正書法と見なされます。
正書法のサポートを検出する場合、使用--include-all-orthographies 、特定の言語のすべての正書法が個別にチェックされます。 secondaryステータスの正書法が含まれています。 historical地位を持つ正書法は無視されます。
フォント内のコードポイントのリストに、ポイント5または6のコードポイントのリストからのすべてのコードポイントが含まれている場合、フォントはこの言語/正書法をサポートするために考慮されます。さらに、動作とマークの添付ファイルの結合が検証され、フォントがこれらを正しく形成する場合にのみ、言語/オーソグラフィーがサポートされると見なされます。リストでは、サポートされている言語はスクリプトによってグループ化されています。
言語総統派の組み合わせとは、異なるスクリプト(セルビア語または日本語など)を使用して複数の正書法を備えた言語が、ツールの出力内のこれらすべてのスクリプトの下にリストされていることを意味します。
重要な注意:Webアプリには現在、シェーピングチェックが含まれていません!
渡されたフォントファイルの出力言語サポートデータには、簡単なCLIツールが提供されています。
Python 3をインストールする必要があります。 PIP経由でインストール:
pip install hyperglothyperglot path/to/font.otfまたは、一度にいくつかのフォントまたはそれらの合計カバレッジを確認する( -m unionを使用)
hyperglot path/to/font.otf path/to/anotherfont.otf ...追加オプション:
-s, --support :チェックするサポートのレベルを指定します(現在のオプションは「ベース」(省略されている場合はデフォルト)または「aux」です)-m, --marks :フォントを信号するフラグには、言語に使用されるすべての組み合わせマークも含める必要があります - デフォルトでは、事前エンコード文字の一部ではないマークのみが必要です(デフォルトはfalse)-d, --decomposed :フォントを信号するフラグは、言語を書くためにすべてのベースグリフとマークを持っている限り、言語をサポートすると見なす必要があります - デフォルトではエンコードされた事前登録されたグリフも必要です(デフォルトは偽です)-a, --autonyms :母国語とスクリプトに言語名を出力する--speakers :各言語のスピーカーの数(利用可能な場合)の数--sort :スピーカーによってソートする「スピーカー」を指定します(デフォルトは「アルファベット」です)--sort-dir :「DESC」を指定して降順で並べ替えます(昇順でデフォルトは「ASC」です)-o, --output :yaml形式で出力を書き込むファイルパスを提供します。単一の入力フォントの場合、これは、フォントがサポートする言語と正書法を備えたHyperGlotデータベースのサブセットになります。いくつかのフォントが提供されている場合、YAMLファイルには、各ファイルのトップレベルのDICTキーがあります。 -mオプションが提供されている場合、YAMLファイルには特定の交差または組合の結果が含まれます-c, --comparison :いくつかのファイルが提供されている場合に入力を処理する方法(現在のオプションは「個別」、「ユニオン」、「交差」です)--include-all-orthographies :主要なものだけでなく、言語のすべての正書法を確認してください--validity :言語データの有効性のレベルでフィルタリングするように指定します(デフォルトは「予備」です)--include-historical :履歴としてマークされた言語と正書法を含めるオプション(デフォルトは偽です)--include-constructed :構築されたものとしてマークされた言語と正書法を含めるオプション(デフォルトはfalse)--strict-iso :ISOによると言語名とマクロ言語データを厳密に表示します(デフォルトは偽です)-v, --verbose :より多くのロギング情報(デフォルトはfalse)-V, --version :バージョンHyperglotバージョン番号を印刷します(デフォルトはfalse) PIPパッケージをインストールすると、 hyperglot-validateおよびhyperglot-saveコマンドもインストールされ、構造化された互換性のある方法でYAMLデータをチェックおよび保存できます。
HyperGlotには、同じオプションをすべてメインhyperglotコマンド(上記参照)と同じオプションを取得するhyperglot-reportコマンドが付属しています。さらに、これらのオプションは、サポートされていないと検出された言語をサポートするために、どの文字またはシェーピングが欠落しているかについての出力レポートに使用します。
--report-missing :パラメーターn以下の文字が欠落している比類のない言語を報告するパラメーター。 nが0の場合、不足している数字の数がリストされているすべての言語がリストされています(デフォルト)。--report-marks : n以下のマークアタッチメントシーケンスが欠落している言語を報告するパラメーター。 nが0の場合、任意の数のすべての言語が任意の数の欠落マークアタッチメントシーケンスがリストされています(デフォルト)。--report-joining : n以下の結合シーケンスが欠落している言語を報告するパラメーター。 nが0の場合、任意の数の欠落接合シーケンスを任意の数の言語がリストされています(デフォルト)。--report-all :他のすべてのすべての--report-xxxパラメーターを設定/上書きするパラメーター。 データ構造は、貢献のためのガイドラインとともに別のファイルで説明されています。
更新は、最新のリリースバージョンを保持しているmasterブランチとともに、 devブランチに合わせて融合されています。
データベースと貢献
base + mark組み合わせがフォントの指示によって影響を受けるかどうかを確認しますHyperGlotデータベースとツールは、もともと、世界のタイポグラフィー、出版社、グローバルなタイポグラフィのニーズに対応する元のフォントのメーカーであるRosettaによって開発されました。
これまでのところ、ツール開発はロゼッタ、アントニオカブドーニ(@verbosus)によってサポートされており、より多くの資金を申請しています。 Github経由でHyperGlotをスポンサーすることもできます。
これまでの主な貢献者:
貢献者の完全なリスト