Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Init history"v5.5.1029.06.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійською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
Інтеграція з React: документація хука useDictionary
У цьому розділі наведено детальні вказівки щодо використання хука useDictionary у React-застосунках, що дозволяє ефективно працювати з локалізованим вмістом без візуального редактора.
Імпорт хука useDictionary у React
Хук useDictionary можна інтегрувати в React-застосунки, імпортуючи його залежно від контексту:
Клієнтський компонент:
typescriptКопіювати кодСкопіюйте код у буфер обміну
import { useDictionary } from "next-intlayer"; // Використовується в клієнтських React-компонентахСерверний компонент:
typescriptКопіювати кодСкопіюйте код у буфер обміну
import { useDictionary } from "next-intlayer/server"; // Використовується в серверних React-компонентах
Параметри
Хук приймає два параметри:
dictionary: Оголошений об'єкт словника, що містить локалізований вміст для певних ключів.locale(необов'язковий): Бажана локаль. За замовчуванням використовується локаль поточного контексту, якщо не вказано.
Словник
Усі об'єкти словників мають бути оголошені у структурованих файлах вмісту, щоб забезпечити типобезпеку та запобігти помилкам під час виконання. Інструкції зі встановлення можна знайти тут. Ось приклад декларації вмісту:
Скопіюйте код у буфер обміну
import { t, type Dictionary } from "intlayer";
const exampleContent = {
key: "component-example",
content: {
title: t({
en: "Client Component Example",
fr: "Exemple de composant client",
es: "Ejemplo de componente cliente",
}),
content: t({
en: "This is the content of a client component example",
fr: "Ceci est le contenu d'un exemple de composant client",
es: "Este es el contenido de un ejemplo de componente cliente",
}),
},
} satisfies Dictionary;
export default exampleContent;Приклад використання в клієнтському React-компоненті
Нижче наведено приклад того, як використовувати хук useDictionary у React-компоненті:
Скопіюйте код у буфер обміну
"use client";
import type { FC } from "react";
import { useDictionary } from "next-intlayer";
import clientComponentExampleContent from "./component.content";
const ClientComponentExample: FC = () => {
const { title, content } = useDictionary(clientComponentExampleContent);
return (
<div>
<h1>{title}</h1>
<p>{content}</p>
</div>
);
};Приклад використання в React Server Component
Якщо ви використовуєте хук useDictionary поза IntlayerServerProvider, локаль має бути явно передана як параметр під час рендерингу компонента:
Скопіюйте код у буфер обміну
import type { FC } from "react";
import { useDictionary } from "next-intlayer/server";
import clientComponentExampleContent from "./component.content";
const ServerComponentExample: FC = () => {
const { content } = useDictionary(clientComponentExampleContent);
return (
<div>
<h1>{content.title}</h1>
<p>{content.content}</p>
</div>
);
};Примітки щодо атрибутів
На відміну від інтеграцій, що використовують візуальні редактори, атрибути на кшталт buttonTitle.value тут не застосовуються. Натомість звертайтесь безпосередньо до локалізованих рядків, як вони оголошені у вашому контенті.
Скопіюйте код у буфер обміну
<button title={content.title}>{content.content}</button>Додаткові поради
- Type Safety: Завжди використовуйте
Dictionaryдля визначення ваших словників, щоб забезпечити безпеку типів. - Оновлення локалізацій: При оновленні контенту переконайтеся, що всі locales узгоджені, щоб уникнути відсутніх перекладів.
Ця документація зосереджена на інтеграції хука useDictionary, що забезпечує оптимізований підхід до керування локалізованим контентом без покладання на функціональність візуального редактора.