Next.js / Translation
Schritt 16 von 25
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.
- Erstellen Sie Schlüssel aus stabilen Datensatz-IDs, niemals aus Array-Positionen.
- Senden Sie nur für Menschen lesbare Felder.
- Preise, IDs, SKUs, URLs, Zeitstempel und Benutzereingaben dürfen nicht in Übersetzungsanfragen einbezogen werden.
- Verwenden Sie immer den Originalinhalt der Quellsprache als Standardwert.
- Fügen Sie Kontext hinzu, wenn dies den Übersetzern hilft, den Text zu verstehen.
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
Der generierte Client authentifiziert sich mit
ALTIFIED_SECRET_KEY. Rufen Sie es nur von Serverkomponenten, Serveraktionen, Routenbehandlern oder anderen rein serverseitigen Modulen auf.