Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Випуск функції динамічного контенту"v9.0.012.06.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюIf 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
Динамічні Записи
Динамічний запис (dynamic record) — це файл вмісту, ідентифікація якого базується не на послідовному індексі чи іменованому варіанті, а на довільному наборі пар ключ-значення, оголошених у полі meta. Intlayer використовує ці поля як селектор під час виконання, що дозволяє адресувати записи CMS, вміст конкретного користувача або будь-які дані, ключі яких невідомі під час збирання проекту.
Оголошення динамічних записів
Скопіюйте код у буфер обміну
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;Скопіюйте код у буфер обміну
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;Використання динамічних записів
Усі поля meta є обов'язковими в селекторі. Опущення будь-якого поля повертає null і є помилкою TypeScript.
Скопіюйте код у буфер обміну
import { useIntlayer } from "react-intlayer";
export const ProductCopy = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product-copy", { id: productId, userId });
// TypeScript гарантує, що надано як `id`, так і `userId`.
if (!content) return null;
return <p>{content.description}</p>;
};З явною локаллю
Скопіюйте код у буфер обміну
const content = useIntlayer("product-copy", { id: "prod_abc", userId: "user_123", locale: "uk",});Відсутність поля meta — помилка під час компіляції
Скопіюйте код у буфер обміну
// Помилка типу: відсутній `userId`const content = useIntlayer("product-copy", { id: "prod_abc" });Режим завантаження (loading mode)
Динамічні записи зазвичай завантажуються відкладено. Установіць importMode для словника, щоб налаштувати це:
Скопіюйте код у буфер обміну
const dictionary = {
key: "product-copy",
importMode: "fetch", // або "dynamic"
meta: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;Детальніше про режими static, dynamic та fetch див. у розділі оптимізація пакетів.
Типові варіанти використання
- Маркетингові тексти для окремих продуктів, керовані в CMS
- Вміст конкретного користувача або облікового запису
- Будь-який вміст, що отримується на основі непрозорого runtime ID