Hogyan ellenőrzünk minden fordítást
Ennek a blognak 64 bejegyzése van tizenegy nyelven: 704 sor és nagyjából 2,2 millió karakter. Egyetlen nyelven sem hiányzik egyetlen bejegyzés sem, ami csak akkor jelent valamit, ha valami ki is kényszeríti.
Van ilyen. Mielőtt egy lefordított sor bekerülne, összevetjük az angol eredetivel, és a megbukott sort egyáltalán nem írjuk ki — jelentjük, és egy emberre bízzuk, hogy megnézze.
Mire szolgálnak az ellenőrzések
Ugyanazok a linkcélok. Egy belső útvonal nem változhat meg fordítás közben: /privacy minden nyelven /privacy marad, a nyelvi előtagot pedig megjelenítéskor tesszük hozzá. Egy fordító — ember vagy más —, aki segítőkészen lokalizál egy útvonalat, olyan linket hoz létre, amely sehova sem vezet.
Ugyanazok a helyőrzők. Egyes bejegyzésekben olyan számok szerepelnek, amelyeket az oldal összeállításakor helyettesítünk be, így nem avulhatnak el. Az a fordítás, amely elhagy közülük egyet, elveszít egy számot; amelyik kitalál egyet, kapcsos zárójelet hagy a mondat közepén.
Címkénként ugyanannyi. Nem csupán kiegyensúlyozott címkék — pontosan ugyanannyi, mint az angolban. Ez az az ellenőrzés, amely kiérdemli a helyét: egy elveszett táblázatsor, egy kimaradt listaelem vagy egy hiányzó diagram minden más teszt számára láthatatlan, mert az eredmény továbbra is érvényes HTML, amely tökéletesen olvasható.
Egy sávon belüli hossz. Az angol felétől a két és félszereséig. A nyelvek valóban eltérő hosszúságúak, ezért a sáv széles; amit elkap, az a félúton abbamaradt fordítás.
Mit fogott meg, és mit fogott meg tévesen
Valódi fogás: egy francia fordításban négy kiemelt szó volt, az angolban csak három, mert egy tagadást két darabban jelöltek meg. Semmi sem tűnt hibásnak. A darabszám igen.
Két téves riasztás, mindkettő ugyanazon a napon, és mindkettő tanulságos.
Az első eset: egy bejegyzés egy CSS-sort idéz, és a CSS-sor utolsó karaktere }}. A zárójel-ellenőrzés megszámolt minden {{ és minden }}, így annak a bejegyzésnek minden fordítása elbukott, miközben semmi sem volt hibás. Egy }} jel, amely előtt nincs {{ jel, nem lehet törött helyőrző — a helyőrzők ugyanis így kezdődnek: {{ —, ezért most már csak a nyitó oldalt számoljuk.
A második eset: <rect/> és <path/> elemeknek nincs záró címkéjük, ezért egy párosítást vizsgáló teszt örökre párosítatlannak jelzi őket. Az üres elemeket mostantól megszámoljuk, nem párosítjuk.
Mindkettő egy kör munkájába került, és mindkettőnél az ellenőrzés volt túl szigorú, nem túl laza. Ez a jobbik irány a hibázáshoz, de nem ingyenes: egy folyton hamis riasztást adó ellenőrzést lazít meg az, aki éppen siet, és akkor aztán nincs ott, amikor számítana.
A legfontosabb teszt
Amikor diagramok kerültek a bejegyzésekbe, a címke-ellenőrzést kiterjesztettük rájuk. Ahelyett, hogy ebben vakon megbíztunk volna, magát az ellenőrzést teszteltük: az egyik fordításból szándékosan töröltünk egy diagramot, és lefuttattuk az importálót.
Pontosan azt jelentette, ami hiányzott — a diagramot, annak tíz feliratát, négy téglalapját és hét útvonalát —, és megtagadta a sor kiírását. A diagramot visszaállítottuk, és az ellenőrzés ismét átment.
Ez két percig tartott. Az az ellenőrzés, amelyet soha nem láttunk elbukni, csak feltételezett ellenőrzés, és a feltételezés éppen az, aminek az elkerülésére mindez létezik.