From 1bc9fe93ec4ca82295e77f2c8068bc700ef94367 Mon Sep 17 00:00:00 2001 From: SnapOtter Date: Sat, 11 Jul 2026 15:00:13 +0800 Subject: [PATCH] feat(landing-i18n): recall a returning visitor's chosen language Render-blocking head script that routes a returning visitor to the language they explicitly picked (stored on switch). Only on default English pages; skips English-only tool-detail pages; crawler-safe. Admin-merged: landing-only PR, the skipped Integration matrix jobs never report the required contexts (known repo deadlock). Logic verified across 10 scenarios; landing build + typecheck clean. --- apps/landing/src/layouts/Base.astro | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/apps/landing/src/layouts/Base.astro b/apps/landing/src/layouts/Base.astro index 204448e9..4effe96b 100644 --- a/apps/landing/src/layouts/Base.astro +++ b/apps/landing/src/layouts/Base.astro @@ -4,7 +4,7 @@ import "@/styles/globals.css"; import { TOOLS } from "@snapotter/shared"; import LaunchBanner from "@/components/LaunchBanner.astro"; import MachineTranslationBanner from "@/components/MachineTranslationBanner.astro"; -import { t } from "@/i18n"; +import { LANDING_LOCALES, t } from "@/i18n"; import { altLinks, dirFor, ogLocale } from "@/lib/i18n-page"; interface Props { @@ -43,6 +43,33 @@ const htmlDir = dirFor(locale); + + +