import type { Metadata } from "next" import { getTranslations, getMessages, setRequestLocale } from "next-intl/server" import { Link } from "@/i18n/navigation" import { DocHeader } from "@/components/ui/doc-header" import { Callout } from "@/components/ui/callout" import CopyableCode from "@/components/CopyableCode" export async function generateMetadata({ params, }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: "docs.postInstall.network.meta" }) return { title: t("title"), description: t("description") } } type AreaRow = { area: string; settings: string } type RelatedItem = { label: string; href: string; tail: string } export default async function PostInstallNetworkPage({ params, }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations({ locale, namespace: "docs.postInstall.network" }) const messages = (await getMessages({ locale })) as unknown as { docs: { postInstall: { network: { sysctl: { rows: AreaRow[] } names: { whyItems: string[] } related: { items: RelatedItem[] } } } } } const sysctlRows = messages.docs.postInstall.network.sysctl.rows const whyItems = messages.docs.postInstall.network.names.whyItems const relatedItems = messages.docs.postInstall.network.related.items const code = (chunks: React.ReactNode) => {chunks} const strong = (chunks: React.ReactNode) => {chunks} const em = (chunks: React.ReactNode) => {chunks} const uninstallLink = (chunks: React.ReactNode) => ( {chunks} ) return (
{t.rich("intro.body", { strong, code })}

{t("ipv4.heading")}

{t.rich("ipv4.intro", { code })}

{t("ipv4.tipBody")}

{t("sysctl.heading")}

{t.rich("sysctl.intro", { code })}

{t("sysctl.tunedTitle")}

{sysctlRows.map((row, idx) => ( ))}
{t("sysctl.headerArea")} {t("sysctl.headerSettings")}
{row.area} {t.rich(`sysctl.rows.${idx}.settings`, { code })}

{t.rich("sysctl.sourceOutro", { code })}

{t.rich("sysctl.rpFilterBody", { em, code })}

{t("ovs.heading")}

{t.rich("ovs.intro", { code, em })}

{t.rich("ovs.tipBody", { strong, code })} {t("ovs.revertBody")}

{t("bbr.heading")}

{t("bbr.intro")}

{t("bbr.verifyTitle")}

{t("bbr.impactBody")} {t("bbr.revertBody")}

{t("names.heading")}

{t.rich("names.intro", { code })}

{t("names.whyTitle")}

    {whyItems.map((_, idx) => (
  • {t.rich(`names.whyItems.${idx}`, { code })}
  • ))}

{t("names.writtenTitle")}

{t.rich("names.writtenIntro", { code })}

{t.rich("names.writtenOutro", { code })}

{t.rich("names.pveBody", { code })} {t.rich("names.reviewBody", { code, em })} {t.rich("names.revertBody", { code, link: uninstallLink })}

{t("related.heading")}

    {relatedItems.map((item) => (
  • {item.label} {item.tail}
  • ))}
) }