2025-07-02 · Redakce Baduno · 7 blog.readMin · Blog a znalosti
Webová písma pro 24 jazyků: Výběr písma, subsetting, výkon
Písmo, které nese němčinu, řečtinu, maltštinu a arabštinu? Existuje zřídka – a pokud ano, pak s obtížemi. Strategie pro rychlou a krásnou mnohojazyčnost.
Problém pokrytí
Latinka se všemi diakritickými znaménky EU, řečtina, cyrilice, plus arabské písmo: Málokterá rodina písma pokrývá vše dobře. Pragmatickým řešením jsou páry písem – rodina pro latinku/řečtinu/cyrilici plus specializované RTL písmo, sladěné v tónu a výšce.
Subsetování masivně šetří
Plné fonty Unicode váží stovky kilobajtů. Podmnožiny pro systémy písma – načtené jen tam, kde jsou potřeba – to snižují na zlomky: RTL verze načítá RTL písmo, německá ne.

Načítání bez skoků
font-display:swap okamžitě zobrazí text systémovým písmem a poté vymění – proti skokům v rozvržení pomáhají metricky kompatibilní fallbacky a size-adjust. Hostováno vlastními silami místo cizího CDN: rychlejší a šetrnější k datům.
Typografie podle systému písma
Arabské písmo potřebuje větší řádkování a často o stupeň větší písmo; proklad verzálek funguje jen v latince. Designový systém, který zná taková pravidla pro každý systém písma, udělá z 24 jazyků jedno rozvržení – místo 25 kompromisů.
Variabilní písma: Flexibilita s překážkami
Variabilní písma slibují snížení počtu souborů tím, že do jednoho souboru sdružují několik řezů (tučný, kurzíva atd.). Pro vícejazyčné stránky s 24 jazyky je to lákavé: místo 24 × 4 = 96 statických souborů jen 24 variabilních? Ale pozor: Variabilní písma s širokým jazykovým pokrytím (latinka, řečtina, cyrilice, arabština) jsou vzácná a často velká. Subsetting je navíc složitější, protože variační osy ovlivňují znakovou sadu. Subsetované variabilní písmo může v závislosti na nastavení os vyžadovat různé glyfy, takže musíte buď uchovávat všechny subtypy, nebo je dynamicky generovat. Praktické je použití variabilních písem pro jednu rodinu písem (např. latinka + řečtina) a statických písem pro druhou (např. arabština) pro kontrolu velikosti souborů. Načítávejte variabilní písma pomocí font-weight: 100 900 a font-stretch: 75% 125% namísto jednotlivých řezů – ale otestujte zobrazení ve všech jazycích a prohlížečích, protože variabilní písma při subsettingu a rasterizaci někdy přinášejí neočekávané výsledky.
Licenčně souladné použití písem ve 24 jazycích
Právní stránka je často podceňována. Licence písma obvykle platí pro určitý počet zobrazení stránek nebo pro jednu doménu; u 24 jazykových variant můžete v závislosti na licenci narazit na omezení. Někteří poskytovatelé výslovně zakazují subsetting nebo vkládání do dynamického obsahu. Ujistěte se, že licence pokrývá všechny jazyky – zejména speciální znaky jako turecké İ, rumunské Ș nebo maltské Ħ jsou často považovány za rozšířenou znakovou sadu a nejsou vždy součástí standardního balíčku. Pro projekty v EU se doporučuje neomezená nebo podniková licence, která umožňuje subsetting a použití na více doménách. Dále zkontrolujte platnost licence písma pro vámi používanou technologii písma (např. WOFF2). Nástroj pro poradenství v oblasti licencí (např. od Fontstand) může pomoci předejít konfliktům – zaznamenejte licenční podmínky pro každé písmo do svého style guide, aby nebylo nutné provádět dodatečné úpravy.
Soutěž formátů: WOFF2, subsetovaná variabilní písma a Unicode-Range
Volba formátu souboru ovlivňuje dobu načítání a kompatibilitu. WOFF2 je dnes standardem a nabízí o 30-50% lepší kompresi než WOFF. Pokud používáte variabilní písma, zkontrolujte, zda váš cílový prohlížeč podporuje WOFF2 s variabilními osami (v současnosti všechny moderní prohlížeče). U starších prohlížečů (IE11) musíte mít připraveny statické WOFF soubory jako záložní. Efektivní trik: Použijte Unicode-Range v @font-face k načtení pouze skutečně potřebné znakové sady – podobně jako subsetting, ale řízené na straně serveru. Zkombinujte to s font-display: swap; optimalizaci načítání můžete podpořit pomocí preload pro kritické varianty písma (např. základní písmo pro latinku). Příklad z praxe: Pro německou stránku načtěte pouze subset latinka+umlauty (cca 30 KB), pro řeckou stránku subset latinka+řečtina (cca 50 KB), pro arabskou stránku subset latinka+arabština (cca 80 KB). I při 24 jazycích tak celkové stahování na návštěvníka zůstane pod 100 KB dat písma.
Písmo, které nese němčinu, řečtinu, maltštinu a arabštinu? Existuje zřídka – a pokud ano, pak s obtížemi. Strategie pro rychlou a krásnou mnohojazyčnost.
Automatizované zajištění kvality zobrazení písma
Aby ve všech 24 jazykových variantách nechyběly glyfy nebo nepůsobily roztříštěně, měli byste do své CI/CD pipeline začlenit automatizované testy. Nástroje jako FontProof, Wakamai Fondue nebo Python skript fontdiff porovnávají vykreslené snímky každé jazykové verze s referenčním snímkem. Nebo můžete použít Puppeteer k otevření každé stránky, načtení písma a kontrole mezer (pomocí CSS vlastnosti font-family: …; font-unicode-range). Ještě systematičtější: extrahujte všechny Unicode kódové body vyskytující se v HTML pro každou jazykovou verzi a porovnejte je s glyfy přítomnými v subsetu. Pokud znak chybí, sestavení se přeruší nebo se zobrazí varování. Tyto testy by měly také kontrolovat čitelnost ligatur nebo alternativních znaků (např. arabské iniciální formy). Dále integrujte kontrolu výkonnostního rozpočtu: velikost písma na jazyk nesmí překročit určitou hranici. Tím zajistíte, že vícejazyčnost není na úkor doby načítání.
Subsetting s podporou AI: Efektivita díky automatizaci se zajištěním kvality
Ruční správa subsetů pro 24 jazyků je náročná a náchylná k chybám. Moderní nástroje jako glyphhanger nebo HarfBuzz dokážou automaticky generovat subsets na základě znaků skutečně se vyskytujících v obsahu. Proces je ještě efektivnější, když použijete modely AI, které předpovídají potřebné bloky Unicode z jazykových verzí. Neuronová síť trénovaná na vícejazyčných webech dokáže s vysokou přesností určit, které glyfy jsou pro daný jazyk nezbytné – od základních latinských znaků přes cyrilici až po arabské ligatury. Automaticky vytvořený subset je poté podroben ruční kontrole rodilým mluvčím, aby bylo zajištěno, že nechybí žádné vzácné, ale důležité znaky (např. historické citace, speciální znaky v názvech firem). Tato kombinace urychlení pomocí AI a lidské kontroly snižuje tvorbu subsetů z dní na hodiny při zachování stejně vysoké kvality. Integrujte skript do své CI/CD pipeline, aby se při každé aktualizaci obsahu subsets automaticky přegenerovaly a otestovaly. Tím zajistíte, že soubory písem jsou vždy aktuální, aniž by to ovlivnilo výkon načítání.
Jazykově specifické strategie záložních písem pro konzistentní typografii
I při optimálním subsetingu může nastat situace, že se soubor písma nenačte – ať už kvůli síťové chybě, nekompatibilitě prohlížeče nebo licenčním omezením. Tehdy nastupuje záložní stack. Pro 24 jazyků jeden globální font-stack nestačí: systémové písmo, které vypadá dobře v němčině, může být pro arabštinu nevhodné. Definujte proto pro každou jazykovou verzi samostatné záložní stacky přizpůsobené typickým systémovým písmům cílové oblasti. Použijte k tomu CSS funkci @font-face s unicode-range, abyste pro každou rodinu písem načetli pouze znaky, které jsou skutečně potřeba. Pro arabskou verzi můžete jako záložní písmo uvést 'Traditional Arabic' nebo 'Tahoma', pro řeckou 'GFS Didot' nebo 'Times New Roman'. Dbejte na metrickou kompatibilitu: pomocí size-adjust a ascent-override vizuálně přizpůsobte záložní písmo primárnímu, aby se minimalizovaly skoky v rozložení. Otestujte tato záložní písma ve všech jazycích pomocí automatizovaného srovnání screenshotů, abyste se ujistili, že čitelnost zůstává zachována i v případě chyby. Předejdete tak překvapením a zajistíte konzistentní uživatelský zážitek napříč všemi jazykovými variantami.
Optimalizace na straně serveru: Self-hosting, caching a CDN strategie
Doručování webových písem prostřednictvím externích služeb, jako jsou Google Fonts nebo Adobe Fonts, je sice pohodlné, ale přináší nevýhody pro vícejazyčné projekty: Zaprvé, u 24 jazykových variant musíte často odesílat několik požadavků na různé servery, což zvyšuje dobu načítání. Zadruhé, neznáte strategii ukládání do mezipaměti daného poskytovatele a nemáte kontrolu nad výpadky ani ochranou soukromí. Proto doporučujeme self-hosting všech souborů písem na vlastním serveru nebo vyhrazeném CDN. Díky self-hostingu můžete přesně přizpůsobit subsets písem svým jazykovým verzím a pomocí HTTP/2 Server Push nebo Preload-Hints upřednostnit kritická písma. Navíc můžete pomocí Cache-Control hlaviček řídit ukládání do mezipaměti tak, aby se písma pro všechny návštěvníky dané jazykové verze načetla pouze jednou. CDN s edge servery v blízkosti vašich uživatelů zkracuje latenci. Pro 24 jazyků s různými cílovými regiony je CDN nezbytné: Uživatelé ve Finsku načítají finský subset písma z blízkého edge uzlu, uživatelé na Maltě obdobně. Důležité: Nastavte pro každou jazykovou verzi vlastní pravidlo pro caching, například německý subsetový soubor s dlouhou platností (např. jeden rok), zatímco při aktualizacích písem zneplatníte cache změnou názvu souboru (fingerprinting). Tím zajistíte, že písma budou doručena rychle a budou vždy aktuální, aniž by uživatelé museli čekat na aktualizace.
Přístupnost a čitelnost: Výběr písma pro všechny skupiny uživatelů
Vícejazyčnost neznamená pouze správné zobrazení znaků, ale také to, že písmo je dobře čitelné pro všechny uživatele – bez ohledu na zrakové schopnosti, velikost obrazovky nebo zařízení. Při výběru písma dbejte na dostatečnou rozlišitelnost písmen, zejména u podobných znaků jako 'rn' vs. 'm' nebo '0' vs. 'O'. Pro latinská písma jsou vhodné bezpatkové fonty s velkou výškou x a otevřenými tvary; pro arabská písma jsou důležité fonty s jasnými spoji a dostatečným vnitřním prostorem. Ujistěte se, že písmo při zvětšení na 200 % netřepí ani se neposouvají mezery. V CSS použijte font-size-adjust: from-font nebo nastavte explicitní záložní písma s podobnými proporcemi, abyste předešli skokům v rozložení při zoomu. Dalším aspektem je úroveň kontrastu: písmo na pozadí by mělo splňovat alespoň WCAG-AA (4,5:1), u malého písma raději AAA (7:1). Pro 24 jazyků to znamená: otestujte každou jazykovou verzi pomocí kontroleru kontrastu, protože některá písma ztrácejí kontrast při určitých tloušťkách tahů nebo kurzívě. Také délka řádků a řádkování by měly být přizpůsobeny jazyku – arabské texty často vyžadují větší výšku řádků než latinské. Zahrňte tyto testy do své automatizované kontroly kvality (viz oddíl 4), abyste zajistili, že všichni uživatelé – včetně starších nebo se zrakovým postižením – mohou váš obsah optimálně vnímat.
blog.faqT
Mohu použít Google Fonts pro vícejazyčné stránky EU?
Technicky ano, ale z hlediska ochrany osobních údajů problematické, protože Google zaznamenává IP adresy návštěvníků. Pro stránky v EU je doporučeno písmo hostované na vlastním serveru. Kromě toho Google Fonts nabízí pouze omezený výběr vícejazyčných písem; možná budete muset kombinovat několik rodin, což zvyšuje zátěž při načítání.
Jak zkontroluji, zda mé písmo pokrývá všechny potřebné glyfy?
Použijte nástroje jako GlyphChecker nebo Unicode-Range-Test od Wakamai Fondue. Zadejte znaky svých cílových jazyků (např. turecké İ, rumunské Ș). Alternativně analyzujte svůj redakční systém a extrahujte všechny Unicode kódové body pro každou jazykovou stránku a porovnejte je s písmem. Tak odhalíte mezery před spuštěním.