ГоловнаПісочницяВітринаДодатокДокументаціяБлог
    • Englishанглійська
      EN
    • русскийросійська
      RU
    • 日本語японська
      JA
    • françaisфранцузька
      FR
    • 한국어корейська
      KO
    • 中文китайська
      ZH
    • españolіспанська
      ES
    • Deutschнімецька
      DE
    • العربيةарабська
      AR
    • italianoіталійська
      IT
    • British Englishанглійська (Велика Британія)
      EN-GB
    • portuguêsпортугальська
      PT
    • हिन्दीгінді
      HI
    • Türkçeтурецька
      TR
    • polskiпольська
      PL
    • Indonesiaіндонезійська
      ID
    • Tiếng Việtвʼєтнамська
      VI
    • українськаукраїнська
      UK
    /
    Alt+←
    Що таке міжнароднізація (i18n)?
    SEO та i18n
    Гід
    • i18n з використанням next-i18next
    • i18n з використанням next-intl
    Використовуйте Intlayer на своєму рішенні
    • Автоматизація next-i18next
    • Автоматизація react-i18next
    • Автоматизація next-intl
    • Автоматизація react-intl
    • Автоматизація vue-i18n
    Порівняння
    • next-i18next vs next-intl vs Intlayer
    • react-i18next vs react-intl vs Intlayer
    Документація
    1. Blog
    2. Intlayer with next i18next
    Дата створення:2025-08-23Останнє оновлення:2025-11-06
    Переглянути відеоурок

    На цій сторінці доступний відеоурок.

    Надішліть цей документ вашому улюбленому AI-асистенту
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту

    Історія версій

    1. Додано документацію про підтримку AI-провайдерів
      v7.0.706.11.2025
    2. Додано плагін loadJSON
      v7.0.601.11.2025
    3. Заміна на плагін syncJSON та повний перепис
      v7.0.029.10.2025

    Вміст цієї сторінки перекладено за допомогою штучного інтелекту.

    Переглянути останню версію оригінального вмісту англійською
    Редагувати цей документ

    Якщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.

    Посилання на документацію на GitHub
    Копіювати

    Скопіювати документацію у форматі Markdown в буфер обміну

    Як автоматизувати JSON-переклади next-i18next за допомогою Intlayer

    www.youtube.com

    Зміст

    Що таке Intlayer?

    Intlayer, інноваційна open-source бібліотека для інтернаціоналізації, створена для усунення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у додатках Next.js.

    Перегляньте конкретне порівняння з next-intl у нашому дописі в блозі next-i18next vs. next-intl vs. Intlayer.

    Чому поєднувати Intlayer з next-i18next?

    Хоча Intlayer є відмінним самостійним i18n-рішенням (див. наш гайд по інтеграції з Next.js), ви можете захотіти поєднати його з next-i18next з кількох причин:

    Intlayer пропонує широкий набір розширених можливостей, що виходять за рамки традиційних i18n-інструментів. Воно допомагає вам:

    • Автоматично виявляти та заповнювати відсутні переклади, щоб спростити локалізацію.
    • Тестувати та валідувати ваші переклади безпосередньо у ваших workflow для розробки або CI/CD.
    • Керуйте контентом на рівні компонентів, що забезпечує чисту, масштабовану та підтримувану структуру в усьому вашому додатку.
    • Виносьте контент зовні, роблячи його легко редагованим для всієї вашої команди (розробників, перекладачів та контент-менеджерів).

    Однак i18next залишається відмінним та широко застосовуваним рішенням для i18n завдяки своїй зрілій екосистемі, широкій підтримці спільноти та великій сумісності з плагінами.

    Поєднавши Intlayer з i18next, ви отримуєте найкраще з обох світів, стабільність та зрілість екосистеми i18next разом із сучасним керуванням контентом, автоматизацією та покращеним досвідом розробника від Intlayer.

    Цей посібник пояснює, як використовувати Intlayer як адаптер для i18next, що дозволяє вам:

    • Поступово мігрувати з i18next на Intlayer.
    • Зберігайте наявні плагіни та робочі процеси i18next.
    • Автоматизуйте переклади JSON через CLI або CI/CD конвеєри.
    • Тестуйте, синхронізуйте та керуйте перекладами ефективніше.

    Покроковий посібник із налаштування Intlayer з next-i18next

    Крок 1: Встановлення залежностей

    Встановіть необхідні пакети, використовуючи ваш улюблений пакетний менеджер:

    bash
    Копіювати код

    Скопіюйте код у буфер обміну

    npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init

    Пояснення пакетів:

    • intlayer: Основна бібліотека для декларації та управління контентом
    • @intlayer/sync-json-plugin: Плагін для синхронізації декларацій контенту Intlayer у формат JSON для i18next

    Крок 2: Реалізація плагіна Intlayer для обгортання JSON

    Створіть файл конфігурації Intlayer, щоб визначити підтримувані локалі:

    Якщо ви також хочете експортувати JSON-словники для i18next, додайте плагін syncJSON:

    intlayer.config.ts
    Копіювати код

    Скопіюйте код у буфер обміну

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;

    Плагін syncJSON автоматично обгортає JSON. Він читає та записує JSON-файли без зміни архітектури контенту.

    Якщо ви хочете, щоб ці JSON-файли співіснували з файлами декларації контенту Intlayer (.content файли), Intlayer працюватиме таким чином:

    plaintext
    Копіювати код

    Скопіюйте код у буфер обміну

    1. завантажити як JSON-файли, так і файли декларації контенту й перетворити їх на словник Intlayer.2. якщо виникають конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Результат залежить від пріоритету плагінів та пріоритету файлу декларації контенту, обидва параметри конфігуровані.

    Якщо зміни вносяться за допомогою CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.

    Щоб дізнатися більше про плагін syncJSON, див. документацію плагіна syncJSON.

    Крок 4: Налаштування AI-провайдера

    Intlayer відкриває набір розширених автоматизацій та зручних для розробника функцій для вашого робочого процесу i18next.

    • Автоматичне виявлення та заповнення відсутніх перекладів: Intlayer сканує ваші JSON-словники, знаходить неперекладені або відсутні ключі й перекладає лише їх, тож 99% вашого JSON залишається незмінним.
    • Порційний (chunked) переклад для великих JSON-файлів: Коли ваші файли перекладу дуже великі, Intlayer автоматично розбиває обробку на керовані порції, перекладаючи їх незалежно, щоб уникнути лімітів API та проблем із пам'яттю.
    • Паралелізація namespace-ів: Якщо у вас сотні namespace-ів (або файлів), Intlayer паралелізує задачі перекладу, ефективно прискорюючи ваші CI/CD або масові операції перекладу.
    • Гнучка підтримка AI-провайдерів: Оберіть бажаного AI-провайдера (наприклад, OpenAI, Claude, Gemini), просто налаштувавши облікові дані. Використовуйте власний API-ключ і перемикайте провайдерів за потреби.
    • Стійка обробка відповідей AI: Intlayer вміє обробляти крайові випадки, коли ваш AI-провайдер повертає текст або як рядок, або як об'єкт, навіть автоматично повторюючи запит, якщо формат непослідовний.
    • Готовий для CLI та CI/CD: Запускайте перевірки Intlayer та автоматичне заповнення безпосередньо у ваших тестах або пайплайнах, роблячи процес локалізації надійним та автоматизованим.
    • Інтегрується поверх вашої існуючої конфігурації: Вам не потрібно змінювати ваш i18next або Next.js фундамент. Intlayer працює як додатковий плагін до вашої поточної конфігурації, надаючи всі ці переваги з мінімальною міграцією.

    Ось приклад налаштування AI-провайдера:

    intlayer.config.ts
    Копіювати код

    Скопіюйте код у буфер обміну

    import { Locales, type IntlayerConfig } from "intlayer";import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  ai: {    provider: "openai",    model: "gpt-5-mini",    apiKey: process.env.OPENAI_API_KEY,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;

    Тоді ви можете виконати наступну команду, щоб заповнити ваші переклади:

    bash
    Копіювати код

    Скопіюйте код у буфер обміну

    npx intlayer fill

    Це заповнить ваші переклади за допомогою AI-провайдера, який ви налаштували.

    Дивіться всіх доступних AI-провайдерів у документації Intlayer щодо конфігурації AI. Дивіться всі доступні команди у документації Intlayer CLI.


    Конфігурація Git

    Виключити згенеровані файли з контролю версій:

    .gitignore
    Копіювати код

    Скопіюйте код у буфер обміну

    # Ігнорувати файли, згенеровані Intlayer.intlayer

    Ці файли автоматично генеруються під час процесу збірки й не потребують коміту у ваш репозиторій.

    Розширення для VS Code

    Для покращення досвіду розробника встановіть офіційне розширення Intlayer для VS Code:

    Встановити з VS Code Marketplace

    i18n з використанням next-intl
    Автоматизація react-i18next
    Alt+→

    На цій сторінці

      Обговорення анонімні та регулярно переглядаються для вирішення поширених проблем. Не соромтеся ділитися ідеями функцій, відгуками про документацію або будь-чим, що стосується Intlayer, ми використовуємо цю інформацію для формування нашої дорожньої карти та покращення продукту.

      npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;
      1. завантажити як JSON-файли, так і файли декларації контенту й перетворити їх на словник Intlayer.2. якщо виникають конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Результат залежить від пріоритету плагінів та пріоритету файлу декларації контенту, обидва параметри конфігуровані.
      import { Locales, type IntlayerConfig } from "intlayer";import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  ai: {    provider: "openai",    model: "gpt-5-mini",    apiKey: process.env.OPENAI_API_KEY,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;
      npx intlayer fill
      # Ігнорувати файли, згенеровані Intlayer.intlayer