2025-07-02 · Uredništvo Baduno · 8 blog.readMin · Blog & Znanje
Spletne pisave za 24 jezikov: Izbira pisave, podmnožice, zmogljivost
Pisava, ki podpira nemščino, grščino, malteščino in arabščino? Redka – in če obstaja, je težka. Strategije za hitro, lepo večjezičnost.
Problem pokritosti
Latinica z vsemi EU ločevalnimi znamenji, grščina, cirilica, plus arabska pisava: Le malo pisav vse dobro pokriva. Pragmatična rešitev so pari pisav – družina latinica/grščina/cirilica plus specializirana RTL pisava, usklajena po sivinski vrednosti in višini.
Subsetting prihrani ogromno
Celotne pisave Unicode tehtajo več sto kilobajtov. Podmnožice po pisavah – naložene le tam, kjer so potrebne – jih zmanjšajo na delčke: RTL različica naloži RTL pisavo, nemška ne.

Nalaganje brez preskakovanja
font-display:swap takoj prikaže besedilo s sistemsko pisavo in jo nato zamenja – proti preskokom postavitve pomagajo metrično združljive rezervne pisave in size-adjust. Samogostovanje namesto tujega CDN: hitrejše in prijaznejše do zasebnosti.
Tipografija po pisavnem sistemu
Arabska pisava potrebuje večjo višino vrstice in pogosto za eno točko večjo stopnjo; razmik med velikimi črkami deluje le v latinici. Oblikovni sistem, ki pozna takšna pravila po posameznih pisavah, naredi iz 24 jezikov eno postavitev – namesto 25 kompromisov.
Variable pisave: Prilagodljivost z ovirami
Variable pisave obljubljajo zmanjšano število datotek, saj združujejo več rezov (krepko, ležeče itd.) v eno datoteko. Za večjezične strani s 24 jeziki je to mamljivo: namesto 24 × 4 = 96 statičnih datotek le 24 variabilnih? Vendar previdno: variabilne pisave s širokim jezikovnim obsegom (latinica, grščina, cirilica, arabščina) so redke in pogosto velike. Podmnožice (subsetting) postanejo bolj zapletene, saj osi variacij vplivajo na nabor znakov. Podmnožena variabilna pisava lahko glede na izraženost osi potrebuje različne glife, zato morate bodisi hraniti vse podmnožice bodisi jih dinamično ustvarjati. Praktično je uporaba variabilnih pisav za eno družino pisav (npr. latinica + grščina) in statičnih pisav za drugo (npr. arabščina) za nadzor nad velikostjo datotek. Naložite variabilne pisave prek font-weight: 100 900 in font-stretch: 75% 125% namesto posameznih rezov – vendar preizkusite prikaz v vseh jezikih in brskalnikih, saj variabilne pisave pri podmnoženju in rasterizaciji včasih dajejo nepričakovane rezultate.
Licenčno skladna uporaba pisav v 24 jezikih
Pravna plat je pogosto podcenjena. Licenca za pisavo običajno velja za določeno število ogledov spletne strani ali za domeno; pri 24 jezikovnih različicah lahko glede na licenco že naletite na omejitve. Nekateri ponudniki izrecno prepovedujejo podmnoženje ali vdelavo v dinamične vsebine. Pazite, da licenca pokriva vse jezike – zlasti posebne znake, kot so turški İ, romunski Ș ali malteški Ħ, ki pogosto veljajo za razširjen nabor znakov in niso vedno vključeni v standardni paket. Za projekte EU priporočamo licenco Unlimited ali Enterprise, ki dovoljuje tudi podmnoženje in uporabo na več domenah. Preverite tudi veljavnost licence pisave za tehnologijo pisave, ki jo uporabljate (npr. WOFF2). Orodje za svetovanje o licencah (npr. Fontstand) lahko pomaga preprečiti konflikte – zabeležite pogoje licence za vsako pisavo v svojem slogovnem vodniku, da ne bodo potrebne poznejše prilagoditve.
Formatna tekma: WOFF2, podmnožene variabilne pisave in Unicode-Range
Izbira formata datoteke vpliva na čas nalaganja in združljivost. WOFF2 je danes standard in ponuja približno 30-50 % boljšo kompresijo kot WOFF. Če uporabljate variabilne pisave, preverite, ali ciljni brskalnik podpira WOFF2 z variabilnimi osmi (trenutno vsi sodobni brskalniki). Za starejše brskalnike (IE11) morate imeti na voljo statične WOFF datoteke kot rezervo. Učinkovit trik: uporabite Unicode-Range v @font-face, da naložite le dejansko potreben nabor znakov – podobno kot podmnoženje, a strežniško vodeno. Kombinirajte z font-display: swap; optimizacijo nalaganja lahko podprete s preload za kritične različice pisav (npr. osnovna pisava za latinico). Praktični primer: za nemško stran naložite le podmnožico latinice + umlauti (pribl. 30 KB), za grško stran podmnožico latinice + grščina (pribl. 50 KB), za arabsko stran podmnožico latinice + arabščina (pribl. 80 KB). Tako ostanejo tudi pri 24 jezikih skupni prenosi na obiskovalca pod 100 KB podatkov o pisavi.
Pisava, ki podpira nemščino, grščino, malteščino in arabščino? Redka – in če obstaja, je težka. Strategije za hitro, lepo večjezičnost.
Avtomatizirano zagotavljanje kakovosti prikaza pisave
Da v vseh 24 jezikovnih različicah ne manjka glifov ali da ne delujejo razdrobljeno, vključite avtomatizirane teste v svoj CI/CD cevovod. Orodja, kot so FontProof, Wakamai Fondue ali Python skripta fontdiff, primerjajo posnete zaslonske slike vsake jezikovne različice z referenčno zaslonsko sliko. Lahko pa uporabite Puppeteer, da odprete vsako stran, naložite pisavo in preverite praznine (prek lastnosti CSS font-family: …; font-unicode-range). Še bolj sistematično: izvlecite vse Unicode kodne točke, ki se pojavljajo v HTML za vsako jezikovno različico, in jih uskladite z glifi, ki so prisotni v podmnožici. Če manjka znak, se gradnja prekine ali se izda opozorilo. Ti testi morajo preveriti tudi berljivost ligatur ali alternativnih znakov (npr. arabske začetne oblike). Dodajte tudi preverjanje proračuna zmogljivosti: velikost pisave na jezik ne sme preseči določenega praga. Tako zagotovite, da večjezičnost ne vpliva na čas nalaganja.
Podmnožica s pomočjo UI: Učinkovitost z avtomatizacijo in zagotavljanjem kakovosti
Ročno upravljanje podmnožic za 24 jezikov je zamudno in nagnjeno k napakam. Sodobna orodja za gradnjo, kot sta glyphhanger ali HarfBuzz, lahko na podlagi dejanskih znakov v vsebini samodejno ustvarijo podmnožice. Postopek postane še učinkovitejši, če uporabite modele UI, ki napovedujejo potrebne Unicode bloke iz jezikovnih različic. Nevronska mreža, izurjena na večjezičnih spletnih straneh, lahko z visoko natančnostjo določi, katere glife so potrebne za določen jezik – od osnovnih latiničnih znakov do ciriličnih dodatkov in arabskih ligatur. Samodejno ustvarjena podmnožica se nato predloži ročnemu pregledu s strani naravnega govorca, da se zagotovi, da ne manjkajo redki, a pomembni znaki (npr. zgodovinski citati, posebni znaki v imenih podjetij). Ta kombinacija pospeševanja z UI in človeškega nadzora skrajša ustvarjanje podmnožic z dni na ure ob enako visoki kakovosti. Vključite skript v svojo CI/CD cevovod, da se ob vsaki posodobitvi vsebine podmnožice samodejno znova ustvarijo in preizkusijo. Tako zagotovite, da so datoteke pisav vedno posodobljene, ne da bi to vplivalo na zmogljivost nalaganja.
Jezikovno specifične strategije rezervnih pisav za dosledno tipografijo
Tudi pri optimalnem podmnoženju se lahko zgodi, da se datoteka pisave ne naloži – bodisi zaradi napake v omrežju, nezdružljivosti brskalnika ali omejitev licenc. Takrat stopi v veljavo sklad rezervnih pisav. Za 24 jezikov globalni sklad pisav ni dovolj: sistemska pisava, ki je videti dobra za nemščino, je lahko neprimerna za arabščino. Zato za vsako jezikovno različico določite ločene sklade rezervnih pisav, prilagojene tipičnim sistemskim pisavam ciljne regije. Za to uporabite CSS funkcijo @font-face z unicode-range, da za vsako družino pisav naložite le tiste znake, ki so dejansko potrebni. Za arabsko različico lahko kot rezervno pisavo določite 'Traditional Arabic' ali 'Tahoma', za grško 'GFS Didot' ali 'Times New Roman'. Bodite pozorni na metrično združljivost: s pomočjo size-adjust in ascent-override prilagodite rezervno pisavo vizualno primarni pisavi, da se zmanjšajo preskoki postavitve. Testirajte te rezervne pisave v vseh jezikih z avtomatizirano primerjavo posnetkov zaslona, da zagotovite, da je berljivost ohranjena tudi v primeru napake. Tako se izognete presenečenjem in zagotovite dosledno uporabniško izkušnjo v vseh jezikovnih različicah.
Optimizacija na strežniku: samostojno gostovanje, predpomnjenje in strategije CDN
Dostava spletnih pisav prek zunanjih storitev, kot sta Google Fonts ali Adobe Fonts, je priročna, vendar prinaša pomanjkljivosti za večjezične projekte: Prvič, pri 24 jezikovnih različicah morate pogosto pošiljati več zahtevkov različnim strežnikom, kar poveča čas nalaganja. Drugič, ne poznate strategije predpomnjenja ponudnika in nimate nadzora nad izpadi ali varstvom podatkov. Zato priporočamo samostojno gostovanje vseh datotek pisav na lastnem strežniku ali namenskem CDN. S samostojnim gostovanjem lahko podmnožice pisav natančno prilagodite svojim jezikovnim različicam in s HTTP/2 Server Push ali Preload-Hints prednostno obravnavate kritične pisave. Poleg tega lahko predpomnjenje prek Cache-Control glav nastavite tako, da se pisave za vse obiskovalce ene jezikovne različice naložijo le enkrat. CDN z robnimi strežniki v bližini uporabnikov skrajša zakasnitev. Za 24 jezikov z različnimi ciljnimi regijami je CDN bistven: uporabniki na Finskem naložijo finsko podmnožico pisav iz bližnjega robnega vozlišča, uporabniki na Malti pa ustrezno. Pomembno: Za vsako jezikovno različico nastavite lastno pravilo predpomnjenja, tako da se npr. nemška podmnožica datoteka predpomni z dolgo veljavnostjo (npr. eno leto), medtem ko pri posodobitvah pisav predpomnjenje razveljavite s spreminjanjem imena datoteke (prstni odtis). Tako zagotovite, da so pisave hitro dostavljene in vedno posodobljene, ne da bi morali uporabniki čakati na posodobitve.
Dostopnost in berljivost: Izbira pisave za vse skupine uporabnikov
Večjezičnost ne pomeni le pravilnega prikaza znakov, ampak tudi, da je pisava dobro berljiva za vse uporabnike – ne glede na vid, velikost zaslona ali napravo. Zato pri izbiri pisave pazite na zadostno razločljivost črk, zlasti pri podobnih znakih, kot so 'rn' proti 'm' ali '0' proti 'O'. Za latinico so primerne neserifne pisave z veliko x-višino in odprtimi oblikami; za arabico so pomembne pisave z jasnimi povezavami in dovolj notranjega prostora. Zagotovite, da se pisava pri povečavi na 200 % ne razpada ali da se razmiki med znaki ne porušijo. V CSS uporabite font-size-adjust: from-font ali določite izrecne nadomestne pisave s podobnimi proporci, da se izognete skokom postavitve pri povečavi. Drugi vidik je stopnja kontrasta: besedilo na ozadju mora izpolnjevati vsaj WCAG-AA (4,5:1), pri majhni pisavi pa raje AAA (7:1). Za 24 jezikov to pomeni: preizkusite vsako jezikovno različico s preverjalnikom kontrasta, saj nekatere pisave pri določenih debelinah potez ali ležečih rezih izgubijo kontrast. Tudi dolžino vrstic in razmik med vrsticami je treba prilagoditi glede na jezik – arabska besedila pogosto potrebujejo več višine vrstice kot latinska. Vključite te teste v svoje avtomatizirano zagotavljanje kakovosti (glejte razdelek 4), da zagotovite, da lahko vsi uporabniki – tudi starejši ali slabovidni – optimalno zaznajo vaše vsebine.
blog.faqT
Ali lahko za večjezične strani EU uporabljam Googlove pisave?
Tehnično da, vendar je problematično z vidika varstva podatkov, ker Google beleži IP-naslove obiskovalcev. Za strani EU je priporočljiva samo gostovana pisava. Poleg tega Google Fonts ponuja le omejen izbor večjezičnih pisav; morda bi morali kombinirati več družin, kar poveča obremenitev nalaganja.
Kako preverim, ali moja pisava pokriva vse potrebne glife?
Uporabite orodja, kot sta GlyphChecker ali Unicode-Range-Test iz Wakamai Fondue. Vnesite znake ciljnih jezikov (npr. turški İ, romunski Ș). Druga možnost je, da razčlenite svoj sistem za upravljanje vsebin in izvlečete vse Unicode kodne točke na jezikovno stran ter jih primerjate s pisavo. Tako odkrijete vrzeli pred objavo.