HyperGlot可以幫助類型設計師回答字體中看似簡單的語言支持問題:我何時可以使用字體a在語言B中設置文本?通過確定語言使用的每個拼字法的標準字符集,它可以做出務實的答案。目前包含640多種語言信息的數據庫正在進行中,旨在成長。
我們為每個語言的每個拼字法記錄一個基本和任何輔助字符集。請注意,在字體中檢測語言支持時,僅使用主動使用的拼字法(其狀態設置為primary )。僅出於信息目的顯示其他,二級或歷史拼字法。
在相關的情況下,我們還提供了一個簡短的設計說明,其中包含有關塑造和定位要求的提示,這些提示超出了Unicode字符代碼點。 HyperGlot僅應用於檢測是否可以考慮使用特定語言的字體。它沒有說明字體設計的質量。
HyperGlot是按原樣提供的一項正在進行的工作,其語言數據的有效性也有所不同。為了幫助您評估您查看的結果的有效性,數據庫中的每種語言都帶有一個標籤,指示我們擁有的數據的質量(例如,有些被視為drafts ,有些已verified )。我們已經檢查了針對各種在線和離線資源的信息,我們致力於不斷改進。但是,我們承認以這種方式映射世界上所有語言都超出了我們的能力 - 我們需要各自語言的用戶的幫助!因此,如果您發現問題或註意到數據庫中完全缺少您喜歡的語言,請與您聯繫。我們將很樂意整合您的反饋並值得您讚揚。
在Web應用程序上了解有關頁面上有關HyperGlot的更多信息
HyperGlot和Unicode CLDR的比較
使用數據庫有幾種方法:
pip install hyperglot ,請參見下面的用法註釋)pip install hyperglot )一些註釋來說明為什麼語言支持問題很複雜:
重要的是要注意,字體中的語言支持更多,而不是支持一組代碼點。字體需要包括具有特定語言字符的可接受/可讀形狀的字形。有時,對於同一代碼點會有區域性或語言變化,這意味著不同語言對角色的形狀提出了不同的要求,但在字符的代碼點上需要相同的要求。此外,字形必須按照特定腳本/拼字法的約定如預期的那樣進行交互。例如,某些語言/腳本需要(或強烈期望)某些字形組合以形成連接或某些字形組合需要額外的間距校正(kerning),以防止衝突或間隙。因此,HyperGlot工俱生成的報告應僅用於檢測是否可以考慮使用特定語言的字體。它對設計的質量沒有任何說法。
在有關頁面的Web應用程序上閱讀有關此信息的更多信息
字符使用數字文本中的Unicode代碼點表示,例如拉丁字母a的代碼點U+0061 。數字Opentype字體將這些代碼點映射到字形,字符的視覺表示。為了找到是否可以使用特定語言的文本使用字體,需要知道該語言需要哪些字符代碼點。這就是HyperGlot數據庫的目的。
從字體獲得編碼點列表。
可以以兩種模式訪問數據庫:
ä ),基本字符的編碼點以及不需要這些組合的標記字符(例如a和組合¨ ,除非組合沒有編碼的形式或使用--marks標誌。--decomposed標誌字體必須包含基本字符並組合語言的標記(例如,具有ä的語言將匹配僅具有a and ¨的字體,但不能像編碼的字形那樣組合ä )。指定的validity級別用於濾除較低(含義,不確定)有效性的語言條目。
如果要求,將組合編碼點的base和aux (輔助)列表組合在一起,以通過使用--support選項來實現更嚴格的條件。數據中的marks是基於--decomposed和--marks標誌所需的。僅出現在aux字符中的標記將不需要base有效性。
當檢測語言支持時,考慮到給定語言的任何主要拼字法的代碼點。具有historical和secondary地位的拼字法被忽略。如果多個拼字圖具有preferred_as_group值,即使包括幾個腳本,它們也被視為一個拼字法。
當檢測拼字法支持時,請使用--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 :要發出信號字體的標誌,只要它具有所有基本字形和標記來編寫語言的語言 - 默認情況下還需要編碼的預先編寫的glyphs(默認為false)-a, --autonyms :以其母語和腳本輸出語言名稱--speakers :輸出每種語言有多少個說話者(可用的地方)--sort :指定“揚聲器”來按揚聲器進行排序(默認為“字母”)--sort-dir :指定“ desc”以降序排序(默認為“ ASC”升序訂單)-o, --output :提供一個文件路徑,以yaml格式寫入輸出。對於單個輸入字體,這將是字體支持的語言和拼字圖的HyperGlot數據庫的子集。如果提供了幾個字體,則YAML文件將為每個文件具有最高級別的DICT鍵。如果提供了-m選項,則YAML文件將包含特定的交叉點或聯合結果-c, --comparison :如果提供了多個文件,如何處理輸入(當前選項是“單個”,“ Union”和“交叉點”)--include-all-orthographies :檢查一種語言的所有拼字圖,而不僅僅是其主要的拼字圖--validity :指定通過語言數據的有效性級別過濾(默認為“初步”)--include-historical :包括標記為歷史的語言和拼字法(默認為false)的選項--include-constructed :包括標記為構造的語言和拼字圖的選項(默認為false)--strict-iso :嚴格按ISO顯示語言名稱和大語數據(默認為false)-v, --verbose :更多記錄信息(默認為false)-V, --version :打印版本hyperglot版本號(默認為false)安裝PIP軟件包還安裝了hyperglot-validate和hyperglot-save命令,該命令允許以結構化和兼容的方式檢查和保存YAML數據。
HyperGlot帶有一個hyperglot-report命令,該命令採用所有相同的選項,即主hyperglot命令(請參見上文)。此外,它還需要這些選項來輸出報告缺少哪些字符或塑形的內容,以支持被檢測到的不支持的語言:
--report-missing :報告缺少n或更少字符的無與倫比的語言的參數。如果n是0個所有語言,則列出了任何數量的缺少字符(默認)。--report-marks :報告缺少n或更少標記附件序列的語言的參數。如果n是0個所有語言,則列出了任何數量的任何數字丟失的標記附件序列(默認)。--report-joining :報告缺少n或更少連接序列的語言的參數。如果n是0個所有語言,則列出了任何數量的丟失的加入序列(默認)。--report-all :設置/覆蓋所有其他所有其他--report-xxx參數的參數。 數據結構在單獨的文件中以及用於貢獻的指南中描述。
更新被委託/合併到dev分支機構,其中master分支持有最新發布的版本。
數據庫和貢獻
base + mark組合是否受字體說明影響HyperGlot數據庫和工具最初是由Rosetta,世界版式專家,發布者和原始字體製造商開發的,這些字體可滿足全球排版的需求。
到目前為止,該工具開發得到了Rosetta,Antonio Cavedoni(@verbosus)的支持,我們正在申請更多資金。您也可以通過GitHub贊助HyperGlot。
到目前為止,主要貢獻者:
貢獻者的完整列表