Next.js / Translation
Étape 15 de 24
Traduire du contenu dynamique
Utilisez le client serveur généré pour les enregistrements de base de données, les champs CMS, les valeurs d'exécution et les copies nécessitant des clés stables explicites.
Composant serveur
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() Regroupe plusieurs chaînes de caractères en une seule requête et renvoie les valeurs indexées par clé. altified.t() lorsqu'une seule chaîne de caractères explicite est nécessaire.
- 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.
Les titres statiques entourant le contenu dynamique peuvent rester du JSX littéral ordinaire et utiliser la traduction automatique. Cela permet à chaque page de combiner le texte automatique de l'interface avec les enregistrements traduits explicitement.
Composants serveur uniquement
The generated client authenticates with
ALTIFIED_SECRET_KEY. Call it only from Server Components, server actions, route handlers, or other server-only modules.