bloggen snakker tre språk nå

7. september 2026 meta goi18nsvelte

Hvis du ser på adressefeltet akkurat nå står det en språkkode i det. Det er nytt. Hele bloggen finnes nå på engelsk, norsk og spansk: hvert innlegg, hver side, navigasjonen, feilmeldingene, datoene. Dette var den enkeltstørste endringen siden redesignet, og den berørte nesten hver eneste fil i frontenden pluss innholdsmodellen i blogg-tjenesten.

Formen på det: hver offentlige URL bærer et språkprefiks, /en, /no eller /es. Besøk uten et og serveren finner ut hvor den skal sende deg, først fra en informasjonskapsel hvis du har valgt et språk før, deretter fra nettleserens Accept-Language, og til slutt engelsk som reserveløsning:

const lang = resolveLanguage(
    event.cookies.get(LANG_COOKIE),
    event.request.headers.get('accept-language')
);
event.locals.lang = lang;
throw redirect(302, `${localizedPath(pathname, lang)}${event.url.search}`);

Ditt eksplisitte valg vinner alltid over nettleserens gjetning. Velg spansk én gang og bloggen forblir spansk til du sier noe annet, uansett hva nettleseren din hevder du foretrekker.

Innhold var det større spørsmålet. Maskinoversettelse på sparket var aldri et alternativ (dette er en selvhostet blogg, ingenting forlater boksen), så hvert innlegg er en ekte rad per språk, og versjonene er lenket sammen i en oversettelsesgruppe. Hver versjon publiseres på sin egen tidsplan, har sin egen brødtekst, og deler slug med sine søsken, slik at det å bytte språk på et innlegg tar deg til det samme innlegget, ikke til en oversatt forside. Bryteren er inaktiv når en oversettelse ikke finnes ennå, i stedet for å dumpe deg på en 404.

The front page in Norwegian, language switcher in the rail

Så kom det interessante sammenbruddet. Å flytte hver eneste rute under et språkprefiks ødela stille og rolig noe som ikke hadde noe med språk å gjøre: avatar-opplastingsgrensen. Caddy sitter foran alt med grenser for kroppsstørrelse per sti, og regelen for /profile matchet ikke lenger fordi profilsiden nå bor på /en/profile. Opplastinger over standardgrensen begynte å dø ved fordøren med en tom 413 i stedet for en vennlig feilmelding. Løsningen er én matcher-linje som dekker alle prefiksene, men lærdommen er større: når du flytter hver eneste URL på siden, grep gjennom reverse proxy-konfigurasjonen for stier også.

Gjennomgangen fanget opp to ekte til. Emneknagg-listen i sidefeltet talte innlegg på alle språk, så den norske siden viste emneknagger som førte til tomme sider (spørringene filtrerer nå på språk). Og unikhetssjekken for slug så på tvers av alle språk når den bare skulle sett innenfor ett, noe som ville blokkert helt gyldige oversettelser fra å bli lagret.

Å oversette grensesnittet var noen dagers nøye arbeid med en meldingskatalog på 132 nøkler som typesjekkeren håndhever, så en streng som mangler på spansk er en build-feil, ikke en tom knapp. Å oversette innholdet var ærlig manuelt arbeid: 34 innlegg og 3 sider, hver skrevet om to ganger. Arkivsidene, feedene og sitemapen snakker også per språk, med hreflang-lenker slik at søkemotorer forstår at versjonene hører sammen.

Velkommen, og bienvenidos. Bryteren er i sidefeltet hvis du vil se hvordan et innlegg om norske øyer leser på norsk.

0 kommentarer

Logg inn for å kommentere.

Logg inn

Ingen konto?