24 lines
713 B
TypeScript
24 lines
713 B
TypeScript
import { NextResponse } from "next/server";
|
|
import type { NextRequest } from "next/server";
|
|
import { LOCALE_COOKIE, matchLocale } from "./lib/i18n/locales";
|
|
|
|
export function proxy(request: NextRequest) {
|
|
if (request.cookies.has(LOCALE_COOKIE)) {
|
|
return NextResponse.next();
|
|
}
|
|
const locale = matchLocale(request.headers.get("accept-language"));
|
|
const response = NextResponse.next();
|
|
response.cookies.set(LOCALE_COOKIE, locale, {
|
|
path: "/",
|
|
maxAge: 60 * 60 * 24 * 365,
|
|
sameSite: "lax",
|
|
});
|
|
return response;
|
|
}
|
|
|
|
export const config = {
|
|
matcher: [
|
|
"/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp|ico)).*)",
|
|
],
|
|
};
|