import type { Metadata } from "next" import { getTranslations, getMessages, setRequestLocale } from "next-intl/server" import { ExternalLink } from "lucide-react" import { DocHeader } from "@/components/ui/doc-header" import { Callout } from "@/components/ui/callout" import Image from "next/image" import CopyableCode from "@/components/CopyableCode" import Footer from "@/components/footer" export async function generateMetadata({ params, }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: "guides.kodiLxc.meta" }) return { title: t("title"), description: t("description"), alternates: { canonical: "https://proxmenux.com/docs/guides/kodi-lxc" }, openGraph: { title: t("ogTitle"), description: t("ogDescription"), type: "article", url: "https://proxmenux.com/docs/guides/kodi-lxc", }, } } export default async function KodiLxcGuide({ params, }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations({ locale, namespace: "guides.kodiLxc" }) const messages = (await getMessages({ locale })) as unknown as { guides: { kodiLxc: { intro: { steps: string[] } troubleshoot: { items: string[] } } } } const introSteps = messages.guides.kodiLxc.intro.steps const troubleItems = messages.guides.kodiLxc.troubleshoot.items const code = (chunks: React.ReactNode) => {chunks} const strong = (chunks: React.ReactNode) => {chunks} const gpuLink = (chunks: React.ReactNode) => ( {chunks} ) const authorLink = (chunks: React.ReactNode) => ( {chunks} ) const konpatLink = (chunks: React.ReactNode) => ( {chunks} ) return (
{t.rich("intro.calloutBody", { strong, code, gpuLink })}

{t.rich("intro.credit", { authorLink })}

{t("intro.stepsTitle")}

    {introSteps.map((_, idx) => (
  1. {t(`intro.steps.${idx}`)}
  2. ))}

{t("createCt.heading")}

{t.rich("createCt.body", { strong, code })}

{t.rich("createCt.after", { code })}

{t("addInput.heading")}

{t.rich("addInput.body", { code })}

{t("addInput.imageAlt")}

{t.rich("addInput.afterList", { code, strong })}

{t.rich("addInput.addLines", { code, strong })}

{t("addInput.imageConfigAlt")}

{t.rich("addInput.save", { code, strong })}

{t("addInput.plug")}

{t("updateKodi.heading")}

{t.rich("updateKodi.calloutBody", { strong, code })}

{t.rich("updateKodi.body", { code })}

{t("updateKodi.after")}

{t("screenshots.heading")}

{t("screenshots.image1Alt")} {t("screenshots.image2Alt")}

{t("troubleshoot.heading")}

    {troubleItems.map((_, idx) => (
  • {t.rich(`troubleshoot.items.${idx}`, { code, strong })}
  • ))}

{t("further.heading")}

  • {t.rich("further.konpatRich", { konpatLink })}
) }