import { Metadata } from "next"; // Импортируем тип Metadata import { ThemeProvider } from "@/components/sections/theme/theme-provider"; import "../globals.css"; import { getDictionary } from "@/lib/dictionaries"; import { Header } from "@/components/sections/Header"; import { JetBrains_Mono } from "next/font/google"; import { Footer } from "@/components/sections/Footer"; const jetbrainsMono = JetBrains_Mono({ subsets: ["latin", "cyrillic"], display: "swap", preload: true, // Гарантирует предзагрузку в
fallback: ["monospace"], // Указывает браузеру, что показывать до загрузки }); // Настройка метаданных export const metadata: Metadata = { title: { template: "%s | Netrunner VPN", default: "Netrunner VPN — Система следит за всеми, кроме тебя.", }, description: "Цифровой след скрыт. Логи уничтожены. Скорость не ограничена. Ваш персональный защищенный туннель Netrunner.", icons: { icon: [ { url: "/logo.svg", href: "/logo.svg", }, ], }, }; // Корневой layout для всех локализованных страниц (сегмент [lang]). Здесь, а не в // каждой отдельной странице, грузится словарь для Header/Footer и подключается тема, // т.к. эти элементы общие для всего сайта. params.lang приходит из динамического // сегмента маршрута и совпадает с тем, что определил proxy.ts при редиректе. export default async function RootLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ lang: string }>; }) { const { lang } = await params; const dict = await getDictionary(lang); return (