Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Оновлення використання API useIntlayer у Solid для прямого доступу до властивостей"v8.9.004.05.2026
- "Додано команду init"v7.5.930.12.2025
- "Оновлено Layout і обробку 404"v7.5.627.12.2025
- "Оновлено документацію"v6.1.503.10.2025
- "Додано для React Router v7"v5.8.204.09.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Перекладіть ваш вебсайт на React Router v7 за допомогою Intlayer | Інтернаціоналізація (i18n)
Цей посібник показує, як інтегрувати Intlayer для безшовної інтернаціоналізації в проєктах на React Router v7 з маршрутизацією, чутливою до локалі, підтримкою TypeScript та сучасними практиками розробки.
Цей посібник зосереджений на frontend-маршрутизації. Для маршрутизації з fs-routes зверніться до посібника Intlayer з React Router v7 File-System Routes.
Зміст
Чому варто обрати Intlayer, а не альтернативи?
Порівняно з основними рішеннями, такими як react-i18next або i18next, Intlayer — це рішення, яке має такі інтегровані оптимізації, як:
Intlayer оптимізовано для ідеальної роботи з React Router, пропонуючи маршрутизацію з урахуванням локалі, проміжне програмне забезпечення для визначення локалі та всі функції, необхідні для інтернаціоналізації масштабування (i18n).
Замість того, щоб завантажувати великі файли JSON на свої сторінки, завантажуйте лише необхідний вміст. Intlayer допомагає зменшити розмір бандлу і сторінок до 50%.
Організація вмісту за окремими областями (scoping) полегшує технічне обслуговування великомасштабних програм. Ви можете скопіювати або видалити окрему папку функцій без розумового навантаження перегляду всієї кодової бази вмісту. Крім того, Intlayer повністю типізований (fully typed), щоб забезпечити точність вашого вмісту.
Спільне розміщення вмісту зменшує контекст, необхідний для великих мовних моделей (LLM). Intlayer також постачається з набором інструментів, наприклад CLI для перевірки відсутніх перекладів,LSP, MCP і agent skills, щоб зробити роботу розробника (DX) ще зручнішою для агентів ШІ.
Використовуйте автоматизацію для перекладу в конвеєрі CI/CD за допомогою LLM за вашим вибором за рахунок вашого постачальника штучного інтелекту. Intlayer також пропонує компілятор для автоматизації екстракція вмісту, а також веб-платформу, щоб допомогти перекладати у фоновому режимі.
Підключення великих файлів JSON до компонентів може призвести до проблем з продуктивністю та реакцією. Intlayer оптимізує завантаження вмісту під час збірки (build time).
Більше ніж просто рішення i18n, Intlayer пропонує власний візуальний редактор і повний CMS, щоб допомогти вам керувати своїм багатомовним вмістом у реальному часі, спрощуючи співпрацю з перекладачами, копірайтерами та іншими членами команди. Контент можна зберігати локально та/або віддалено.
Покрокове керівництво з налаштування Intlayer у застосунку на React Router v7
Встановлення залежностей
Встановіть необхідні пакети, використовуючи ваш улюблений package manager:
bashКопіювати кодСкопіюйте код у буфер обміну
прапорець
--interactiveне є обов'язковим. Використовуйтеintlayer-cli init, якщо ви є ШІ-агентом.Ця команда виявить ваше середовище та встановить необхідні пакети. Наприклад:
bashКопіювати кодСкопіюйте код у буфер обміну
intlayer
Базовий пакет, який надає інструменти інтернаціоналізації для керування конфігурацією, перекладів, оголошення вмісту, транспіляції та команд CLI.
react-intlayer Пакет, який інтегрує Intlayer у React-додаток. Він забезпечує провайдери контексту та хуки для інтернаціоналізації в React.
vite-intlayer Містить Vite-плагін для інтеграції Intlayer з зборщиком Vite, а також middleware для визначення переважної локалі користувача, керування cookie та обробки перенаправлень URL.
Конфігурація вашого проєкту
Покроковий посібник зі встановлення Intlayer у застосунок React Router v7 із маршрутами на основі файлової системи
Перегляньте Шаблон застосунку на GitHub.
Створіть конфігураційний файл для налаштування мов вашого застосунку:
Скопіюйте код у буфер обміну
import { type IntlayerConfig, Locales } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
defaultLocale: Locales.ENGLISH,
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
},
};
export default config;
Через цей файл конфігурації ви можете налаштувати локалізовані URL-адреси, перенаправлення через middleware, назви cookie, розташування та розширення ваших декларацій контенту, вимкнути логи Intlayer в консолі та інше. Для повного переліку доступних параметрів див. документацію з конфігурації.
Інтеграція Intlayer у вашу конфігурацію Vite
Додайте плагін intlayer у вашу конфігурацію:
vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
Плагін Vite
intlayer()використовується для інтеграції Intlayer з Vite. Він забезпечує побудову файлів декларацій контенту та відстежує їх у режимі розробки. Він визначає змінні середовища Intlayer у застосунку Vite. Додатково надає aliases для оптимізації продуктивності.Налаштуйте маршрути React Router v7
Налаштуйте конфігурацію маршрутизації для маршрутів, які враховують локаль:
app/routes.tsКопіювати кодСкопіюйте код у буфер обміну
Створіть компоненти layout
Налаштуйте свій root layout та layout-и для кожної локалі:
Кореневий layout
app/root.tsxКопіювати кодСкопіюйте код у буфер обміну
Оголосіть ваш контент
Створіть і керуйте деклараціями контенту для збереження перекладів:
app/routes/[lang]/page.content.tsКопіювати кодСкопіюйте код у буфер обміну
Ваші декларації контенту можуть бути визначені будь-де у вашому застосунку, якщо вони поміщені до директорії
contentDir(за замовчуванням./app). І вони повинні відповідати розширенню файлу декларацій контенту (за замовчуванням.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Для докладнішої інформації див. документацію з декларацій контенту.
Створіть компоненти, які враховують локаль
Створіть компонент
LocalizedLinkдля навігації з урахуванням локалі:app/components/localized-link.tsxКопіювати кодСкопіюйте код у буфер обміну
У разі, якщо ви хочете переходити на локалізовані маршрути, ви можете використати хук
useLocalizedNavigate:app/hooks/useLocalizedNavigate.tsКопіювати кодСкопіюйте код у буфер обміну
Використання Intlayer на ваших сторінках
Отримуйте доступ до словників контенту у всьому вашому застосунку:
Локалізована домашня сторінка
app/routes/page.tsxКопіювати кодСкопіюйте код у буфер обміну
Щоб дізнатися більше про хук
useIntlayer, зверніться до документації.Якщо ваш застосунок уже існує, ви можете скористатися Intlayer Compiler у поєднанні з командой extract, щоб перетворити тисячі компонентів за одну секунду.
Створіть компонент перемикача локалі
Створіть компонент, який дозволить користувачам змінювати мову:
app/components/locale-switcher.tsxКопіювати кодСкопіюйте код у буфер обміну
Щоб дізнатися більше про хук
useLocale, зверніться до документації.Додати керування атрибутами HTML
Створіть хук для керування атрибутами lang та dir у HTML:
app/hooks/useI18nHTMLAttributes.tsxКопіювати кодСкопіюйте код у буфер обміну
Потім використайте його у вашому кореневому компоненті:
app/routes/layout.tsxКопіювати кодСкопіюйте код у буфер обміну
Додати middleware
Ви також можете використовувати
intlayerProxyдля додавання маршрутизації на стороні сервера до вашої програми. Цей плагін автоматично визначатиме поточну локаль на основі URL-адреси та встановлюватиме відповідну cookie-файл локалі. Якщо локаль не вказана, плагін визначить найбільш відповідну локаль на основі переваг мови браузера користувача. Якщо локаль не виявлена, плагін перенаправить на локаль за умовчанням.Зверніть увагу, що для використання
intlayerProxyу production, вам потрібно перенести пакетvite-intlayerзdevDependenciesдоdependencies.Починаючи з версії Intlayer v9,
intlayerProxy()інтегрований безпосередньо в плагінintlayer()і ввімкнений за замовчуванням через опціюrouting.enableProxy(за замовчуваннямtrue). Реєстрація його окремо, як показано нижче, тепер є необов'язковою — вона зберігається для зворотної сумісності та конфігурацій, що потребують контролю порядку плагінів. Встановітьrouting.enableProxy: false, щоб відмовитися від цього. Див. примітки до випуску v9.vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
Витягніть вміст ваших компонентів
Необов'язковоЯкщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
Щоб спростити цей процес, Intlayer пропонує компілятор / екстрактор для перетворення ваших компонентів і витягування вмісту.
Щоб налаштувати його, ви можете додати розділ
compilerу свій файлintlayer.config.ts:intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Інша частина вашої конфігурації compiler: { /** * Вказує, чи повинен бути включений компілятор. */ enabled: true, /** * Визначає шлях до вихідних файлів */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити. */ saveComponents: false, /** * Префікс ключа словника */ dictionaryKeyPrefix: "", }, }; export default config;Запустіть екстрактор для перетворення компонентів і витягування вмісту
bashКопіювати кодСкопіюйте код у буфер обміну
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.Оновіть свій
vite.config.ts, щоб включити плагінintlayerCompiler:vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
bashКопіювати кодСкопіюйте код у буфер обміну
Configure TypeScript
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
Ensure your TypeScript configuration includes the autogenerated types:
Скопіюйте код у буфер обміну
Git Configuration
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
To do this, you can add the following instructions to your .gitignore file:
Скопіюйте код у буфер обміну
VS Code Extension
To improve your development experience with Intlayer, you can install the official Intlayer VS Code Extension.
Install from the VS Code Marketplace
This extension provides:
- Autocompletion for translation keys.
- Real-time error detection for missing translations.
- Inline previews of translated content.
- Quick actions to easily create and update translations.
For more details on how to use the extension, refer to the Intlayer VS Code Extension documentation.
Go Further
To go further, you can implement the visual editor or externalize your content using the CMS.
Посилання на документацію
- Документація Intlayer
- Документація React Router v7
- Хук useIntlayer
- Хук useLocale
- Оголошення контенту
- Конфігурація
Цей всебічний посібник містить усе необхідне для інтеграції Intlayer з React Router v7, щоб отримати повністю інтернаціоналізований додаток з маршрутизацією, яка враховує локаль, та підтримкою TypeScript.
