Kako ustvariti večjezično spletno mesto z neprekinjenim objavljanjem
Moja izkušnja
Programska oprema je pogosto prevedljiva, ker se razvijalci zavedajo koristnosti tega prizadevanja.
Z nekaj sreče, bo uporabljena kakovostna prevajalska platforma, kot je Weblate, da bodo spremembe programske opreme sproti nemoteno dosegle prevajalce, prevodi pa se bodo vrnili v repozitorij.
Programska oprema je le vrh ledene gore, tisti del, ki ga neposredno uporabljamo, vendar je brez ustreznih informacij o njej težko široko komunicirati, če vsa komunikacija poteka v angleščini. Potrebna so pojasnila o tem, kaj programska oprema počne, za kaj se uporablja, kako jo uporabljati in tako naprej.
Spletna mesta, temelj komunikacije projekta, so pogosto prevedljiva. Tehnološki skladi, ki se uporabljajo za ustvarjanje teh spletnih mest, so relativno nestandardizirani in nanje vpliva želja ustvarjalcev po personalizaciji za diverzifikacijo vsebine, kar je mogoče doseči z nekaj oznakami HTML.
Dokumentacija je svet zase, saj orodja pogosto izvirajo iz razvojnih ekosistemov (tehnična dokumentacija) ali ekosistemov za sodelovanje (wikiji). Ta orodja redko ponujajo predpogoje za internacionalizacijo, potrebne za sodelovanje. Vendar je problem zelo podoben problemu spletnega mesta.
Nenazadnje je bolj neposredna komunikacija, od sprememb nove različice do komunikacije na družbenih omrežjih za promocijo orodij, redko večjezična.
Zakaj je tako malo spletnih strani prevedljivih?
Za dobro raven prevajanja so potrebne zmogljivosti internacionalizacije programske opreme, ki zmanjšujejo razvojne napore in kompleksnost, ter nemoten postopek, v katerega se lahko prevajalci vključijo.
Predpogoji za internacionalizacijo spletnega mesta:
- podpira pisanje od desne proti levi
- objavlja večjezične vsebine brez potrebe po spreminjanju notranjih povezav
- dovoli spreminjanje jezika na kateri koli strani
- Upošteva glavo
Accept-Languageza preusmeritev na pravilen jezik - dovoljujejo kateri koli jezik in vrsto pisave na svetu
Videti je široko in impresivno, kot je povedano, vendar nekaj standardov, kot je UTF-8, nekatere oznake HTML in orodja, zasnovana za izpolnjevanje teh potreb, to precej olajšajo.
Orodja, na katera se razvijalci zanašajo, morajo vključevati funkcije, ki to olajšajo; to se imenuje internacionalizacija. Če orodje nima večjezičnega primera v svoji dokumentaciji ali namenskega razdelka za internacionalizacijo, ga opustite. Zagotovo obstaja boljša možnost; o tem ni dvoma.
Pogoj za sodelovanje: razvijalci morajo biti seznanjeni z orodji, ki prevajalcem olajšajo delo, in jih morajo znati uporabljati.
- Prevajalec mora biti sposoben prevajati brez dostopa do izvorne kode ali repozitorija programske opreme.
- Prevajalec mora imeti možnost dodati svoj jezik, ne da bi za to prosil za dovoljenje.
- Prevajalec mora imeti možnost spremeniti prevod, ne da bi za to prosil za dovoljenje.
- Prevajalec mora biti obveščen o spremembah, ki vključujejo prevod.
- Prevodi morajo biti izvedeni samodejno, brez vključevanja ljudi.
- Razvojna ekipa mora biti v primeru težav enostavno dosegljiva (avtonomija != samozadostnost)
Izbira pravega orodja za ustvarjanje statičnih spletnih mest
Tukaj bodo obravnavana samo orodja, ki ustvarjajo spletna mesta iz datotek. Dinamično spletno mesto je zelo specifična vrsta kompleksnosti, ki je za večino projektov proste programske opreme nepotrebna. Gre celo za nepotrebno kompleksnost, ki jo je mogoče odpraviti, da se prihrani pri vzdrževalnih delih, stroških in varnostnih tveganjih.
Brez potrebe po kakršnem koli razvojnem strokovnem znanju primerjajmo ta tri orodja:
- Hugo ima stran o večjezičnem založništvu, ki je celovita in vsebuje primere, kar je pomembno za ta projekt ⇒ preizkusite <3
- Jekyll nima strani za internacionalizacijo, razen če se strinjate z uporabo vtičnika in sprejmete njegove omejitve združljivosti/rešitve ⇒ pobegnite!
- Eleventy ima stran za internacionalizacijo, zato se zdi izvedljivo, vendar je zelo ročno, ne vzbuja zaupanja ⇒ pobegnite!
- Pelican prevaja samo en članek, ni strani posvečene internacionalizaciji, osnovna funkcija ni zadostna ⇒ pobegnite !
- Publii nima strani za internacionalizacijo ⇒ pobegnite !
Miselni proces je kratek: želite statično spletno stran na ključ, ki deluje v več jezikih? Uporabite Hugo.
To ni osebna kritika Pelicana in Jekylla, ampak poleg tega, da ima manj funkcij kot Hugo in zahteva le spremembo glav datotek za prevod, je to neroden korak v procesu avtomatizacije. In prav to je cilj: avtomatizacija povsod, ki zahteva čim manj dela! Nekaterim projektom uspe uspešno internacionalizirati spletna mesta s temi orodji, vendar za ceno večjega truda in verjetno manj zmožnosti (na primer, URL-ji bodo v angleščini in ne prevedeni).
Študija primera - ta blog
Za dejansko izvedbo te avtomatizacije z resničnimi podatki so tukaj moje specifikacije:
- Ni dovoljeno spreminjati člankov v izvornem jeziku
- Uporaba Weblate kot prevajalske platforme
- Weblateu ni potrebna nobena konfiguracija za dodajanje novega članka
- Ni konfiguracije v Hugu za dodajanje jezika
- Popolnoma avtomatiziran postopek objavljanja
Vključeni koraki so preprosti.
Iskanje zadovoljive organizacije vsebine
content/frbo vseboval vso vsebino spletnega mestal10n/bo vseboval vse datoteke s prevodil10n/configbo vseboval nize, ki jih je treba prevesti v zvezi s prevodom Hugol10n/potpredloge za prevod (datoteke POT)l10n/po/%lang%prevodi v posamezne jezike (datoteke PO)
Pretvornik formata po4a bo vsebino pretvoril v predloge za prevode (datoteke POT).
Skripta Python bo poklicala polib, da bi prepoznala jezike, v katerih je vsaj en članek preveden vsaj z 80% (odstotek prevedenih izvornih besed).
Drugi Python skript bo posodobil Hugovo konfiguracijo z uporabo nekaj konfiguracij, ki jih je treba prevesti (ime bloga, opis bloga …).
To je delujoča rešitev; za poenostavitev tega orodja je mogoče storiti več
stvari. Uporabite konfiguracijo po4a namesto klicanja njenih podukazov in
odpravite potrebo po uporabi polib za samo eno datoteko Python.
Zakaj ne bi uporabili podpore za Markdown v Weblateu? Weblate je prevajalska
platforma; pretvarjanje datotek je drugačna vloga. Namenska orodja to
počnejo bolje kot Weblate, saj ločevanje odgovornosti zmanjšuje odvisnost in
s tem povečuje avtonomijo za razvoj avtomatizacijskega cevovoda. Tipičen
primer: po4a bi lahko nadomestilo drugo orodje.
Izid in lekcija
Naša skupnost uporabnikov proste programske opreme lahko enostavno ustvari večjezična spletna mesta.
Vendar pa primanjkuje dokumentacije, ki bi pojasnjevala, kako sestaviti obstoječa orodja za ustvarjanje celotne proizvodne linije.
Ta članek si zato prizadeva zapolniti to vrzel in spodbuditi kopiranje tega mehanizma za zainteresirane projekte.
Orodje bo verjetno izboljšano in poenostavljeno ter shranjeno v majhnem namenskem projektu, ki bo pojasnil njegovo delovanje, da bi povečali njegovo ponovno uporabo. Danes poiščite skripte v git repozitoriju spletnega mesta languages-in-floss.