---
createdAt: 2024-08-13
updatedAt: 2026-05-12
title: Конфигурация (Configuration)
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-08
    changes: "Добавлены опции `prune` и `minify` в конфигурацию сборки"
  - 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` в конфигурацию ИИ"
  - 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 позволяют настраивать различные аспекты плагина, такие как интернационализация, middleware и управление контентом. Этот документ содержит подробное описание каждого свойства в конфигурации.

---

## Содержание

<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": Динамическое получение через API Live Sync.
     * По умолчанию: "static"
     */
    importMode: "static",

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

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

    /**
     * Нужно ли автоматически преобразовывать контент (например, Markdown в HTML).
     * По умолчанию: false
     */
    contentAutoTransformation: false,
  },

  /**
   * Конфигурация маршрутизации и middleware.
   */
  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 вашего приложения для валидации источника (origin).
     * По умолчанию: ""
     */
    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: {
    /**
     * Используемый ИИ-провайдер.
     * Опции: '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,

    /**
     * Глобальный контекст для направления ИИ при генерации переводов.
     */
    applicationContext: "Это приложение для бронирования путешествий.",

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

    /**
     * Сериализация данных
     *
     * Опции:
     * - "json": По умолчанию, надежно; потребляет больше токенов.
     * - "toon": Меньше токенов, менее стабильно, чем JSON.
     *
     * По умолчанию: "json"
     */
    dataSerialization: "json",
  },

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

    /**
     * Нужно ли оптимизировать итоговый бандл, удаляя неиспользуемые словари.
     * По умолчанию: true в продакшене
     */
    optimize: true,

    /**
     * Минимизировать словари для уменьшения размера бандла.
     * По умолчанию: false
     *
     * Примечание:
     * - Эта опция будет проигнорирована, если `optimize` отключена.
     * - Эта опция будет проигнорирована, если `editor.enabled` имеет значение true.
     */
    minify: true,

    /**
     * Удалить неиспользуемые ключи в словарях.
     * По умолчанию: false
     *
     * Примечание:
     * - Эта опция будет проигнорирована, если `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",

    /**
     * Директория для хранения неслитых (unmerged) словарей.
     */
    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`: Язык контента (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, куки или заголовке.                                                                                                                                                                                                                                            |

---

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

Определяет настройки для встроенного визуального редактора, включая порт сервера и статус включения.

| Поле                         | Описание                                                                                                                                                                     | Тип                               | По умолчанию                        | Пример                                                                                          | Примечание                                                                                                                                                                                                                                       |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `applicationURL`             | URL приложения.                                                                                                                                                              | `string`                          | `undefined`                         | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Используется для ограничения источника (origin) редактора из соображений безопасности.<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`                   | Должен ли сервер приложения мгновенно перезагружать контент при обнаружении изменений в 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, хранение языков и управление middleware.

| Поле       | Описание                                                                                                                                                                                                                   | Тип                                                                                                                                                                                                          | По умолчанию           | Пример                                                                                                                                                                                           | Примечание                                                                                                                                                                                                                                                                                      |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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` | Не влияет на управление куками или хранилищем языков.                                                                                                                                                                                                                                           |
| `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 }`).      | Хранит язык в куках - доступно как на клиенте, так и на сервере.           |
| `'localStorage'`   | • Не истекает, если не будет явно очищено.<br/>• Прокси Intlayer не может получить к этому доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Хранит язык в браузере без ограничения срока - только на стороне клиента.  |
| `'sessionStorage'` | • Очищается при закрытии вкладки/окна.<br/>• Прокси Intlayer не может получить к этому доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`).   | Хранит язык на время сессии страницы - только на стороне клиента.          |
| `'header'`         | • Полезно для вызовов API.<br/>• Сторона клиента не может получить доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`).                               | Хранит или передает язык через HTTP-заголовки - только на стороне сервера. |

#### Атрибуты куки (Cookies Attributes)

При использовании хранения в куках можно настроить дополнительные атрибуты:

| Поле       | Описание                                                  | Тип                                                   |
| ---------- | --------------------------------------------------------- | ----------------------------------------------------- |
| `name`     | Имя куки. По умолчанию: `'INTLAYER_LOCALE'`               | `string`                                              |
| `domain`   | Домен куки. По умолчанию: `undefined`                     | `string`                                              |
| `path`     | Путь куки. По умолчанию: `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;
```

**Режим без префикса с кастомным хранилищем**:

```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`                      | Управляет тем, как генерируются выходные файлы автозаполнения (ИИ-перевод).                                                                              | `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 понять назначение словаря. Также используется как контекст для генерации переводов с помощью ИИ.                                | `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`                      | Категоризирует словари и предоставляет контекст или инструкции для редактора и ИИ.                                                                       | `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] '` | `'[my prefix] '` |                                                                                                        |

---

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

Настройки, управляющие ИИ-функциями Intlayer, включая провайдера, модель и API-ключ.

Эта конфигурация опциональна, если вы зарегистрированы в [Intlayer Dashboard](https://app.intlayer.org/project) с ключом доступа. Intlayer будет автоматически управлять наиболее эффективным и экономичным решением ИИ для ваших нужд. Использование параметров по умолчанию гарантирует лучшую долгосрочную поддержку, так как Intlayer постоянно обновляется для использования наиболее актуальных моделей.

Если вы предпочитаете использовать собственный API-ключ или конкретную модель, вы можете определить свою конфигурацию ИИ.
Эта конфигурация ИИ будет использоваться глобально в вашей среде Intlayer. Команды CLI будут использовать эти настройки по умолчанию для таких команд, как `fill`, так же как и SDK, визуальный редактор и CMS. Вы можете переопределить эти значения по умолчанию для конкретных случаев использования через параметры команд.

Intlayer поддерживает несколько ИИ-провайдеров для максимальной гибкости. На данный момент поддерживаются следующие провайдеры:

- **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`           | Провайдер, используемый для ИИ-функций 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`              | Модель, используемая для ИИ-функций.                                                                                                          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Нет          | `'gpt-4o-2024-11-20'`                                         | Конкретная модель зависит от провайдера.                                                                                                                                                                    |
| `temperature`        | Управляет случайностью ответов ИИ.                                                                                                            | `number`                                                                                                                                                                                                                                                                                                                                                                                                                 | Нет          | `0.1`                                                         | Выше температура = более креативно и менее предсказуемо.                                                                                                                                                    |
| `apiKey`             | Ваш API-ключ для выбранного провайдера.                                                                                                       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Нет          | `process.env.OPENAI_API_KEY`                                  | Должно храниться в секрете; используйте переменные окружения.                                                                                                                                               |
| `applicationContext` | Дополнительный контекст о вашем приложении, чтобы помочь ИИ генерировать более точные переводы (домен, целевая аудитория, тон, терминология). | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Нет          | `'My own application context'`                                | Можно использовать для добавления правил (например: `"You should not transform URLs"`).                                                                                                                     |
| `baseURL`            | Базовый URL для ИИ API.                                                                                                                       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                 | Нет          | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Может указывать на локальный или кастомный эндпоинт ИИ API.                                                                                                                                                 |
| `dataSerialization`  | Формат сериализации данных для ИИ-функций.                                                                                                    | `'json'` &#124; <br/> `'toon'`                                                                                                                                                                                                                                                                                                                                                                                           | `undefined`  | `'toon'`                                                      | • `'json'`: по умолчанию, надежно; потребляет больше токенов.<br/>• `'toon'`: меньше токенов, менее стабильно.<br/>• Дополнительные параметры передаются в модель как контекст (усилия рассуждения и т.д.). |

---

### Конфигурация сборки (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` форсирует оптимизацию даже в dev режиме.<br/>• `false` отключает ее.<br/>• Если включено, заменяет вызовы словарей для оптимизации чанкинга.<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`   | Директория для расширения модулей 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`, компилятор опускает метаданные словаря (ключ, обертку контента) из вывода.                                                                                                                                                                                                                               | `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[]` |
