// middleware.ts import { NextRequest, NextResponse } from "next/server"; export function middleware(request: NextRequest) { // 1. Проверяем существующую куку let lang = request.cookies.get("lang")?.value; // 2. Если куки нет, определяем язык из браузера if (!lang) { lang = request.headers .get("Accept-Language") ?.split(",")[0] // Берём первый язык из списка .split("-")[0] // Убираем регион (en-US → en) .toLowerCase() || "en"; // Fallback на английский } // 3. Сохраняем язык в куки const response = NextResponse.next(); if (!request.cookies.has("lang")) { response.cookies.set("lang", lang, { maxAge: 60 * 60 * 24 * 365, // 1 год httpOnly: true, }); } // 4. Добавляем язык в заголовки ВСЕХ исходящих запросов response.headers.set("Accept-Language", lang); return response; }