How to deploy latin filter as a default for i18n sites
- Step 1Filter to Latin — Run the Latin Filter on your brand font, output to brand-latin.woff2. This is the default served to every visitor regardless of locale.
- Step 2Generate extended subsets — Run the Smart Subsetter with cyrillic, greek, vietnamese presets for each non-Latin audience. Output one WOFF2 per locale.
- Step 3Emit unicode-range @font-face — Latin @font-face has unicode-range covering Basic + Latin-1 (default — no unicode-range needed). Cyrillic @font-face has unicode-range: U+0400-04FF. Browsers download only what their content needs.
Frequently asked questions
What if I need Latin Extended too?+
Add a third @font-face for Latin Extended (U+0100-024F). Sites with Polish or Turkish traffic need this; pure-English sites skip it. Each extra @font-face adds 5–10 KB worth of unused glyphs only when needed.
Does this work with variable fonts?+
Yes. Subset the variable font itself (not its static instances) to each charset. The result is a smaller variable font per charset. Browsers stitch them together via unicode-range exactly the same way.
How do I test fallback behaviour?+
Use Chrome DevTools → Coverage tab while typing in different languages. The browser only fetches the WOFF2 matching characters rendered. Switch to a Russian page → see Cyrillic WOFF2 fetch in DevTools Network.
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.