Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Rilascio della funzionalità di contenuto dinamico"v9.0.012/06/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Record Dinamici
Un record dinamico (dynamic record) è un file di contenuto la cui identità non è un indice sequenziale o una variante denominata, ma un insieme arbitrario di coppie chiave-valore dichiarate in un campo meta. Intlayer utilizza questi campi come selettore al momento dell'esecuzione, rendendo possibile indirizzare record di CMS, testi specifici dell'utente o qualsiasi contenuto le cui chiavi non sono note a tempo di compilazione.
Dichiarare record dinamici
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product-copy",
meta: {
id: "prod_abc",
userId: "user_123",
},
content: {
name: t({ en: "Widget Pro", fr: "Widget Pro" }),
description: t({ en: "The best widget.", fr: "Le meilleur widget." }),
},
} satisfies Dictionary;
export default dictionary;Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product-copy",
meta: {
id: "prod_abcd",
userId: "user_123",
},
content: {
name: t({ en: "Widget Lite", fr: "Widget Lite" }),
description: t({ en: "A lighter option.", fr: "Une option plus légère." }),
},
} satisfies Dictionary;
export default dictionary;Consumare record dinamici
Tutti i campi meta sono obbligatori nel selettore. L'omissione di qualsiasi campo restituisce null ed è un errore di TypeScript.
Copiare il codice nella clipboard
import { useIntlayer } from "react-intlayer";
export const ProductCopy = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product-copy", { id: productId, userId });
// TypeScript garantisce che vengano forniti sia `id` che `userId`.
if (!content) return null;
return <p>{content.description}</p>;
};Con locale esplicita
Copiare il codice nella clipboard
const content = useIntlayer("product-copy", { id: "prod_abc", userId: "user_123", locale: "it",});Campo meta mancante — errore in tempo di compilazione
Copiare il codice nella clipboard
// Errore di tipo: manca `userId`const content = useIntlayer("product-copy", { id: "prod_abc" });Modalità di caricamento (loading mode)
I record dinamici vengono solitamente caricati in modo differito (lazy loading). Imposta importMode sul dizionario per controllare questo comportamento:
Copiare il codice nella clipboard
const dictionary = {
key: "product-copy",
importMode: "fetch", // o "dynamic"
meta: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;Vedi ottimizzazione del bundle per i dettagli sulle modalità static, dynamic e fetch.
Casi d'uso tipici
- Testi di marketing per prodotto gestiti in un CMS
- Contenuti specifici dell'utente o dell'account
- Qualsiasi contenuto identificato da un ID runtime opaco