
Every page exists once in the CMS and has a text for each language. The language switch jumps to the same page in the other language.
Own address per language
The English page lives at /en/contact, the German one at /de/kontakt. Search engines learn about both through language links, so each visitor lands on the right one.
Missing translations stay visible
A page without a translation does not pretend to exist. The switch then leads to the start page of that language.