Skip to main content
Vefapp · LanguagesIcelandic · English

One website, every language your customer reads.

Intro

You're reading this page in one of two languages. Click the flag in the corner and every word switches, same page, same design, the same address with /en in front. That's how internationalisation works in : the interface is built once, the words live in separate files, and the right language is chosen for each visit. Here's how it's done, and what it takes for a site to be genuinely multilingual rather than machine-translated.

How it works

Six pieces that turn one page into a bilingual one, from the word files down to the .

01

One build, many languages

Instead of copying the whole site for each language, the interface is built once. The words are kept apart from the code: buttons, headings and paragraphs live in word files, not inside the design. A single change to the layout applies across every language at once.

02

A file per language

Every visible word has a key in a dictionary, one file per language: messages/is.json and messages/en.json. The same key on both sides, the value is the translation. The keys have to match exactly; a key missing on one side is caught in testing before it ships.

03

Text is fetched by name

No page writes its text directly. It asks for the key, and looks up the right language for this visit. The same code returns Icelandic on / and English on /en, without duplicating a thing.

04

The URL carries the language

The language is part of the address: / serves Icelandic, /en serves English. Each language gets its own link, one you can share, bookmark and find in search. The server reads the path and builds the right version, not code in the browser swapping words after the fact.

05

The visitor chooses, not the browser

The flag switcher in the corner decides. We never move anyone to another language based on their browser settings, Icelandic is the primary language and the choice belongs to the reader. The is the source of truth: what you see is what you share.

06

Rendered on the server, per language

The right language is baked into the before the page reaches the browser, through the and . Search engines and screen readers get real text in the right language, not a blank page that fills in later. That keeps the site fast and accessible in both languages.

Genuinely multilingual

01

Both languages are first-class

The Icelandic isn't a machine translation of the English, or the other way round. The copy is written in parallel and idiom translates to idiom, not word for word. Phrasing, tone and length are tuned to each language, so neither edition reads like a translation.

02

Search engines see both

Every page tells Google about the other edition with and carries its own canonical . An Icelandic searcher gets the Icelandic page, an English one gets English, without the two competing for the same result.

See how SEO is built in →
03

The whole experience translates

Multilingual reaches further than headlines. Dates, numbers, forms, error messages, email and preview images follow the language too. The experience is whole in both tongues, not an Icelandic shell with English underneath.

04

A third language is a file, not a rebuild

Because the words live apart from the code, a new language is added with a new word file and one line of config, not a copy of the site. The architecture is built to grow: Polish, Spanish or Danish is a day's work, not a project.

Stack

  • next-intl
  • App Router
  • Server components
  • Message catalogs
  • localePrefix
  • hreflang
  • canonical URLs
  • Server-rendered
  • Next.js 16

Next

Want a site that speaks to everyone?

Request a quote →