Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Lanzamiento de la función de contenido dinámico"v9.0.012/6/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésIf 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
Registros Dinámicos
Un registro dinámico (dynamic record) es un archivo de contenido cuya identidad no es un índice secuencial o una variante nombrada, sino un conjunto arbitrario de pares clave-valor declarados en un campo meta. Intlayer utiliza esos campos como el selector en tiempo de ejecución, lo que permite direccionar registros de CMS, copias específicas del usuario o cualquier contenido cuyas claves no se conozcan en tiempo de compilación.
Declarar registros dinámicos
Copiar el código al portapapeles
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;Copiar el código al portapapeles
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;Consumir registros dinámicos
Todos los campos meta son obligatorios en el selector. Omitir cualquier campo devuelve null y es un error de TypeScript.
Copiar el código al portapapeles
import { useIntlayer } from "react-intlayer";
export const ProductCopy = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product-copy", { id: productId, userId });
// TypeScript garantiza que se proporcionen tanto `id` como `userId`.
if (!content) return null;
return <p>{content.description}</p>;
};Con configuración regional explícita
Copiar el código al portapapeles
const content = useIntlayer("product-copy", { id: "prod_abc", userId: "user_123", locale: "es",});Falta el campo meta — error en tiempo de compilación
Copiar el código al portapapeles
// Error de tipo: falta `userId`const content = useIntlayer("product-copy", { id: "prod_abc" });Mode de carga (loading mode)
Los registros dinámicos suelen cargarse de forma diferida. Establezca importMode en el diccionario para controlar esto:
Copiar el código al portapapeles
const dictionary = {
key: "product-copy",
importMode: "fetch", // o "dynamic"
meta: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;Consulte optimización del bundle para obtener más detalles sobre los modos static, dynamic y fetch.
Casos de uso típicos
- Copia de marketing por producto gestionada en un CMS
- Contenido específico del usuario o de la cuenta
- Cualquier contenido identificado por un ID de tiempo de ejecución opaco