SPB Git

Repository Public

proxy.ts 818 B 18 lines typescript

1import { NextResponse, type NextRequest } from "next/server";23const LOCALES = ["en", "fr"];45/** Sends any path without a locale prefix to /en or /fr, following the browser's language preference. */6export function proxy(request: NextRequest) {7  const { pathname } = request.nextUrl;8  if (LOCALES.some((l) => pathname === `/${l}` || pathname.startsWith(`/${l}/`))) return NextResponse.next();9  const accept = request.headers.get("accept-language") ?? "";10  const first = accept.split(",")[0]?.trim().toLowerCase() ?? "";11  const locale = first.startsWith("fr") ? "fr" : "en";12  const url = request.nextUrl.clone();13  url.pathname = `/${locale}${pathname === "/" ? "" : pathname}`;14  return NextResponse.redirect(url, 307);15}1617export const config = { matcher: ["/((?!_next/|api/|images/|.*\\.[a-zA-Z0-9]+$).*)"] };18
Files main
Menu

Theme