Files
NightSpire/web-next/app/[locale]/d-points/page.tsx
T
Inna 81e1450e6b i18n: títulos de pestaña por idioma (metadata -> generateMetadata)
Los <title> estáticos estaban en español fijo. Se migran 31 páginas a
generateMetadata reutilizando la clave de título ya traducida de cada página
(o del <h1>). Se traducen además los PageShell title hardcodeados de las 6
páginas CharServiceB y los títulos de download-client y changelogs (+ su
mensaje de error). tsc/build OK, paridad es/en, <title> cambia por idioma.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 19:07:25 +00:00

40 lines
1.5 KiB
TypeScript

import type { Metadata } from 'next'
import { getTranslations, setRequestLocale } from 'next-intl/server'
import { redirect } from '@/i18n/navigation'
import { getSession } from '@/lib/session'
import { getRealmName } from '@/lib/realm'
import { reconcileSumUpCheckouts } from '@/lib/sumup'
import { PageShell } from '@/components/PageShell'
import { DPointsTabs } from '@/components/DPointsTabs'
export const dynamic = 'force-dynamic'
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise<Metadata> {
const { locale } = await params
const t = await getTranslations({ locale, namespace: 'Points' })
return { title: t('dpoints.title') }
}
export default async function DPointsPage({ params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params
setRequestLocale(locale)
const t = await getTranslations('Points')
const session = await getSession()
if (!session.bnetId) redirect({ href: '/login', locale })
if (!session.username) redirect({ href: '/select-account', locale })
// SumUp no tiene webhooks: reconciliamos aquí los pagos SumUp pendientes de
// esta cuenta por si el navegador no volvió al return_url tras pagar.
if (session.accountId) await reconcileSumUpCheckouts({ accountId: session.accountId }).catch(() => {})
const realm = await getRealmName()
const currency = (process.env.DP_CURRENCY || 'eur').toLowerCase()
return (
<PageShell title={t('dpoints.title')}>
<DPointsTabs realm={realm} currency={currency} />
</PageShell>
)
}