Dagens løysing
norge.no har i dag innhald på tre språk:
- bokmål (
/nb/)
- nynorsk (
/nn/)
- engelsk (
/en/)
Brukar kan velje språk via språkveljar i header. Dersom brukar aksepterer språkcookie, blir valt språk lagra.
I dag blir denne cookien brukt aktivt i React-klienten til å automatisk omdirigere brukar til språkversjonen som ligg i cookien, også når brukar eksplisitt går til ei URL på eit anna språk.
Eksempel:
- brukar har cookie =
en
- brukar går til:
/nb/oppdater-eller-sjekk-kontaktinformasjon/42
- React-klienten sender automatisk brukar vidare til:
/en/update-or-check-your-contact-details/42
I tillegg finst det funksjonalitet for språkvarsel. Denne viser eit varsel dersom brukar har valt eit språk, til dømes engelsk, men kjem til ei side som ikkje finst på dette språket. Varselet informerer då om at sida ikkje er tilgjengeleg på valt språk.
Problem med dagens løysing
URL representerer ikkje faktisk innhald
Når brukar går til ei URL med eksplisitt språkprefix (/nb/, /nn/, /en/), er språk allereie bestemt av URL-en.
Det blir derfor overraskande når klienten overstyrer dette basert på cookie.
Problem for redaktørar
Redaktørar som jobbar i Drupal kan opne eller previewe ei spesifikk språkversjon, men blir automatisk sendt vidare til språk frå cookie. Dette gjer testing og redigering vanskeleg.
Delte lenker blir mindre føreseielege
Ein brukar kan dele ei bokmålslenke, men mottakar blir automatisk sendt til engelsk eller nynorsk basert på eiga cookie.
Aukar kompleksitet
Språkcookie introduserer meir kompleksitet i:
- klientlogikk
Frontend må innehalde ekstra logikk for å lese cookie, samanlikne cookie med språk i URL, finne korrekt språkvariant av sida og eventuelt trigge redirect. Dette aukar mengda spesiallogikk og edge cases i klienten.
- routing
URL er ikkje lenger einaste kjelde til sanning for språk. Routing blir avhengig både av URL og klientstate (cookie), noko som gjer navigasjon mindre føreseieleg.
- debugging
Feil blir vanskelegare å reprodusere fordi oppførsel avheng av lokal cookie-state hos brukar eller utviklar. Same URL kan oppføre seg ulikt mellom ulike brukarar eller miljø.
- testing
Testing må dekke fleire kombinasjonar:
URL-språk
språkcookie
manglande omsettingar
redirect-logikk
språkvarsel
Liten faktisk verdi
Sidan:
- alt innhald finst på alle språk
- språk alltid er synleg i URL
- språkveljar alltid er tilgjengeleg i header
…er det liten gevinst i å automatisk tvinge brukar over til eit anna språk enn det URL-en spesifiserer.
Forslag til ny modell
URL er kjelde til sanning for språk
/nb/... viser bokmål
/nn/... viser nynorsk
/en/... viser engelsk
Ingen automatisk redirect basert på cookie
Språkcookie fjernast heilt.
Root redirect
Språkbyte skjer berre via språkveljar
Når brukar vel språk i header:
- brukar blir sendt til tilsvarande URL på valt språk
- vidare navigasjon held fram i den språkgreina
Språkvarsel og språkveljar må vurderast
Som del av oppgåva må vi også sjekke funksjonaliteten rundt språkvarsel og språkveljar.
I dagens løysing finst det varsel som blir vist dersom brukar har valt eit språk, men kjem til ei side som ikkje finst på dette språket. Til dømes dersom brukar har valt engelsk, men sida ikkje finst på engelsk.
Sidan målet no er at alt innhald på norge.no skal finnast på alle tre språk, bør vi vurdere om denne funksjonaliteten framleis er relevant.
I staden for å vise språkvarsel kan det vere meir føreseieleg at språkveljaren berre viser språk som faktisk er tilgjengelege for den aktuelle sida.
Eksempel:
- Dersom ei side berre finst på bokmål, viser språkveljaren berre bokmål.
- Dersom ei side finst på bokmål og engelsk, viser språkveljaren bokmål og engelsk.
- Dersom ei side finst på alle tre språk, viser språkveljaren bokmål, nynorsk og engelsk.
Det bør avklarast:
- om språkvarselet framleis trengst
- om språkvarselet kan fjernast
- om språkveljaren heller skal baserast på faktiske tilgjengelege omsettingar
- kva som skal skje dersom ei omsetting manglar
- om det framleis finst edge cases der innhald ikkje er omsett til alle språk
Fordelar med ny modell
- enklare og meir føreseieleg oppførsel
- URL samsvarer alltid med faktisk innhald
- betre redaktørflyt
- enklare routing og frontendlogikk
- færre edge cases
- meir intuitivt for brukar
- mogleg å fjerne eller forenkle språkvarsel dersom alt innhald alltid finst på alle språk
- språkveljaren kan reflektere faktiske tilgjengelege språk for sida
Prinsippet blir då:
Det språket som står i URL-en er det språket brukaren får.
Dagens løysing
norge.no har i dag innhald på tre språk:
/nb/)/nn/)/en/)Brukar kan velje språk via språkveljar i header. Dersom brukar aksepterer språkcookie, blir valt språk lagra.
I dag blir denne cookien brukt aktivt i React-klienten til å automatisk omdirigere brukar til språkversjonen som ligg i cookien, også når brukar eksplisitt går til ei URL på eit anna språk.
Eksempel:
en/nb/oppdater-eller-sjekk-kontaktinformasjon/42/en/update-or-check-your-contact-details/42I tillegg finst det funksjonalitet for språkvarsel. Denne viser eit varsel dersom brukar har valt eit språk, til dømes engelsk, men kjem til ei side som ikkje finst på dette språket. Varselet informerer då om at sida ikkje er tilgjengeleg på valt språk.
Problem med dagens løysing
URL representerer ikkje faktisk innhald
Når brukar går til ei URL med eksplisitt språkprefix (
/nb/,/nn/,/en/), er språk allereie bestemt av URL-en.Det blir derfor overraskande når klienten overstyrer dette basert på cookie.
Problem for redaktørar
Redaktørar som jobbar i Drupal kan opne eller previewe ei spesifikk språkversjon, men blir automatisk sendt vidare til språk frå cookie. Dette gjer testing og redigering vanskeleg.
Delte lenker blir mindre føreseielege
Ein brukar kan dele ei bokmålslenke, men mottakar blir automatisk sendt til engelsk eller nynorsk basert på eiga cookie.
Aukar kompleksitet
Språkcookie introduserer meir kompleksitet i:
Frontend må innehalde ekstra logikk for å lese cookie, samanlikne cookie med språk i URL, finne korrekt språkvariant av sida og eventuelt trigge redirect. Dette aukar mengda spesiallogikk og edge cases i klienten.
URL er ikkje lenger einaste kjelde til sanning for språk. Routing blir avhengig både av URL og klientstate (cookie), noko som gjer navigasjon mindre føreseieleg.
Feil blir vanskelegare å reprodusere fordi oppførsel avheng av lokal cookie-state hos brukar eller utviklar. Same URL kan oppføre seg ulikt mellom ulike brukarar eller miljø.
Testing må dekke fleire kombinasjonar:
URL-språk
språkcookie
manglande omsettingar
redirect-logikk
språkvarsel
Liten faktisk verdi
Sidan:
…er det liten gevinst i å automatisk tvinge brukar over til eit anna språk enn det URL-en spesifiserer.
Forslag til ny modell
URL er kjelde til sanning for språk
/nb/...viser bokmål/nn/...viser nynorsk/en/...viser engelskIngen automatisk redirect basert på cookie
Språkcookie fjernast heilt.
Root redirect
norge.no→norge.no/nbSpråkbyte skjer berre via språkveljar
Når brukar vel språk i header:
Språkvarsel og språkveljar må vurderast
Som del av oppgåva må vi også sjekke funksjonaliteten rundt språkvarsel og språkveljar.
I dagens løysing finst det varsel som blir vist dersom brukar har valt eit språk, men kjem til ei side som ikkje finst på dette språket. Til dømes dersom brukar har valt engelsk, men sida ikkje finst på engelsk.
Sidan målet no er at alt innhald på norge.no skal finnast på alle tre språk, bør vi vurdere om denne funksjonaliteten framleis er relevant.
I staden for å vise språkvarsel kan det vere meir føreseieleg at språkveljaren berre viser språk som faktisk er tilgjengelege for den aktuelle sida.
Eksempel:
Det bør avklarast:
Fordelar med ny modell
Prinsippet blir då: