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à delle varianti"v9.0.012/06/2026
- "`variant` ora accetta una stringa o un oggetto — i precedenti `meta` / record dinamici si dichiarano come varianti oggetto"v9.1.026/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
Varianti
Una variante è un insieme di file di contenuto che condividono la stessa chiave del dizionario (key) ma portano ciascuno un valore variant diverso. Intlayer serve il file appropriato in base al selettore passato a useIntlayer.
Il valore di variant può assumere due forme:
- Una stringa — una singola alternativa con nome (test A/B, banner stagionali, feature flag).
- Un oggetto — un discriminatore strutturato indirizzato da un insieme di campi (record di CMS, contenuti specifici per utente, qualsiasi contenuto con chiave un ID opaco). L'intero oggetto è l'identità: il selettore deve fornire un oggetto uguale per risolvere la voce.
La forma a oggetto sostituisce il precedente campometa. Ovunque scrivessimeta: { id, … }, scrivivariant: { id, … }e selezionala con{ variant: { id, … } }.
Varianti con nome (stringa)
Ogni file rappresenta un'alternativa con nome. Omettere variant (o impostarlo su "default") la contrassegna come fallback.
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "default",
content: {
headline: t({
en: "Build faster with Intlayer",
fr: "Développez plus vite avec Intlayer",
}),
cta: t({ en: "Get started", fr: "Commencer" }),
},
} satisfies Dictionary;
export default dictionary;Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "black_friday",
content: {
headline: t({
en: "50 % off — today only",
fr: "−50 % — aujourd'hui seulement",
}),
cta: t({ en: "Shop now", fr: "Acheter maintenant" }),
},
} satisfies Dictionary;
export default dictionary;Consumare varianti con nome
Variante predefinita
Copiare il codice nella clipboard
import { useIntlayer } from "react-intlayer";
export const Hero = () => {
const { headline, cta } = useIntlayer("hero-banner");
// → variante predefinita
return (
<section>
<h1>{headline}</h1>
<a>{cta}</a>
</section>
);
};Variante con nome
Copiare il codice nella clipboard
const { headline, cta } = useIntlayer("hero-banner", { variant: "black_friday",});Variante con nome con locale esplicito
Copiare il codice nella clipboard
const content = useIntlayer("hero-banner", { variant: "black_friday", locale: "fr",});Varianti oggetto (strutturate)
Una variante oggetto indirizza il contenuto tramite un insieme arbitrario di coppie chiave-valore dichiarate nel campo variant — rendendo possibile modellare record di CMS, contenuti specifici per utente o qualsiasi contenuto la cui chiave è un ID opaco. L'intero oggetto è l'identità: il selettore deve fornire un oggetto uguale affinché la voce venga risolta.
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product",
variant: { 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",
variant: { 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 varianti oggetto
Passa l'oggetto corrispondente a variant. Ogni campo dichiarato nel dizionario deve essere fornito e uguale; altrimenti il risultato è null. L'ordine dei campi non ha importanza.
Copiare il codice nella clipboard
import { useIntlayer } from "react-intlayer";
export const Product = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product", {
variant: { id: productId, userId },
});
if (!content) return null;
return <p>{content.description}</p>;
};Con locale esplicito
Copiare il codice nella clipboard
const content = useIntlayer("product", { variant: { id: "prod_abc", userId: "user_123" }, locale: "fr",});Campo mancante — nessuna corrispondenza
Copiare il codice nella clipboard
// Restituisce null: manca `userId`, quindi l'oggetto non corrisponde alla variante dichiarataconst content = useIntlayer("product", { variant: { id: "prod_abc" } });Modalità di caricamento
Le varianti oggetto sono spesso caricate in modo differito. Imposta importMode sul dizionario per controllarlo:
Copiare il codice nella clipboard
const dictionary = {
key: "product",
importMode: "fetch", // or "dynamic"
variant: { 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
- Test A/B di testo guidati da una chiave di esperimento
- Banner stagionali o promozionali
- Messaggistica con feature flag
- Campagne di marketing specifiche per locale
- Testo di marketing per prodotto gestito in un CMS
- Contenuti specifici per utente o account
- Qualsiasi contenuto indicizzato da un ID opaco a runtime