diff --git a/packages/website/src/layouts/BaseLayout.astro b/packages/website/src/layouts/BaseLayout.astro index 061f903d2..8228acb92 100644 --- a/packages/website/src/layouts/BaseLayout.astro +++ b/packages/website/src/layouts/BaseLayout.astro @@ -46,9 +46,19 @@ const isRoot = pathname === '/'; window.location.pathname.startsWith(`/${locale}`), ); const bestLocale = getBestLocale(); + const currentPathLocale = SUPPORTED_LOCALES.find((locale) => + window.location.pathname.startsWith(`/${locale}`), + ); - if (!isI18nPath && bestLocale !== undefined) { - window.location.pathname = `/${bestLocale}${window.location.pathname}`; + console.log(bestLocale); + + if (bestLocale !== currentPathLocale) { + window.location.pathname = isI18nPath + ? window.location.pathname.replace( + `/${currentPathLocale}`, + bestLocale === undefined ? '' : `/${bestLocale}`, + ) + : `/${bestLocale}${window.location.pathname}`; } diff --git a/packages/website/src/pages/[...locale]/index.astro b/packages/website/src/pages/[...locale]/index.astro index 783fd9480..3fbcb940b 100644 --- a/packages/website/src/pages/[...locale]/index.astro +++ b/packages/website/src/pages/[...locale]/index.astro @@ -33,7 +33,9 @@ const strings = getStrings(Astro.params.locale); export const getStaticPaths = (() => { return [ - ...SUPPORTED_LOCALES.map((locale) => ({ params: { locale } })), + ...SUPPORTED_LOCALES.filter((locale) => locale !== DEFAULT_LOCALE).map( + (locale) => ({ params: { locale } }), + ), { params: { locale: undefined } }, ]; }) satisfies GetStaticPaths;