From 7bee161ac1c60adb583e62b871a27a18142f4aed Mon Sep 17 00:00:00 2001 From: Ronni Baslund Date: Sat, 6 Jun 2026 20:46:26 +0200 Subject: [PATCH] feat(website): bilingual i18n (English default, Danish at /da) + SEO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add @nuxtjs/i18n: English is the default locale (no prefix), Danish lives under /da (prefix_except_default). Both server-rendered and indexed with hreflang alternates + per-locale canonical (useLocaleHead in app.vue). First-visit browser language is auto-detected and remembered in the i18n_redirected cookie (redirectOn root). - Keep the hand-authored COPY object; useLang/useCopy now read the i18n locale; useLocalizeHref/useLangToggle added. Every internal link is localized so navigation stays in-locale. - Clear segmented EN|DA language switcher (active segment filled) replacing the ambiguous "en · da" pill. - SEO: useSeoMeta defaults are locale-aware; og:image switches per locale (English / Danish share card); favicon links; robots.txt + sitemap.xml; env-aware siteUrl/baseUrl (localhost in dev, dezky.eu in prod). - Update the cookie policy (dezky-lang -> i18n_redirected). - Gate the Traefik wss:443 HMR behind DEZKY_TRAEFIK so localhost dev/DevTools connect over plain ws (fixes the DevTools disconnect loop). --- apps/website/app.vue | 44 + .../website/components/landing/ComingSoon.vue | 3 +- apps/website/components/landing/FinalCta.vue | 3 +- apps/website/components/landing/Footer.vue | 12 +- apps/website/components/landing/Hero.vue | 3 +- apps/website/components/landing/Nav.vue | 64 +- .../website/components/landing/PageHeader.vue | 3 +- apps/website/components/landing/Pricing.vue | 3 +- .../components/landing/ProductMockup.vue | 4 +- .../website/components/landing/Whitelabel.vue | 3 +- apps/website/composables/useLanding.ts | 70 +- apps/website/i18n/i18n.config.ts | 10 + apps/website/layouts/page.vue | 6 +- apps/website/nuxt.config.ts | 58 +- apps/website/package.json | 1 + apps/website/pages/contact.vue | 3 +- apps/website/pages/index.vue | 3 +- apps/website/pages/migration.vue | 3 +- apps/website/pages/partners.vue | 3 +- apps/website/pages/roadmap.vue | 3 +- apps/website/pnpm-lock.yaml | 1591 ++++++++++++++++- apps/website/public/robots.txt | 4 + apps/website/public/sitemap.xml | 18 + apps/website/utils/landingCopy.ts | 4 +- 24 files changed, 1812 insertions(+), 107 deletions(-) create mode 100644 apps/website/i18n/i18n.config.ts create mode 100644 apps/website/public/robots.txt create mode 100644 apps/website/public/sitemap.xml diff --git a/apps/website/app.vue b/apps/website/app.vue index f8eacfa..c6a29fb 100644 --- a/apps/website/app.vue +++ b/apps/website/app.vue @@ -1,3 +1,47 @@ + +