import type { Metadata } from "next" import { getTranslations, getMessages, setRequestLocale } from "next-intl/server" import { Link } from "@/i18n/navigation" import { ArrowRight } from "lucide-react" import { DocHeader } from "@/components/ui/doc-header" import { Callout } from "@/components/ui/callout" export async function generateMetadata({ params, }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: "docs.postInstall.customizable.meta" }) return { title: t("title"), description: t("description"), openGraph: { title: t("ogTitle"), description: t("ogDescription"), type: "article", url: "https://macrimi.github.io/ProxMenux/docs/post-install/customizable", }, } } type Category = { name: string; description: string } type RelatedItem = { label: string; href: string; tail?: string; tailRich?: string } const CATEGORY_SLUGS = [ "basic-settings", "system", "virtualization", "network", "storage", "security", "customization", "monitoring", "performance", "optional", ] export default async function CustomizablePage({ params, }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations({ locale, namespace: "docs.postInstall.customizable" }) const messages = (await getMessages({ locale })) as unknown as { docs: { postInstall: { customizable: { categories: Category[] related: { items: RelatedItem[] } } } } } const categories = messages.docs.postInstall.customizable.categories const relatedItems = messages.docs.postInstall.customizable.related.items const strong = (chunks: React.ReactNode) => {chunks} const uninstallLink = (chunks: React.ReactNode) => ( {chunks} ) const autoLink = (chunks: React.ReactNode) => ( {chunks} ) const storageLink = (chunks: React.ReactNode) => ( {chunks} ) const networkLink = (chunks: React.ReactNode) => ( {chunks} ) const customLink = (chunks: React.ReactNode) => ( {chunks} ) return (
{t.rich("intro.body", { link: uninstallLink })}

{t("compare.heading")}

{t.rich("compare.body", { link: autoLink })}

{t("categoriesSection.heading")}

{t("categoriesSection.body")}

{categories.map((category, idx) => (
{t.rich("mixTip.body", { strong })}

{t("related.heading")}

    {relatedItems.map((item, idx) => (
  • {item.label} {item.tailRich ? t.rich(`related.items.${idx}.tailRich`, { storageLink, networkLink, customLink }) : item.tail}
  • ))}
) }