From 44d578f03377794c05b49e66479128bf982815d1 Mon Sep 17 00:00:00 2001 From: dyzulk <66510723+dyzulk@users.noreply.github.com> Date: Fri, 9 Jan 2026 08:48:05 +0700 Subject: [PATCH] feat: add i18n middleware for cloudflare compatibility --- middleware.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 middleware.ts diff --git a/middleware.ts b/middleware.ts new file mode 100644 index 0000000..814b934 --- /dev/null +++ b/middleware.ts @@ -0,0 +1,21 @@ +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +const PUBLIC_FILE = /\.(.*)$/ + +export function middleware(req: NextRequest) { + if ( + req.nextUrl.pathname.startsWith('/_next') || + req.nextUrl.pathname.includes('/api/') || + PUBLIC_FILE.test(req.nextUrl.pathname) + ) { + return + } + + if (req.nextUrl.locale === 'default') { + const locale = req.cookies.get('NEXT_LOCALE')?.value || 'en' + return NextResponse.redirect( + new URL(`/${locale}${req.nextUrl.pathname}${req.nextUrl.search}`, req.url) + ) + } +}