Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Як зробити компонент багатомовним (i18n) за допомогою Intlayer
У цьому посібнику показано мінімальні кроки, щоб зробити UI-компонент багатомовним у двох поширених налаштуваннях:
- React (Vite/SPA)
- Next.js (App Router)
Спочатку ви оголосите свій вміст, а потім отримаєте його у своєму компоненті.
1) Оголосіть свій вміст (спільно для React і Next.js)
Створіть файл оголошення вмісту поруч із вашим компонентом. Це тримає переклади близько до місця їх використання і забезпечує type safety.
JSON також підтримується, якщо ви віддаєте перевагу конфігураційним файлам.
2) Отримайте свій вміст
Випадок A. React-додаток (Vite/SPA)
Стандартний підхід: використовуйте useIntlayer для отримання за ключем. Це тримає компоненти компактними та типізованими.
Для server-side рендерингу або за межами провайдера: використовуйте react-intlayer/server і передавайте явний параметр locale, коли це потрібно.
Альтернатива: useDictionary може зчитувати всю оголошену структуру, якщо ви віддаєте перевагу розміщенню структури в місці виклику.
Варіант B. Next.js (App Router)
Надавайте перевагу server components для безпеки даних та продуктивності. Використовуйте useIntlayer з next-intlayer/server у серверних файлах, а useIntlayer з next-intlayer, у client components.
Порада: Для метаданих сторінки та SEO ви також можете отримувати контент за допомогою getIntlayer та генерувати багатомовні URL-адреси за допомогою getMultilingualUrls.
Чому компонентний підхід Intlayer найкращий
- Колокація: декларації контенту знаходяться поруч із компонентами, що зменшує розбіжності та покращує повторне використання в дизайн-системах.
- Типобезпека: ключі та структури строго типізовані; відсутні переклади виявляються під час збірки, а не під час виконання.
- Server-first: Працює нативно в серверних компонентах для кращої безпеки та продуктивності; client hooks залишаються ергономічними.
- Tree-shaking: У бандл потрапляє лише контент, який використовує компонент, що допомагає зменшити розмір payload у великих додатках.
- DX & tooling: Вбудований middleware, SEO-хелпери та необов'язкові Visual Editor/AI-переклади спрощують щодену роботу.
Дивіться порівняння та шаблони в огляді, орієнтованому на Next.js: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Пов'язані посібники та довідкові матеріали
- Налаштування React (Vite): https://intlayer.org/doc/environment/vite-and-react
- React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
- TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
- Налаштування Next.js: https://intlayer.org/doc/environment/nextjs
- Чому обрати Intlayer замість next-intl та next-i18next - https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Ці сторінки містять end-to-end налаштування, провайдери, маршрутизацію та SEO-хелпери.