Дата створення:2025-08-23Останнє оновлення:2025-08-23

    Інтеграція з React: Документація хуку useI18n

    Цей розділ містить детальні вказівки щодо використання хука useI18n у React-застосунках для ефективної локалізації контенту.

    Імпорт useI18n у React

    Хук useI18n можна імпортувати та інтегрувати в React-застосунки залежно від контексту наступним чином:

    • Клієнтські компоненти:

      import { useI18n } from "react-intlayer"; // Використовується в клієнтських React-компонентах
      import { useI18n } from "react-intlayer"; // Використовується в клієнтських React-компонентах
      const { useI18n } = require("react-intlayer"); // Використовується в клієнтських React-компонентах
    • Серверні компоненти:

      import { useI18n } from "react-intlayer/server"; // Використовується в серверних React-компонентах
      import { useI18n } from "react-intlayer/server"; // Використовується у серверних React-компонентах
      const { useI18n } = require("react-intlayer/server"); // Використовується у серверних React-компонентах

    Параметри

    Цей хук приймає два параметри:

    1. namespace: Простір імен словника для обмеження області ключів перекладу.
    2. locale (необов'язково): Бажана локаль. Якщо не вказано, за замовчуванням буде використано локаль з контексту.

    Словник

    Усі ключі словника повинні бути оголошені у файлах декларації вмісту, щоб підвищити типобезпеку та запобігти помилкам. Інструкції з конфігурації можна знайти тут.

    Приклади використання в React

    Приклади використання хуку useI18n у React-компонентах:

    import type { FC } from "react";
    import { ClientComponentExample, ServerComponentExample } from "@components";
    import { IntlayerProvider } from "react-intlayer";
    import { useI18n, IntlayerServerProvider } from "react-intlayer/server";
    import { Locales } from "intlayer";
    
    const App: FC<{ locale: Locales }> = ({ locale }) => {
      const t = useI18n("home-page", locale);
    
      return (
        <>
          <p>{t("introduction")}</p>
          <IntlayerProvider locale={locale}>
            <ClientComponentExample />
          </IntlayerProvider>
          <IntlayerServerProvider locale={locale}>
            <ServerComponentExample />
          </IntlayerServerProvider>
        </>
      );
    };
    import type { FC } from "react";
    import { useI18n } from "react-intlayer";
    
    const ComponentExample: FC = () => {
      const t = useI18n("component-example");
    
      return (
        <div>
          <h1>{t("title")}</h1> {/* Відобразити заголовок */}
          <p>{t("description")}</p> {/* Відобразити опис */}
        </div>
      );
    };
    import { useI18n } from "react-intlayer/server";
    
    const ServerComponentExample = () => {
      const t = useI18n("server-component");
    
      return (
        <div>
          <h1>{t("title")}</h1> {/* Відображає заголовок */}
          <p>{t("description")}</p> {/* Відображає опис */}
        </div>
      );
    };

    Обробка атрибутів

    При локалізації атрибутів правильно звертайтеся до значень перекладу:

    <!-- Для атрибутів доступності (наприклад, aria-label) використовуйте .value, оскільки потрібні чисті рядки -->
    <button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>

    Додаткові ресурси

    • Intlayer Visual Editor: Для більш інтуїтивного керування контентом зверніться до документації візуального редактора тут.

    У цьому розділі докладно розглядається інтеграція хука useI18n у React-застосунки, що спрощує процес локалізації та забезпечує узгодженість контенту між різними локалями.