Next.js / Translation
Schritt 15 von 24
Dynamische Inhalte übersetzen
Verwenden Sie den generierten Serverclient für Datenbankeinträge, CMS-Felder, Laufzeitwerte und Kopien, die explizite stabile Schlüssel benötigen.
Serverkomponente
import { altified } from "@/lib/altified";
export default async function ProductPage({ product, locale }) {
const keys = {
name: `product.${product.id}.name`,
description: `product.${product.id}.description`,
};
const copy = await altified.resolve(locale, [
{ key: keys.name, defaultValue: product.name },
{
key: keys.description,
defaultValue: product.description,
context: { type: "product", id: product.id },
},
]);
return (
<main>
<h1>{copy[keys.name]}</h1>
<p>{copy[keys.description]}</p>
<span>{product.price}</span>
</main>
);
}altified.resolve() fasst mehrere Zeichenketten zu einer Anfrage zusammen und gibt die Werte anhand des Schlüssels indiziert zurück. altified.t() wenn nur eine explizite Zeichenkette benötigt wird.
- Build keys from stable record IDs, never array positions.
- Send only human-readable fields.
- Keep prices, IDs, SKUs, URLs, timestamps, and user input out of translation requests.
- Always provide original source-language content as defaultValue.
- Add context when it helps translators understand the string.
Statische Überschriften um dynamische Inhalte können im normalen JSX-Format bleiben und die automatische Übersetzung nutzen. Dadurch kann jede Seite automatisch kopierte Benutzeroberflächeninhalte mit explizit übersetzten Datensätzen kombinieren.
Nur Serverkomponenten
The generated client authenticates with
ALTIFIED_SECRET_KEY. Call it only from Server Components, server actions, route handlers, or other server-only modules.