How to audit multilingual font coverage with the coverage map
- Step 1Map locales to Unicode blocks — Each locale needs specific blocks: English → Latin Basic + Latin-1. Russian → Cyrillic. Greek → Greek + Greek Extended. Vietnamese → Latin Extended Additional. Thai → Thai. Arabic → Arabic + Arabic Supplement. CJK → CJK Unified Ideographs.
- Step 2Run the Coverage Map — Drop the font. Confirm each required block shows 100% (or near-100%) coverage. Below 100%, expect tofu for some characters in that locale.
- Step 3Document gaps — If a block is partially covered, dig into which characters are missing. Some 'Latin Extended-A' fonts only ship the Polish characters but not Czech — partial coverage that's still a deal-breaker for some locales.
Frequently asked questions
What about complex shaping (Arabic, Devanagari)?+
Coverage Map shows codepoint coverage only, not shaping correctness. A font with 100% Arabic coverage may still render incorrectly without proper GSUB shaping rules. Visual review of rendered text is essential for complex scripts.
Do I need 100% block coverage?+
Depends on the block. Latin Basic — yes, always. Misc Symbols — usually no, OS fallback handles emoji and dingbats. Match required coverage to the actual content the font will render.
What about Hangul?+
Hangul Syllables (U+AC00–U+D7A3) is a huge block (11,172 codepoints). Korean fonts include all of them; Latin fonts include none. The Map clearly distinguishes.
Privacy first
Every JAD Font tool runs entirely in your browser using opentype.js and the wawoff2 WASM Brotli encoder. Your fonts never leave your device — verified by zero outbound network requests during processing.