i18n/no-mojibake

Af content-framework-redaktionen · Opdateret
Internationalisering · scope: page · severity: error

No encoding corruption (mojibake) in visible text. Reglen i18n/no-mojibake kører i page-scope med severity 'error' og indgår i internationalisering-domænet sammen med 1 andre kontrakter i frameworket.

Hvorfor no-mojibake findes

Sequences like "Ã​¦blegrÃ​¸d" are UTF-8 bytes decoded as Latin-1 — the canonical Danish encoding failure (æ/ø/å corruption). It usually enters via a dataset exported with the wrong encoding and turns content into garbage in search snippets.

Sådan håndhæves no-mojibake

Reglen no-mojibake evalueres på hver enkelt renderet HTML-side for sig, så et fund altid kan føres tilbage til én konkret side og én konkret rettelse i data eller template. Fejler en side, får agenten en finding, hvor fix-instruktionen for no-mojibake er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på no-mojibake fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

Domænet: internationalisering

I18n-domænet fanger de fejl, der rammer dansk indhold hårdest: mojibake hvor æ, ø og å bliver til Ã​¦, Ã​¸ og Ã​¥, amerikanske datoformater på danske sider og sprogdeklarationer der ikke passer til indholdet. Netop derfor hører no-mojibake hjemme her: kravet kan afgøres maskinelt, og dermed kan det håndhæves i stedet for blot at blive anbefalet.

Test og fixtures

Som alle kontrakter i frameworket har i18n/no-mojibake en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består no-mojibake sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

Relaterede regler

Tilbage til oversigten over alle 86 regler.