diff options
| author | Adam <[email protected]> | 2026-02-09 13:26:27 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-02-09 13:26:50 -0600 |
| commit | 3dc720ff9cdd1002f737a43faaf428fb4cc18316 (patch) | |
| tree | 7139fa900b3dc2bf8e5e00c179ba8e7daf568bba /packages/web/src/middleware.ts | |
| parent | 56b340b5d58d98fdebb54973ba8dfeb67ba8c51a (diff) | |
| download | opencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.tar.gz opencode-3dc720ff9cdd1002f737a43faaf428fb4cc18316.zip | |
fix: locale routing
Diffstat (limited to 'packages/web/src/middleware.ts')
| -rw-r--r-- | packages/web/src/middleware.ts | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/packages/web/src/middleware.ts b/packages/web/src/middleware.ts index 5b2d33666..97d085dfb 100644 --- a/packages/web/src/middleware.ts +++ b/packages/web/src/middleware.ts @@ -1,5 +1,5 @@ import { defineMiddleware } from "astro:middleware" -import { matchLocale } from "./i18n/locales" +import { exactLocale, matchLocale } from "./i18n/locales" function docsAlias(pathname: string) { const hit = /^\/docs\/([^/]+)(\/.*)?$/.exec(pathname) @@ -7,12 +7,12 @@ function docsAlias(pathname: string) { const value = hit[1] ?? "" const tail = hit[2] ?? "" - const locale = matchLocale(value) + const locale = exactLocale(value) if (!locale) return null - if (locale === "root") return `/docs${tail}` - if (value === locale) return null - return `/docs/${locale}${tail}` + const next = locale === "root" ? `/docs${tail}` : `/docs/${locale}${tail}` + if (next === pathname) return null + return next } function localeFromCookie(header: string | null) { |
