Full DE/EN with runtime switch, benefit-led section, free-of-charge messaging
English translation with a language switch in the header. Uses a typed message catalogue plus a small composable rather than @nuxtjs/i18n: the site is 12 components and 4 pages, and i18n would add vue-i18n plus a build transform and want to own the URL space (/en/...), breaking every in-page anchor and every link already shared. Both languages live on one URL, so a shared link always works. en.ts is typed against de.ts, so a missing key fails the type check.
Locale precedence is ?lang= then the b24_lang cookie then Accept-Language, with German winning on absence, ties, wildcards and unparsable input. It is resolved once on the server and carried through the payload, so hydration cannot disagree. Confirmation, welcome and duplicate mails follow the language stored on the registration row rather than the language of whoever triggered them; the internal ops mail stays German.
Impressum and Datenschutz are translated for comprehension only — the English pages carry a notice that the German version is solely authoritative and link back to it. "Freiberufler" is left untranslated with a gloss because the English options all name different legal statuses, and German statute short names are kept. The privacy notice now discloses the b24_lang cookie.
"Verfall & Kosten" becomes "Ihr Vorteil" / "Your benefit", led by the gain rather than the loss. The worked example stays labelled as our own assumption — no invented statistics. #vorteil is the new anchor and #verfall still resolves.
Free registration and use is stated in the hero, the proof band, the registration CTA and the dialog header, claiming only what is actually free.
Fixes the dialog keeping the last confirmation screen: reopening after a completed submission resets the form, while dismissing mid-typing keeps every keystroke, because the reset runs on open and only when the previous run finished. Replaces "Weitere Einrichtung registrieren" with a plain close action.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> (commit: 1b159ec)