---
createdAt: 2024-08-13
updatedAt: 2026-05-12
title: Конфігурація
description: Дізнайтеся, як налаштувати Intlayer для вашого додатка. Зрозумійте різні налаштування та параметри, доступні для адаптації Intlayer під ваші потреби.
keywords:
  - конфігурація
  - налаштування
  - кастомізація
  - Intlayer
  - параметри
slugs:
  - doc
  - concept
  - configuration
history:
  - version: 8.9.4
    date: 2026-05-12
    changes: "Додано підтримку провайдера LM Studio"
  - version: 8.7.0
    date: 2026-04-07
    changes: "Додано параметри `minify` та `prune` до конфігурації збірки"
  - version: 8.7.0
    date: 2026-04-03
    changes: "Додано параметр `currentDomain`"
  - version: 8.4.0
    date: 2026-03-20
    changes: "Додано підтримку визначення шляхів для кожної локалі для 'compiler.output' та 'dictionary.fill'"
  - version: 8.3.0
    date: 2026-03-11
    changes: "Перенесено 'baseDir' з конфігурації 'content' до конфігурації 'system'"
  - version: 8.2.0
    date: 2026-03-09
    changes: "Оновлено параметри компілятора, додано підтримку для 'output' та 'noMetadata'"
  - version: 8.1.7
    date: 2026-02-25
    changes: "Оновлено параметри компілятора"
  - version: 8.1.5
    date: 2026-02-23
    changes: "Додано параметр компілятора 'build-only' та префікс ключа словника"
  - version: 8.0.6
    date: 2026-02-12
    changes: "Додано підтримку провайдерів Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face та Together AI"
  - version: 8.0.5
    date: 2026-02-06
    changes: "Додано `dataSerialization` до конфігурації AI"
  - version: 8.0.0
    date: 2026-01-24
    changes: "Перейменовано режим імпорту `live` на `fetch` для кращого опису механізму."
  - version: 8.0.0
    date: 2026-01-22
    changes: "Перенесено конфігурацію збірки `importMode` до конфігурації `dictionary`."
  - version: 8.0.0
    date: 2026-01-22
    changes: "Додано параметр `rewrite` до конфігурації маршрутизації"
  - version: 8.0.0
    date: 2026-01-18
    changes: "Відокремлено системну конфігурацію від конфігурації контенту. Перенесено внутрішні шляхи до властивості `system`. Додано `codeDir` для відокремлення файлів контенту від перетворень коду."
  - version: 8.0.0
    date: 2026-01-18
    changes: "Додано параметри словника `location` та `schema`"
  - version: 7.5.1
    date: 2026-01-10
    changes: "Додано підтримку форматів файлів JSON5 та JSONC"
  - version: 7.5.0
    date: 2025-12-17
    changes: "Додано параметр `buildMode`"
  - version: 7.0.0
    date: 2025-10-25
    changes: "Додано конфігурацію `dictionary`"
  - version: 7.0.0
    date: 2025-10-21
    changes: "Замінено `middleware` на конфігурацію `routing`"
  - version: 7.0.0
    date: 2025-10-12
    changes: "Додано параметр `formatCommand`"
  - version: 6.2.0
    date: 2025-10-12
    changes: "Оновлено параметр `excludedPath`"
  - version: 6.0.2
    date: 2025-09-23
    changes: "Додано параметр `outputFormat`"
  - version: 6.0.0
    date: 2025-09-21
    changes: "Вилучено поля `dictionaryOutput` та `i18nextResourcesDir`"
  - version: 6.0.0
    date: 2025-09-16
    changes: "Додано режим імпорту `live`"
  - version: 6.0.0
    date: 2025-09-04
    changes: "Замінено поле `hotReload` на `liveSync` та додано поля `liveSyncPort`, `liveSyncURL`"
  - version: 5.6.1
    date: 2025-07-25
    changes: "Замінено параметр `activateDynamicImport` на параметр `importMode`"
  - version: 5.6.0
    date: 2025-07-13
    changes: "Змінено стандартний `contentDir` з `['src']` на `['.']`"
  - version: 5.5.11
    date: 2025-06-29
    changes: "Додано команди `docs`"
---

# Документація з конфігурації Intlayer

## Огляд

Конфігураційні файли Intlayer дозволяють налаштовувати різні аспекти плагіна, такі як інтернаціоналізація (i18n), проміжне ПЗ та керування контентом. Цей документ містить детальний опис кожної властивості в конфігурації.

---

## Зміст

<TOC/>

---

## Підтримка конфігураційних файлів

Intlayer приймає формати конфігураційних файлів JSON, JS, MJS та TS:

- `intlayer.config.ts`
- `intlayer.config.js`
- `intlayer.config.json`
- `intlayer.config.json5`
- `intlayer.config.jsonc`
- `intlayer.config.cjs`
- `intlayer.config.mjs`
- `.intlayerrc`

---

## Приклад конфігураційного файлу

````typescript fileName="intlayer.config.ts" codeFormat="typescript"
import { Locales, type IntlayerConfig } from "intlayer";
import { nextjsRewrite } from "intlayer/routing";
import { z } from "zod";

/**
 * Приклад конфігураційного файлу Intlayer з усіма доступними параметрами.
 */
const config: IntlayerConfig = {
  /**
   * Конфігурація налаштувань інтернаціоналізації.
   */
  internationalization: {
    /**
     * Список підтримуваних локалей у додатку.
     * За замовчуванням: [Locales.ENGLISH]
     */
    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],

    /**
     * Список обов'язкових локалей, які повинні бути визначені в кожному словнику.
     * Якщо порожній, усі локалі є обов'язковими в режимі `strict`.
     * За замовчуванням: []
     */
    requiredLocales: [Locales.ENGLISH],

    /**
     * Рівень суворості для інтернаціоналізованого контенту.
     * - "strict": Помилка, якщо оголошені локалі відсутні або використовуються неоголошені локалі.
     * - "inclusive": Попередження, якщо оголошені локалі відсутні.
     * - "loose": Приймає будь-яку існуючу локаль.
     * За замовчуванням: "inclusive"
     */
    strictMode: "inclusive",

    /**
     * Локаль за замовчуванням, яка використовується як резервна, якщо запитувана локаль недоступна.
     * За замовчуванням: Locales.ENGLISH
     */
    defaultLocale: Locales.ENGLISH,
  },

  /**
   * Налаштування для контролю операцій зі словниками та поведінки при відсутності контенту.
   */
  dictionary: {
    /**
     * Контролює спосіб імпорту словників.
     * - "static": Статичний імпорт під час збірки.
     * - "dynamic": Динамічний імпорт за допомогою Suspense.
     * - "fetch": Динамічне отримання через Live Sync API.
     * За замовчуванням: "static"
     */
    importMode: "static",

    /**
     * Стратегія автоматичного заповнення відсутніх перекладів за допомогою AI.
     * Може бути логічним значенням або шаблоном шляху для збереження заповненого контенту.
     * За замовчуванням: true
     */
    fill: true,

    /**
     * Фізичне місце розташування файлів словників.
     * - "local": Зберігаються у локальній файловій системі.
     * - "remote": Зберігаються в Intlayer CMS.
     * - "hybrid": Зберігаються і локально, і в Intlayer CMS.
     * - "plugin" (або будь-який рядок): Надаються плагіном або власним джерелом.
     * За замовчуванням: "local"
     */
    location: "local",

    /**
     * Чи слід автоматично перетворювати контент (наприклад, Markdown у HTML).
     * За замовчуванням: false
     */
    contentAutoTransformation: false,
  },

  /**
   * Конфігурація маршрутизації та проміжного ПЗ.
   */
  routing: {
    /**
     * Стратегія маршрутизації локалей.
     * - "prefix-no-default": Префікс для всіх мов, крім стандартної (наприклад, /dashboard, /fr/dashboard).
     * - "prefix-all": Префікс для всіх мов (наприклад, /en/dashboard, /fr/dashboard).
     * - "no-prefix": Локаль не вказується в URL.
     * - "search-params": Використовувати ?locale=...
     * За замовчуванням: "prefix-no-default"
     */
    mode: "prefix-no-default",

    /**
     * Де зберігається вибрана користувачем локаль.
     * Варіанти: 'cookie', 'localStorage', 'sessionStorage', 'header' або їх масив.
     * За замовчуванням: ['cookie', 'header']
     */
    storage: ["cookie", "header"],

    /**
     * Базовий шлях для URL додатка.
     * За замовчуванням: ""
     */
    basePath: "",

    /**
     * Власні правила перенаправлення URL для конкретних локалізованих шляхів.
     */
    rewrite: nextjsRewrite({
      "/[locale]/about": {
        en: "/[locale]/about",
        fr: "/[locale]/a-propos",
      },
    }),

    /**
     * Відображає локалі на імена хостів доменів для маршрутизації на основі доменів.
     * URL для цих локалей будуть абсолютними (наприклад, https://intlayer.cn/).
     * Домен сам по собі вказує на локаль, тому префікс локалі не додається до шляху.
     * За замовчуванням: undefined
     */
    domains: {
      en: "intlayer.org",
      zh: "intlayer.cn",
    },
  },

  /**
   * Налаштування для пошуку та обробки файлів контенту.
   */
  content: {
    /**
     * Розширення файлів для сканування словників.
     * За замовчуванням: ['.content.ts', '.content.js', '.content.json' тощо]
     */
    fileExtensions: [".content.ts", ".content.js", ".content.json"],

    /**
     * Директорії для файлів .content.
     * За замовчуванням: ["."]
     */
    contentDir: ["src"],

    /**
     * Директорія вихідного коду.
     * Використовується для оптимізації збірки та перетворень коду.
     * За замовчуванням: ["."]
     */
    codeDir: ["src"],

    /**
     * Шаблони для виключення зі сканування.
     * За замовчуванням: ['node_modules', '.intlayer' тощо]
     */
    excludedPath: ["node_modules"],

    /**
     * Чи слід відстежувати зміни та перегенеровувати словники під час розробки.
     * За замовчуванням: true у режимі розробки
     */
    watch: true,

    /**
     * Команда для форматування новостворених / оновлених файлів .content.
     */
    formatCommand: 'npx prettier --write "{{file}}"',
  },

  /**
   * Конфігурація візуального редактора.
   */
  editor: {
    /**
     * Чи ввімкнено візуальний редактор.
     * За замовчуванням: false
     */
    enabled: true,

    /**
     * URL вашого додатка для перевірки джерела.
     * За замовчуванням: ""
     */
    applicationURL: "http://localhost:3000",

    /**
     * Порт сервера локального редактора.
     * За замовчуванням: 8000
     */
    port: 8000,

    /**
     * Публічний URL редактора.
     * За замовчуванням: "http://localhost:8000"
     */
    editorURL: "http://localhost:8000",

    /**
     * URL Intlayer CMS.
     * За замовчуванням: "https://app.intlayer.org"
     */
    cmsURL: "https://app.intlayer.org",

    /**
     * URL бекенд-сервера API.
     * За замовчуванням: "https://back.intlayer.org"
     */
    backendURL: "https://back.intlayer.org",

    /**
     * Чи ввімкнено синхронізацію контенту в реальному часі.
     * За замовчуванням: false
     */
    liveSync: true,
  },

  /**
   * Налаштування для перекладів та генерації за допомогою AI.
   */
  ai: {
    /**
     * Використовуваний провайдер AI.
     * Варіанти: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
     * За замовчуванням: 'openai'
     */
    provider: "openai",

    /**
     * Модель, що використовується для вибраного провайдера.
     */
    model: "gpt-4o",

    /**
     * API-ключ для провайдера.
     */
    apiKey: process.env.OPENAI_API_KEY,

    /**
     * Глобальний контекст для допомоги AI під час генерації перекладів.
     */
    applicationContext: "Це додаток для бронювання подорожей.",

    /**
     * Базовий URL для AI API.
     */
    baseURL: "http://localhost:3000",

    /**
     * Серіалізація даних (Data Serialization)
     *
     * Варіанти:
     * - "json": за замовчуванням, надійний; використовує більше токенів.
     * - "toon": швидше, менше токенів, менш стабільний за JSON.
     *
     * За замовчуванням: "json"
     */
    dataSerialization: "json",
  },

  /**
   * Налаштування збірки та оптимізації.
   */
  build: {
    /**
     * Режим виконання збірки.
     * - "auto": Автоматична збірка під час збірки додатка.
     * - "manual": Потрібна явна команда для збірки.
     * За замовчуванням: "auto"
     */
    mode: "auto",

    /**
     * Чи слід оптимізувати пакет додатка шляхом видалення невикористовуваних словників.
     * За замовчуванням: true у виробничому середовищі
     */
    optimize: true,

    /**
     * Мініфікувати словники для зменшення розміру бандла.
     * За замовчуванням: true
     *
     * Примітка:
     * - Цей параметр буде ігноруватися, якщо `optimize` вимкнено.
     * - Цей параметр буде ігноруватися, якщо `editor.enabled` має значення true.
     */
    minify: true,

    /**
     * Видалити невикористовувані ключі в словниках.
     * За замовчуванням: true
     *
     * Примітка:
     * - Цей параметр буде ігноруватися, якщо `optimize` вимкнено.
     */
    purge: true,

    /**
     * Формат виводу для згенерованих файлів словників.
     * За замовчуванням: ['cjs', 'esm']
     */
    outputFormat: ["cjs", "esm"],

    /**
     * Чи виконувати перевірку типів TypeScript під час збірки.
     * За замовчуванням: false
     */
    checkTypes: false,
  },

  /**
   * Конфігурація логера.
   */
  log: {
    /**
     * Режим логування.
     * - "default": Стандартне логування.
     * - "verbose": Детальне логування для відлагодження.
     * - "disabled": Вимкнути логування.
     * За замовчуванням: "default"
     */
    mode: "default",

    /**
     * Префікс для всіх повідомлень у логах.
     * За замовчуванням: "[intlayer]"
     */
    prefix: "[intlayer]",
  },

  /**
   * Системна конфігурація (для просунутого використання)
   */
  system: {
    /**
     * Директорія, де зберігаються локалізовані словники.
     */
    dictionariesDir: ".intlayer/dictionary",

    /**
     * Директорія для module augmentation.
     */
    moduleAugmentationDir: ".intlayer/types",

    /**
     * Директорія для незлитих словників.
     */
    unmergedDictionariesDir: ".intlayer/unmerged_dictionary",

    /**
     * Директорія для типів словників.
     */
    typesDir: ".intlayer/types",

    /**
     * Де знаходяться основні файли додатка.
     */
    mainDir: ".intlayer/main",

    /**
     * Директорія для скомпільованих файлів конфігурації.
     */
    configDir: ".intlayer/config",

    /**
     * Директорія для кеш-файлів.
     */
    cacheDir: ".intlayer/cache",
  },

  /**
   * Конфігурація компілятора (для просунутого використання)
   */
  compiler: {
    /**
     * Чи ввімкнено компілятор.
     *
     * - false: вимкнути компілятор.
     * - true: увімкнути компілятор.
     * - "build-only": пропускати компілятор під час розробки для швидшого запуску.
     *
     * За замовчуванням: false
     */
    enabled: true,

    /**
     * Визначає шлях до вихідного файлу. Замінює `outputDir`.
     *
     * - Шляхи, що починаються з `./`, розраховуються відносно директорії компонента.
     * - Шляхи, що починаються з `/`, розраховуються відносно базової директорії проекту (`baseDir`).
     *
     * - Наявність змінної `{{locale}}` у шляху дозволяє генерувати словники окремо для кожної локалі.
     *
     * Приклади:
     * ```ts
     * {
     *   // Генерує багатомовні файли .content.ts поруч із компонентом
     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,
     *
     *   // output: './{{fileName}}{{extension}}', // Те саме через шаблонний рядок
     * }
     * ```
     *
     * ```ts
     * {
     *   // Генерує централізовані JSON по локалях у корені проекту
     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
     *
     *   // output: '/locales/{{locale}}/{{key}}.content.json', // Те саме через шаблонний рядок
     * }
     * ```
     *
     * Список змінних:
     *   - `fileName`: Ім'я файлу.
     *   - `key`: Ключ контенту.
     *   - `locale`: Локаль контенту.
     *   - `extension`: Розширення файлу.
     *   - `componentFileName`: Ім'я файлу компонента.
     *   - `componentExtension`: Розширення файлу компонента.
     *   - `format`: Формат словника.
     *   - `componentFormat`: Формат словника компонента.
     *   - `componentDirPath`: Шлях до директорії компонента.
     */
    output: ({ locale, key }) => `compiler/${locale}/${key}.json`,

    /**
     * Чи зберігати компоненти після їх перетворення.
     * Таким чином, можна запустити компілятор один раз для перетворення додатка, а потім видалити його.
     */
    saveComponents: false,

    /**
     * Залишати лише контент у згенерованому файлі. Корисно для форматів i18next або ICU MessageFormat JSON по локалях.
     */
    noMetadata: false,

    /**
     * Префікс ключів словника
     */
    dictionaryKeyPrefix: "", // Додає необов'язковий префікс до витягнутих ключів словника
  },

  /**
   * Настроювані схеми для валідації контенту словників.
   */
  schemas: {
    "my-schema": z.object({
      title: z.string(),
    }),
  },

  /**
   * Конфігурація плагінів.
   */
  plugins: [],
};

export default config;
````

---

## Довідник з конфігурації

Нижче наведено детальний опис різних характеристик конфігурації, доступних в Intlayer.

---

### Конфігурація інтернаціоналізації (Internationalization)

Визначає налаштування, пов'язані з інтернаціоналізацією, включаючи доступні локалі та локаль за замовчуванням.

| Поле              | Опис                                                                                          | Тип        | За замовчуванням    | Приклад              | Примітки                                                                                                                                                                                                                                                                                                               |
| ----------------- | --------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locales`         | Список підтримуваних локалей у додатку.                                                       | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` |                                                                                                                                                                                                                                                                                                                        |
| `requiredLocales` | Список обов'язкових локалей у додатку.                                                        | `string[]` | `[]`                | `[]`                 | • Якщо порожній, усі локалі обов'язкові в режимі `strict`.<br/>• Переконайтеся, що обов'язкові локалі також визначені в полі `locales`.                                                                                                                                                                                |
| `strictMode`      | Забезпечує суворе впровадження інтернаціоналізованого контенту за допомогою TypeScript.       | `string`   | `'inclusive'`       |                      | • Якщо `"strict"`: Обов'язкове визначення кожної оголошеної локалі для функції `t` - помилка в разі відсутності або неоголошеної локалі.<br/>• Якщо `"inclusive"`: Попередження для відсутніх локалей, але дозволяє використання існуючих неоголошених локалей.<br/>• Якщо `"loose"`: Приймає будь-яку існуючу локаль. |
| `defaultLocale`   | Локаль за замовчуванням, яка використовується як резервна, якщо запитувана локаль недоступна. | `string`   | `Locales.ENGLISH`   | `'en'`               | Використовується для визначення локалі, якщо її не вказано в URL, файлах cookie або заголовку.                                                                                                                                                                                                                         |

---

### Конфігурація редактора (Editor)

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

| Поле                         | Опис                                                                                                                                                                    | Тип                               | За замовчуванням                    | Приклад                                                                                         | Примітки                                                                                                                                                                                                                      |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `applicationURL`             | URL вашого додатка.                                                                                                                                                     | `string`                          | `undefined`                         | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Використовується для обмеження джерела редактора з міркувань безпеки.<br/>• Якщо встановлено `'*'`, редактор доступний з будь-якого джерела.                                                                                |
| `port`                       | Порт сервера візуального редактора.                                                                                                                                     | `number`                          | `8000`                              |                                                                                                 |                                                                                                                                                                                                                               |
| `editorURL`                  | URL сервера редактора.                                                                                                                                                  | `string`                          | `'http://localhost:8000'`           | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Використовується для обмеження джерел, які можуть взаємодіяти з додатком.<br/>• Якщо встановлено `'*'`, доступно з будь-якого джерела.<br/>• Необхідно, якщо порт змінено або редактор розміщено на іншому домені.          |
| `cmsURL`                     | URL Intlayer CMS.                                                                                                                                                       | `string`                          | `'https://app.intlayer.org'`        | `'https://app.intlayer.org'`                                                                    |                                                                                                                                                                                                                               |
| `backendURL`                 | URL бекенд-сервера.                                                                                                                                                     | `string`                          | `https://back.intlayer.org`         | `http://localhost:4000`                                                                         |                                                                                                                                                                                                                               |
| `enabled`                    | Чи повинен додаток взаємодіяти з візуальним редактором.                                                                                                                 | `boolean`                         | `false`                             | `process.env.NODE_ENV !== 'production'`                                                         | • Якщо `false`, редактор не зможе взаємодіяти з додатком.<br/>• Вимкнення цього для певних середовищ підвищує безпеку.                                                                                                        |
| `clientId`                   | Дозволяє пакетам intlayer автентифікуватися на бекенді через oAuth2. Перейдіть на [intlayer.org/project](https://app.intlayer.org/project), щоб отримати токен доступу. | `string` &#124; <br/> `undefined` | `undefined`                         |                                                                                                 | Повинно зберігатися в секреті; використовуйте змінні середовища.                                                                                                                                                              |
| `clientSecret`               | Дозволяє пакетам intlayer автентифікуватися на бекенді через oAuth2. Перейдіть на [intlayer.org/project](https://app.intlayer.org/project), щоб отримати токен доступу. | `string` &#124; <br/> `undefined` | `undefined`                         |                                                                                                 | Повинно зберігатися в секреті; використовуйте змінні середовища.                                                                                                                                                              |
| `dictionaryPriorityStrategy` | Стратегія пріоритету словників, коли присутні і локальні, і віддалені словники.                                                                                         | `string`                          | `'local_first'`                     | `'distant_first'`                                                                               | • `'distant_first'`: Віддалені словники мають перевагу над локальними.<br/>• `'local_first'`: Локальні словники мають перевагу над віддаленими.                                                                               |
| `liveSync`                   | Чи має сервер додатка негайно перезавантажувати контент при виявленні змін у <br/> CMS <br/> візуальному редакторі <br/> бекенд-сервері.                                | `boolean`                         | `true`                              | `true`                                                                                          | • Оновлює контент сторінки додатка при додаванні/оновленні словників.<br/>• Live Sync приймає контент з іншого сервера, що може незначно вплинути на продуктивність.<br/>• Рекомендується розміщувати обидва на одній машині. |
| `liveSyncPort`               | Порт сервера Live Sync.                                                                                                                                                 | `number`                          | `4000`                              | `4000`                                                                                          |                                                                                                                                                                                                                               |
| `liveSyncURL`                | URL сервера Live Sync.                                                                                                                                                  | `string`                          | `'http://localhost:{liveSyncPort}'` | `'https://example.com'`                                                                         | За замовчуванням вказує на localhost; можна змінити на віддалений сервер Live Sync.                                                                                                                                           |

---

### Конфігурація маршрутизації (Routing)

Налаштування для контролю поведінки маршрутизації, включаючи структуру URL, зберігання локалі та керування проміжним ПЗ.

| Поле       | Опис                                                                                                                                                                                                            | Тип                                                                                                                                                                                                          | За замовчуванням       | Приклад                                                                                                                                                                                        | Примітки                                                                                                                                                                                                                                                                                         |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `mode`     | Режим структури URL для керування локаллю.                                                                                                                                                                      | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'`                                                                                                  | `'prefix-no-default'`  | `'prefix-no-default'`: `/dashboard` (en) або `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard` . `'no-prefix'`: локаль керується іншим способом. `'search-params'`: `/dashboard?locale=fr` | Не впливає на керування файлами cookie або локальне сховище.                                                                                                                                                                                                                                     |
| `storage`  | Конфігурація для зберігання локалі на клієнті.                                                                                                                                                                  | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]`                                                                                                             | Див. таблицю параметрів зберігання нижче.                                                                                                                                                                                                                                                        |
| `basePath` | Базовий шлях для URL додатка.                                                                                                                                                                                   | `string`                                                                                                                                                                                                     | `''`                   | `'/my-app'`                                                                                                                                                                                    | Якщо ваш додаток знаходиться за адресою `https://example.com/my-app`, basePath - `'/my-app'`, що вказує на URL `https://example.com/my-app/en` .                                                                                                                                                 |
| `rewrite`  | Власні правила перенаправлення URL для зміни стандартного режиму маршрутизації для певних шляхів. Підтримує динамічні параметри `[param]`.                                                                      | `Record<string, StrictModeLocaleMap<string>>`                                                                                                                                                                | `undefined`            | Див. приклад нижче                                                                                                                                                                             | • Правила перенаправлення мають вищий пріоритет, ніж `mode`.<br/>• Працює з Next.js та Vite.<br/>• `getLocalizedUrl()` автоматично застосовує відповідні правила.<br/>• Див. [Власні перенаправлення URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
| `domains`  | Відображає локалі на імена хостів доменів для маршрутизації на основі доменів. Якщо встановлено, URL для цієї локалі використовують цей домен як базу (абсолютний URL), і префікс локалі не додається до шляху. | `Partial<Record<Locale, string>>`                                                                                                                                                                            | `undefined`            | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }`                                                                                                                                                    | • Протокол за замовчуванням - `https://`, якщо він не вказаний у імені хоста.<br/>• Сам домен ідентифікує локаль, тому префікс `/zh/` не додається.<br/>• `getLocalizedUrl('/', 'zh')` повертає `https://intlayer.zh/`.                                                                          |

**Приклад `rewrite`**:

```typescript
routing: {
  mode: "prefix-no-default", // Резервна стратегія
  rewrite: nextjsRewrite({
    "/about": {
      en: "/about",
      fr: "/a-propos",
    },
    "/product/[slug]": {
      en: "/product/[slug]",
      fr: "/produit/[slug]",
    },
    "/blog/[category]/[id]": {
      en: "/blog/[category]/[id]",
      fr: "/journal/[category]/[id]",
    },
  }),
}
```

#### Параметри зберігання (Storage)

| Значення           | Примітки                                                                                                                                                                                                       | Опис                                                                      |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `'cookie'`         | • Забезпечте належну згоду користувача відповідно до GDPR.<br/>• Можна налаштувати через `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).                     | Зберігає локаль у файлі cookie - доступно і на клієнті, і на сервері.     |
| `'localStorage'`   | • Термін дії не закінчується, поки не буде видалено явно.<br/>• Intlayer Proxy не має доступу до нього.<br/>• Можна налаштувати через `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Зберігає локаль у браузері без терміну дії - лише клієнтська частина.     |
| `'sessionStorage'` | • Видаляється при закритті вкладки/вікна браузера.<br/>• Intlayer Proxy не має доступу до нього.<br/>• Можна налаштувати через `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`).      | Зберігає локаль на час сесії сторінки - лише клієнтська частина.          |
| `'header'`         | • Корисно для викликів API.<br/>• Клієнтська частина не має доступу до нього.<br/>• Можна налаштувати через `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`).                                 | Зберігає або передає локаль через HTTP-заголовки - лише серверна частина. |

#### Атрибути Cookie (Cookies Attributes)

При використанні зберігання у файлах cookie можна задати додаткові атрибути:

| Поле       | Опис                                                                          | Тип                                                   |
| ---------- | ----------------------------------------------------------------------------- | ----------------------------------------------------- |
| `name`     | Назва файлу cookie. За замовчуванням: `'INTLAYER_LOCALE'`                     | `string`                                              |
| `domain`   | Домен файлу cookie. За замовчуванням: `undefined`                             | `string`                                              |
| `path`     | Шлях файлу cookie. За замовчуванням: `undefined`                              | `string`                                              |
| `secure`   | Вимагати HTTPS. За замовчуванням: `undefined`                                 | `boolean`                                             |
| `httpOnly` | Прапорець HTTP-only. За замовчуванням: `undefined`                            | `boolean`                                             |
| `sameSite` | Політика SameSite.                                                            | `'strict'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
| `expires`  | Дата закінчення терміну дії або кількість днів. За замовчуванням: `undefined` | `Date` &#124; <br/> `number`                          |

#### Атрибути зберігання (Storage Attributes)

При використанні localStorage або sessionStorage:

| Поле   | Опис                                                         | Тип                                              |
| ------ | ------------------------------------------------------------ | ------------------------------------------------ |
| `type` | Тип зберігання.                                              | `'localStorage'` &#124; <br/> `'sessionStorage'` |
| `name` | Назва ключа в сховищі. За замовчуванням: `'INTLAYER_LOCALE'` | `string`                                         |

#### Приклади конфігурації

Ось кілька поширених конфігурацій для нової структури маршрутизації v7:

**Базова конфігурація (Стандартна)**:

```typescript
import { Locales, type IntlayerConfig } from "intlayer";
// intlayer.config.ts
const config: IntlayerConfig = {
  internationalization: {
    locales: ["en", "fr", "es"],
    defaultLocale: "en",
  },
  routing: {
    mode: "prefix-no-default",
    storage: "localStorage",
    basePath: "",
  },
};

export default config;
```

**Конфігурація, сумісна з GDPR**:

```typescript
import { Locales, type IntlayerConfig } from "intlayer";
// intlayer.config.ts
const config: IntlayerConfig = {
  internationalization: {
    locales: ["en", "fr", "es"],
    defaultLocale: "en",
  },
  routing: {
    mode: "prefix-no-default",
    storage: [
      {
        type: "localStorage",
        name: "user-locale",
      },
      {
        type: "cookie",
        name: "user-locale",
        secure: true,
        sameSite: "strict",
        httpOnly: false,
      },
    ],
    basePath: "",
  },
};

export default config;
```

**Режим параметрів пошуку (Search Params)**:

```typescript
import { Locales, type IntlayerConfig } from "intlayer";
// intlayer.config.ts
const config: IntlayerConfig = {
  internationalization: {
    locales: ["en", "fr", "es"],
    defaultLocale: "en",
  },
  routing: {
    mode: "search-params",
    storage: "localStorage",
    basePath: "",
  },
};

export default config;
```

**Режим без префікса (No-Prefix) з власним сховищем**:

```typescript
import { Locales, type IntlayerConfig } from "intlayer";
// intlayer.config.ts
const config: IntlayerConfig = {
  internationalization: {
    locales: ["en", "fr", "es"],
    defaultLocale: "en",
  },
  routing: {
    mode: "no-prefix",
    storage: {
      type: "sessionStorage",
      name: "app-locale",
    },
    basePath: "/my-app",
  },
};

export default config;
```

**Власне перенаправлення URL з динамічними шляхами**:

```typescript
// intlayer.config.ts
import { nextjsRewrite } from "intlayer/routing";

const config: IntlayerConfig = {
  internationalization: {
    locales: ["en", "fr"],
    defaultLocale: "en",
  },
  routing: {
    mode: "prefix-no-default", // Резервний варіант для неперенаправлених шляхів
    storage: "cookie",
    rewrite: nextjsRewrite({
      "/about": {
        en: "/about",
        fr: "/a-propos",
      },
      "/product/[slug]": {
        en: "/product/[slug]",
        fr: "/produit/[slug]",
      },
      "/blog/[category]/[id]": {
        en: "/blog/[category]/[id]",
        fr: "/journal/[category]/[id]",
      },
    }),
  },
};

export default config;
```

---

### Конфігурація контенту (Content)

Налаштування керування контентом у вашому додатку, включаючи назви директорій, розширення файлів та похідні конфігурації.

| Поле             | Опис                                                                                                 | Тип        | За замовчуванням                                                                                                                                                          | Приклад                                                                                                                                                                               | Примітки                                                                                                                                                              |
| ---------------- | ---------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `watch`          | Вказує, чи має Intlayer відстежувати зміни у файлах оголошення контенту для перегенерації словників. | `boolean`  | `true`                                                                                                                                                                    |                                                                                                                                                                                       |                                                                                                                                                                       |
| `fileExtensions` | Розширення файлів для сканування під час компіляції словників.                                       | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']`                     | `['.data.ts', '.data.js', '.data.json']`                                                                                                                                              | Може допомогти уникнути конфліктів кастомізації.                                                                                                                      |
| `contentDir`     | Шляхи до директорій, де знаходяться файли визначення контенту (`.content.*`).                        | `string[]` | `['.']`                                                                                                                                                                   | `['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content']`                                                                                          | Використовується для відстеження файлів контенту та перегенерації словників.                                                                                          |
| `codeDir`        | Директорія шляхів, де знаходиться код, відносно базової директорії.                                  | `string[]` | `['.']`                                                                                                                                                                   | `['src', '../../ui-library']`                                                                                                                                                         | • Використовується для відстеження перетворень файлів коду (видалення непотрібних частин, оптимізація).<br/>• Відокремлення від `contentDir` підвищує продуктивність. |
| `excludedPath`   | Директорії, які слід виключити зі сканування контенту.                                               | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` |                                                                                                                                                                                       | Наразі не використовується; заплановано на майбутнє.                                                                                                                  |
| `formatCommand`  | Команда для форматування файлів контенту, коли Intlayer записує їх локально.                         | `string`   | `undefined`                                                                                                                                                               | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` буде замінено на шлях до файлу.<br/>• Якщо не визначено, Intlayer спробує визначити автоматично (тестує prettier, biome, eslint).                        |

---

### Конфігурація словника (Dictionary)

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

| Поле                        | Опис                                                                                                                                           | Тип                                                                                                             | За замовчуванням | Приклад                                                                                     | Примітки                                                                                                                                                                                                                                                                                                                                                                                                            |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fill`                      | Керує генерацією вихідних файлів автоматичного заповнення (перекладів AI).                                                                     | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `true`           | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: Шлях за замовчуванням (той самий файл, що й джерело).<br/>• `false`: Вимкнено.<br/>• Шаблонний рядок/Функція дозволяє генерацію за локалями.<br/>• Об'єкт за локалями: Кожна локаль відповідає власному шаблону; `false` виключає локаль.<br/>• Включення `{{locale}}` дозволяє генерацію за локалями.<br/>• Налаштування `fill` на рівні словника завжди має пріоритет над цим глобальним налаштуванням. |
| `description`               | Допомагає редактору та CMS зрозуміти призначення словника. Також використовується як контекст для генерації перекладів за допомогою AI.        | `string`                                                                                                        | `undefined`      | `'User profile section'`                                                                    |                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `locale`                    | Перетворює словник у формат для конкретної локалі. Кожне оголошене поле стає вузлом перекладу. Якщо відсутнє, словник вважається багатомовним. | `LocalesValues`                                                                                                 | `undefined`      | `'en'`                                                                                      | Використовуйте це, якщо словник призначений для конкретної мови, а не містить кілька перекладів.                                                                                                                                                                                                                                                                                                                    |
| `contentAutoTransformation` | Чи слід автоматично перетворювати рядки контенту в типізовані вузли (Markdown, HTML або вставки).                                              | `boolean` &#124; <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }`                            | `false`          | `true`                                                                                      | • Markdown : `### Title` → `md('### Title')` .<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')` .<br/>• Вставки : `Hello {{name}}` → `insert('Hello {{name}}')` .                                                                                                                                                                                                                                       |
| `location`                  | Вказує на місце зберігання файлів словників та спосіб їх синхронізації з CMS.                                                                  | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string`         | `'local'`        | `'hybrid'`                                                                                  | • `'local'`: Тільки локальне керування.<br/>• `'remote'`: Тільки віддалене керування (CMS).<br/>• `'hybrid'`: І локальне, і віддалене керування.<br/>• `'plugin'` або власні рядки: Керування через плагін або власне джерело.                                                                                                                                                                                      |
| `importMode`                | Керує способом імпорту словників.                                                                                                              | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'`                                                      | `'static'`       | `'dynamic'`                                                                                 | • `'static'`: Статичний імпорт.<br/>• `'dynamic'`: Динамічний імпорт через Suspense.<br/>• `'fetch'`: Отримання через Live Sync API; резервний варіант `'dynamic'` у разі помилки.<br/>• Потрібні плагіни `@intlayer/babel` та `@intlayer/swc`.<br/>• Ключі мають бути оголошені статично.<br/>• Ігнорується, якщо `optimize` вимкнено.<br/>• Не впливає на `getIntlayer`, `getDictionary` тощо.                    |
| `priority`                  | Пріоритет словника. При вирішенні конфліктів між словниками вище значення має перевагу перед нижчим.                                           | `number`                                                                                                        | `undefined`      | `1`                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `live`                      | ЗАСТАРІЛО - використовуйте `importMode: 'fetch'`. Раніше вказувало, чи слід отримувати контент словника динамічно через Live Sync API.         | `boolean`                                                                                                       | `undefined`      |                                                                                             | Перейменовано на `importMode: 'fetch'` у v8.0.0.                                                                                                                                                                                                                                                                                                                                                                    |
| `schema`                    | Генерується автоматично Intlayer для валідації JSON-схеми.                                                                                     | `'https://intlayer.org/schema.json'`                                                                            | Генерується      |                                                                                             | Не редагуйте вручну.                                                                                                                                                                                                                                                                                                                                                                                                |
| `title`                     | Допомагає ідентифікувати словники в редакторі та CMS.                                                                                          | `string`                                                                                                        | `undefined`      | `'User Profile'`                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `tags`                      | Класифікує словники та надає контекст або інструкції для редактора та AI.                                                                      | `string[]`                                                                                                      | `undefined`      | `['user', 'profile']`                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `version`                   | Версія віддаленого словника; допомагає відстежувати версію, яка використовується на даний момент.                                              | `string`                                                                                                        | `undefined`      | `'1.0.0'`                                                                                   | • Керується в CMS.<br/>• Не редагуйте локально.                                                                                                                                                                                                                                                                                                                                                                     |

**Приклад `fill`**:

```ts
dictionary: {
  fill: {
    en: "/locales/en/{{key}}.content.json",
    fr: ({ key }) => `/locales/fr/${key}.content.json`,
    es: false,
  },
};
```

---

### Конфігурація логера (Log)

Параметри для налаштування виводу логів Intlayer.

| Поле     | Опис                                  | Тип                                                            | За замовчуванням | Приклад            | Примітки                                                                                                |
| -------- | ------------------------------------- | -------------------------------------------------------------- | ---------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| `mode`   | Вказує режим логера.                  | `'default'` &#124; <br/> `'verbose'` &#124; <br/> `'disabled'` | `'default'`      | `'verbose'`        | • `'verbose'`: Записує більше інформації для відлагодження.<br/>• `'disabled'`: Повністю вимикає логер. |
| `prefix` | Префікс для всіх повідомлень у логах. | `string`                                                       | `'[intlayer] '`  | `'[мій префікс] '` |                                                                                                         |

---

### Конфігурація AI (AI)

Налаштування для управління можливостями AI в Intlayer, включаючи провайдера, модель та API-ключ.

Ця конфігурація є необов'язковою, якщо ви реєструєтеся з ключем доступу в [Intlayer Dashboard](https://app.intlayer.org/project). Intlayer автоматично керуватиме найбільш економічно вигідним та ефективним рішенням AI для ваших потреб. Використання стандартних налаштувань забезпечує найкращу довгострокову підтримку, оскільки Intlayer постійно оновлюється для використання останніх моделей.

Якщо ви віддаєте перевагу використанню власного API-ключа або конкретної моделі, ви можете визначити власну конфігурацію AI.
Ця конфігурація AI використовуватиметься глобально у вашому середовищі Intlayer. Команди CLI, такі як `fill`, використовуватимуть ці налаштування за замовчуванням, так само як SDK, візуальний редактор та CMS. Ви можете перевизначити ці значення за замовчуванням у конкретних випадках за допомогою параметрів команд.

Intlayer підтримує широкий спектр провайдерів AI для забезпечення максимальної гнучкості. Наразі підтримуються такі провайдери:

- **OpenAI** (За замовчуванням)
- **Anthropic Claude**
- **Mistral AI**
- **DeepSeek**
- **Google Gemini**
- **Google AI Studio**
- **Google Vertex**
- **Meta Llama**
- **Ollama**
- **OpenRouter**
- **Alibaba Cloud**
- **Fireworks**
- **Hugging Face**
- **Groq**
- **Amazon Bedrock**
- **Together.ai**
- **LM Studio**

| Поле                 | Опис                                                                                                                              | Тип                                                                                                                                                                                                                                                                                                                                                                                                                      | За замовчуванням | Приклад                                                       | Примітки                                                                                                                                                                                          |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `provider`           | Провайдер, який використовуватиметься для функцій AI в Intlayer.                                                                  | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` | `undefined`      | `'anthropic'`                                                 | Різні провайдери вимагають різних API-ключів та мають різні ціни.                                                                                                                                 |
| `model`              | Модель AI, яка використовуватиметься для функцій AI.                                                                              | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Немає            | `'gpt-4o-2024-11-20'`                                         | Конкретні моделі залежать від провайдера.                                                                                                                                                         |
| `temperature`        | Контролює випадковість відповідей AI.                                                                                             | `number`                                                                                                                                                                                                                                                                                                                                                                                                                 | Немає            | `0.1`                                                         | Вища температура = креативніші та менш надійні відповіді.                                                                                                                                         |
| `apiKey`             | Ваш API-ключ для вибраного провайдера.                                                                                            | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Немає            | `process.env.OPENAI_API_KEY`                                  | Повинно зберігатися в секреті; використовуйте змінні середовища.                                                                                                                                  |
| `applicationContext` | Додатковий контекст про ваш додаток, щоб допомогти AI генерувати точніші переклади (домен, цільова аудиторія, тон, термінологія). | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Немає            | `'мій власний контекст додатка'`                              | Може використовуватися для додавання правил (наприклад: `"Ви не повинні перекладати свої URL"` ).                                                                                                 |
| `baseURL`            | Базовий URL для AI API.                                                                                                           | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Немає            | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Може вказувати на локальні або власні кінцеві точки AI API.                                                                                                                                       |
| `dataSerialization`  | Формат серіалізації даних для функцій AI.                                                                                         | `'json'` &#124; <br/> `'toon'`                                                                                                                                                                                                                                                                                                                                                                                           | `undefined`      | `'toon'`                                                      | • `'json'`: за замовчуванням, надійний; використовує більше токенів.<br/>• `'toon'`: менше токенів, менш стабільно.<br/>• Передає моделі контекст як додатковий параметр (reasoning effort тощо). |

---

### Конфігурація збірки (Build)

Параметри, що контролюють спосіб оптимізації та компіляції інтернаціоналізації вашого додатка в Intlayer.

Параметри збірки застосовуються до плагінів `@intlayer/babel` та `@intlayer/swc`.

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

> Під час оптимізації Intlayer замінює виклики словників для оптимізації поділу коду (chunking), щоб підсумковий пакет імпортував лише ті словники, які фактично використовуються.

| Поле              | Опис                                                                    | Тип                              | За замовчуванням                                                                                                                                                                  | Приклад                                                                       | Примітки                                                                                                                                                                                                                                                                                                           |
| ----------------- | ----------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `mode`            | Керує режимом збірки.                                                   | `'auto'` &#124; <br/> `'manual'` | `'auto'`                                                                                                                                                                          | `'manual'`                                                                    | • `'auto'`: Збірка запускається автоматично під час збірки додатка.<br/>• `'manual'`: Виконується лише через явну команду збірки.<br/>• Може використовуватися для запобігання збірці словників (наприклад, щоб уникнути запуску в середовищі Node.js).                                                            |
| `optimize`        | Керує виконанням оптимізації збірки.                                    | `boolean`                        | `undefined`                                                                                                                                                                       | `process.env.NODE_ENV === 'production'`                                       | • Якщо не визначено, оптимізація запускається під час збірки фреймворку (Vite/Next.js).<br/>• `true` форсує оптимізацію навіть у режимі розробки.<br/>• `false` вимикає її.<br/>• Якщо ввімкнено, замінює виклики словників для оптимізації chunking.<br/>• Потрібні плагіни `@intlayer/babel` та `@intlayer/swc`. |
| `minify`          | Мініфікувати словники для зменшення розміру бандла.                     | `boolean`                        | `false`                                                                                                                                                                           |                                                                               | • Чи слід мініфікувати пакет.<br/>• За замовчуванням: `true` у виробничому середовищі.<br/>• Цей параметр буде ігноруватися, якщо `optimize` вимкнено.<br/>• Цей параметр буде ігноруватися, якщо `editor.enabled` має значення true.                                                                              |
| `purge`           | Видалити невикористані ключі в словниках.                               | `boolean`                        | `false`                                                                                                                                                                           |                                                                               | • Чи слід очищати пакет.<br/>• За замовчуванням: `true` у виробничому середовищі.<br/>• Цей параметр буде ігноруватися, якщо `optimize` вимкнено.                                                                                                                                                                  |
| `checkTypes`      | Вказує, чи має збірка перевіряти типи TypeScript та записувати помилки. | `boolean`                        | `false`                                                                                                                                                                           |                                                                               | Може сповільнити процес збірки.                                                                                                                                                                                                                                                                                    |
| `outputFormat`    | Керує форматом виводу словників.                                        | `('esm' &#124; 'cjs')[]`         | `['esm', 'cjs']`                                                                                                                                                                  | `['cjs']`                                                                     |                                                                                                                                                                                                                                                                                                                    |
| `traversePattern` | Шаблон для файлів, які слід сканувати під час оптимізації.              | `string[]`                       | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Покращує продуктивність збірки, обмежуючи оптимізацію відповідними файлами.<br/>• Ігнорується, якщо `optimize` вимкнено.<br/>• Використовує glob-патерни.                                                                                                                                                        |

---

### Системна конфігурація (System)

Ці налаштування призначені для просунутих користувачів та внутрішньої конфігурації Intlayer.

| Поле                      | Опис                                              | Тип      | За замовчуванням                  | Приклад | Примітки |
| ------------------------- | ------------------------------------------------- | -------- | --------------------------------- | ------- | -------- |
| `dictionariesDir`         | Директорія для скомпільованих словників.          | `string` | `'.intlayer/dictionary'`          |         |          |
| `moduleAugmentationDir`   | Директорія для module augmentation TypeScript.    | `string` | `'.intlayer/types'`               |         |          |
| `unmergedDictionariesDir` | Директорія для незлитих словників.                | `string` | `'.intlayer/unmerged_dictionary'` |         |          |
| `typesDir`                | Директорія для згенерованих типів.                | `string` | `'.intlayer/types'`               |         |          |
| `mainDir`                 | Директорія основних файлів Intlayer.              | `string` | `'.intlayer/main'`                |         |          |
| `configDir`               | Директорія скомпільованих конфігураційних файлів. | `string` | `'.intlayer/config'`              |         |          |
| `cacheDir`                | Директорія кеш-файлів.                            | `string` | `'.intlayer/cache'`               |         |          |

---

### Конфігурація компілятора (Compiler)

Керує налаштуваннями компілятора Intlayer, який збирає словники безпосередньо з ваших компонентів.

| Поле                  | Опис                                                                                                                                                                                                                                                                                                         | Тип                                                                                                             | За замовчуванням | Приклад                                                                                                                                                  | Примітки                                                                                                                                                                                                                   |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled`             | Вказує, чи має компілятор бути активним для збору словників.                                                                                                                                                                                                                                                 | `boolean` &#124; <br/> `'build-only'`                                                                           | `true`           | `'build-only'`                                                                                                                                           | `'build-only'` пропускає компілятор під час розробки для швидшого запуску; запускається лише під час команд збірки.                                                                                                        |
| `dictionaryKeyPrefix` | Префікс для зібраних ключів словників.                                                                                                                                                                                                                                                                       | `string`                                                                                                        | `''`             | `'my-prefix-'`                                                                                                                                           | Додається перед згенерованим ключем (на основі імені файлу), щоб уникнути конфліктів.                                                                                                                                      |
| `saveComponents`      | Чи слід зберігати компоненти після їх перетворення.                                                                                                                                                                                                                                                          | `boolean`                                                                                                       | `false`          |                                                                                                                                                          | • Якщо `true`, оригінальні файли будуть перезаписані перетвореними версіями.<br/>• Дозволяє запустити компілятор один раз, а потім видалити його.                                                                          |
| `output`              | Визначає шлях до вихідного файлу. Замінює `outputDir`. Підтримує змінні шаблонів: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}` . | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `undefined`      | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • Шляхи `./` розраховуються відносно директорії компонента.<br/>• Шляхи `/` розраховуються відносно кореня проекту.<br/>• `{{locale}}` дозволяє генерацію за локалями.<br/>• Підтримує визначення через об'єкт по локалях. |
| `noMetadata`          | Якщо `true`, компілятор видаляє метадані словника (ключ, content wrapper) з виводу.                                                                                                                                                                                                                          | `boolean`                                                                                                       | `false`          | `false` → `{"key":"my-key","content":{"key":"value"}}` <br/> `true` → `{"key":"value"}`                                                                  | • Корисно для форматів i18next або ICU MessageFormat JSON.<br/>• Добре працює з плагіном `loadJSON`.                                                                                                                       |
| `dictionaryKeyPrefix` | Префікс ключів словника                                                                                                                                                                                                                                                                                      | `string`                                                                                                        | `''`             |                                                                                                                                                          | Додає необов'язковий префікс до витягнутих ключів словника                                                                                                                                                                 |

---

### Настроювані схеми (Custom Schemas)

| Поле      | Опис                                                                  | Тип                         |
| --------- | --------------------------------------------------------------------- | --------------------------- |
| `schemas` | Дозволяє визначати Zod-схеми для валідації структури ваших словників. | `Record<string, ZodSchema>` |

---

### Плагіни (Plugins)

| Поле      | Опис                                         | Тип                |
| --------- | -------------------------------------------- | ------------------ |
| `plugins` | Список плагінів Intlayer, які слід включити. | `IntlayerPlugin[]` |
