---
createdAt: 2024-08-13
updatedAt: 2026-02-12
title: Конфигурация
description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные параметры и опции, доступные для настройки Intlayer под ваши нужды.
keywords:
  - Конфигурация
  - Настройки
  - Кастомизация
  - Intlayer
  - Опции
slugs:
  - doc
  - concept
  - configuration
history:
  - version: 8.0.6
    date: 2026-02-12
    changes: Add support for Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face, and Together.ai providers
  - version: 8.0.5
    date: 2026-02-06
    changes: Добавление `dataSerialization` в конфигурацию ИИ
  - version: 8.0.0
    date: 2026-01-22
    changes: Move `importMode` build configuration to `dictionary` configuration.
  - 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: 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 позволяют настраивать различные аспекты плагина, такие как интернационализация, промежуточное ПО и обработка контента. В этом документе приведено подробное описание каждого свойства в конфигурации.

---

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

<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";

/**
 * Example Intlayer configuration file showing all available options.
 */
const config: IntlayerConfig = {
  /**
   * Configuration for internationalization settings.
   */
  internationalization: {
    /**
     * List of supported locales in the application.
     * Default: [Locales.ENGLISH]
     */
    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],

    /**
     * List of required locales that must be defined in every dictionary.
     * If empty, all locales are required in `strict` mode.
     * Default: []
     */
    requiredLocales: [Locales.ENGLISH],

    /**
     * Strictness level for internationalized content.
     * - "strict": Errors if any declared locale is missing or undeclared.
     * - "inclusive": Warnings if a declared locale is missing.
     * - "loose": Accepts any existing locale.
     * Default: "inclusive"
     */
    strictMode: "inclusive",

    /**
     * Default locale used as a fallback if the requested locale is not found.
     * Default: Locales.ENGLISH
     */
    defaultLocale: Locales.ENGLISH,
  },

  /**
   * Settings that control dictionary operations and fallback behavior.
   */
  dictionary: {
    /**
     * Controls how dictionaries are imported.
     * - "static": Statically imported at build time.
     * - "dynamic": Dynamically imported using Suspense.
     * - "fetch": Fetched dynamically via the live sync API.
     * Default: "static"
     */
    importMode: "static",

    /**
     * Strategy for auto-filling missing translations using AI.
     * Can be a boolean or a path pattern to store filled content.
     * Default: true
     */
    fill: true,

    /**
     * Physical location of the dictionary files.
     * - "local": Stored in the local filesystem.
     * - "remote": Stored in the Intlayer CMS.
     * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
     * - "plugin" (or any custom string): Provided by a plugin or a custom source.
     * Default: "local"
     */
    location: "local",

    /**
     * Whether to automatically transform content (e.g., Markdown to HTML).
     * Default: false
     */
    contentAutoTransformation: false,
  },

  /**
   * Routing and middleware configuration.
   */
  routing: {
    /**
     * Locale routing strategy.
     * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
     * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
     * - "no-prefix": No locale in the URL.
     * - "search-params": Use ?locale=...
     * Default: "prefix-no-default"
     */
    mode: "prefix-no-default",

    /**
     * Where to store the user's selected locale.
     * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
     * Default: ['cookie', 'header']
     */
    storage: "cookie",

    /**
     * Base path for the application URLs.
     * Default: ""
     */
    basePath: "",

    /**
     * Custom URL rewriting rules for locale-specific paths.
     */
    rewrite: nextjsRewrite({
      "/[locale]/about": {
        en: "/[locale]/about",
        fr: "/[locale]/a-propos",
      },
    }),
  },

  /**
   * Settings for finding and processing content files.
   */
  content: {
    /**
     * File extensions to scan for dictionaries.
     * Default: ['.content.ts', '.content.js', '.content.json', etc.]
     */
    fileExtensions: [".content.ts", ".content.js", ".content.json"],

    /**
     * Directories where .content files are located.
     * Default: ["."]
     */
    contentDir: ["src"],

    /**
     * Directories where source code is located.
     * Used for build optimization and code transformation.
     * Default: ["."]
     */
    codeDir: ["src"],

    /**
     * Patterns to exclude from scanning.
     * Default: ['node_modules', '.intlayer', etc.]
     */
    excludedPath: ["node_modules"],

    /**
     * Whether to watch for changes and rebuild dictionaries in development.
     * Default: true in development
     */
    watch: true,

    /**
     * Command to format newly created / updated .content files.
     */
    formatCommand: 'npx prettier --write "{{file}}"',
  },

  /**
   * Visual Editor configuration.
   */
  editor: {
    /**
     * Whether the visual editor is enabled.
     * Default: true
     */
    enabled: true,

    /**
     * URL of your application for origin validation.
     * Default: "*"
     */
    applicationURL: "http://localhost:3000",

    /**
     * Port for the local editor server.
     * Default: 8000
     */
    port: 8000,

    /**
     * Public URL for the editor.
     * Default: "http://localhost:8000"
     */
    editorURL: "http://localhost:8000",

    /**
     * Intlayer CMS URL.
     * Default: "https://app.intlayer.org"
     */
    cmsURL: "https://app.intlayer.org",

    /**
     * Backend API URL.
     * Default: "https://back.intlayer.org"
     */
    backendURL: "https://back.intlayer.org",

    /**
     * Whether to enable real-time content synchronization.
     * Default: false
     */
    liveSync: true,
  },

  /**
   * AI-powered translation and generation settings.
   */
  ai: {
    /**
     * AI provider to use.
     * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
     * Default: 'openai'
     */
    provider: "openai",

    /**
     * Model to use from the selected provider.
     */
    model: "gpt-4o",

    /**
     * Provider API key.
     */
    apiKey: process.env.OPENAI_API_KEY,

    /**
     * Global context to guide the AI in generating translations.
     */
    applicationContext: "This is a travel booking application.",

    /**
     * Base URL for the AI API.
     */
    baseURL: "http://localhost:3000",

    /**
     * Data serialization format to use for the AI features of Intlayer.
     * - "json": The industry standard. Highly reliable and structured, but consumes more tokens.
     * - "toon": An optimized format designed to reduce token consumption (cost-effective). However, it may slightly increase the risk of output inconsistency compared to standard JSON
     * Default: "json"
     */
    dataSerialization: "json",
  },

  /**
   * Build and optimization settings.
   */
  build: {
    /**
     * Build execution mode.
     * - "auto": Automatic build during app build.
     * - "manual": Requires explicit build command.
     * Default: "auto"
     */
    mode: "auto",

    /**
     * Whether to optimize the final bundle by pruning unused dictionaries.
     * Default: true in production
     */
    optimize: true,

    /**
     * Output format for generated dictionary files.
     * Default: ['esm', 'cjs']
     */
    outputFormat: ["esm"],

    /**
     * Indicates if the build should check TypeScript types.
     * Default: false
     */
    checkTypes: false,
  },

  /**
   * Logger configuration.
   */
  log: {
    /**
     * Logging level.
     * - "default": Standard logging.
     * - "verbose": Detailed debug logging.
     * - "disabled": No logging.
     * Default: "default"
     */
    mode: "default",

    /**
     * Prefix for all log messages.
     * Default: "[intlayer]"
     */
    prefix: "[intlayer]",
  },

  /**
   * System configuration (Advanced use cases)
   */
  system: {
    /**
     * Directory for storing localization dictionaries.
     */
    dictionariesDir: ".intlayer/dictionary",

    /**
     * Directory for module augmentation.
     */
    moduleAugmentationDir: ".intlayer/types",

    /**
     * Directory for storing unmerged dictionaries.
     */
    unmergedDictionariesDir: ".intlayer/unmerged_dictionary",

    /**
     * Directory for storing dictionary types.
     */
    typesDir: ".intlayer/types",

    /**
     * Directory where main application files are stored.
     */
    mainDir: ".intlayer/main",

    /**
     * Directory where the configuration files are stored.
     */
    configDir: ".intlayer/config",

    /**
     * Directory where the cache files are stored.
     */
    cacheDir: ".intlayer/cache",
  },

  /**
   * Compiler configuration (Advanced use cases)
   */
  compiler: {
    /**
     * Indicates if the compiler should be enabled.
     */
    enabled: true,

    /**
     * Pattern to traverse the code to optimize.
     */
    transformPattern: [
      "**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
      "!**/node_modules/**",
    ],

    /**
     * Pattern to exclude from the optimization.
     */
    excludePattern: ["**/node_modules/**"],

    /**
     * Output directory for the optimized dictionaries.
     */
    outputDir: "compiler",
  },

  /**
   * Custom schemas to validate the dictionaries content.
   */
  schemas: {
    "my-schema": z.object({
      title: z.string(),
    }),
  },

  /**
   * Plugins configuration.
   */
  plugins: [],
};

export default config;
```

## Справочник по конфигурации

В следующих разделах описаны различные настройки конфигурации, доступные в Intlayer.

---

### Конфигурация интернационализации

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

#### Свойства

- **locales**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['en']`
  - _Описание_: Список поддерживаемых локалей в приложении.
  - _Пример_: `['en', 'fr', 'es']`

- **requiredLocales**:
  - _Тип_: `string[]`
  - _По умолчанию_: `[]`
  - _Описание_: Список обязательных локалей в приложении.
  - _Пример_: `[]`
  - _Примечание_: Если пусто, все локали обязательны в режиме `strict`.
  - _Примечание_: Убедитесь, что обязательные локали также определены в поле `locales`.
- **strictMode**:
  - _Тип_: `string`
  - _По умолчанию_: `inclusive`
  - _Описание_: Обеспечивает строгую реализацию интернационализированного контента с использованием typescript.
  - _Примечание_: Если установлено значение "strict", функция перевода `t` потребует определения каждой объявленной локали. Если одна локаль отсутствует или не объявлена в вашей конфигурации, будет выброшена ошибка.
  - _Примечание_: Если установлено значение "inclusive", функция перевода `t` потребует определения каждой объявленной локали. Если одна локаль отсутствует, будет выдано предупреждение. Но будет принято, если локаль не объявлена в вашей конфигурации, но существует.
  - _Примечание_: Если установлено значение "loose", функция перевода `t` примет любую существующую локаль.

- **defaultLocale**:
  - _Тип_: `string`
  - _По умолчанию_: `'en'`
  - _Описание_: Локаль по умолчанию, используемая в качестве резервной, если запрошенная локаль не найдена.
  - _Пример_: `'en'`
  - _Примечание_: Используется для определения локали, когда она не указана в URL, cookie или заголовке.

---

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

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

#### Свойства

- **applicationURL**:
  - _Тип_: `string`
  - _По умолчанию_: `http://localhost:3000`
  - _Описание_: URL приложения. Используется для ограничения источника редактора по соображениям безопасности.
  - _Пример_:
    - `'http://localhost:3000'`
    - `'https://example.com'`
    - `process.env.INTLAYER_EDITOR_URL`
  - _Примечание_: URL приложения. Используется для ограничения источника редактора по соображениям безопасности. Если установлено значение `'*'`, редактор доступен с любого источника.

- **port**:
  - _Тип_: `number`
  - _По умолчанию_: `8000`
  - _Описание_: Порт, используемый сервером визуального редактора.

- **editorURL**:
  - _Тип_: `string`
  - _По умолчанию_: `'http://localhost:8000'`
  - _Описание_: URL сервера редактора. Используется для ограничения источника редактора по соображениям безопасности.
    - `'http://localhost:3000'`
    - `'https://example.com'`
    - `process.env.INTLAYER_EDITOR_URL`
  - _Примечание_: URL сервера редактора, к которому нужно обращаться из приложения. Используется для ограничения источников, которые могут взаимодействовать с приложением, в целях безопасности. Если установлено значение `'*'`, редактор доступен с любого источника. Должно быть установлено, если порт изменён или если редактор размещён на другом домене.

- **cmsURL**:
  - _Тип_: `string`
  - _По умолчанию_: `'https://intlayer.org'`
  - _Описание_: URL Intlayer CMS.
  - _Пример_: `'https://intlayer.org'`
  - _Примечание_: URL Intlayer CMS.

- **backendURL**:
  - _Тип_: `string`
  - _По умолчанию_: `https://back.intlayer.org`
  - _Описание_: URL сервера бэкенда.
  - _Пример_: `http://localhost:4000`

- **enabled**:
  - _Тип_: `boolean`
  - _По умолчанию_: `true`
  - _Описание_: Указывает, взаимодействует ли приложение с визуальным редактором.
  - _Пример_: `process.env.NODE_ENV !== 'production'`
  - _Примечание_: Если значение true, редактор сможет взаимодействовать с приложением. Если false, редактор не сможет взаимодействовать с приложением. В любом случае, редактор может быть включен только визуальным редактором. Отключение редактора для определённых окружений является способом обеспечения безопасности.

- **clientId**:
  - _Тип_: `string` | `undefined`
  - _По умолчанию_: `undefined`
  - _Описание_: clientId и clientSecret позволяют пакетам intlayer аутентифицироваться на сервере с использованием аутентификации oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://app.intlayer.org/project и создайте учетную запись.
  - _Пример_: `true`
  - _Примечание_: Важно: clientId и clientSecret должны храниться в секрете и не должны быть доступны публично. Пожалуйста, убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.

- **clientSecret**:
  - _Тип_: `string` | `undefined`
  - _По умолчанию_: `undefined`
  - _Описание_: clientId и clientSecret позволяют пакетам intlayer аутентифицироваться на сервере с помощью аутентификации oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://app.intlayer.org/project и создайте учетную запись.
  - _Пример_: `true`
  - _Примечание_: Важно: clientId и clientSecret должны храниться в секрете и не должны быть доступны публично. Пожалуйста, храните их в безопасном месте, например, в переменных окружения.

- **dictionaryPriorityStrategy**:
  - _Тип_: `string`
  - _По умолчанию_: `'local_first'`
  - _Описание_: Стратегия приоритизации словарей в случае наличия как локальных, так и удалённых словарей. Если установлено значение `'distant_first'`, приложение будет отдавать приоритет удалённым словарям перед локальными. Если установлено значение `'local_first'`, приложение будет отдавать приоритет локальным словарям перед удалёнными.
  - _Пример_: `'distant_first'`

- **liveSync**:
  - _Тип_: `boolean`
  - _По умолчанию_: `false`
  - _Описание_: Указывает, должен ли сервер приложения автоматически обновлять содержимое приложения при обнаружении изменений в CMS / Визуальном редакторе / Бэкенде.
  - _Пример_: `true`
  - _Примечание_: Например, когда добавляется или обновляется новый словарь, приложение обновит содержимое для отображения на странице.
  - _Примечание_: Live sync требует внешнего размещения контента приложения на другом сервере. Это может немного повлиять на производительность приложения. Чтобы ограничить это, мы рекомендуем размещать приложение и сервер live sync на одной машине. Также комбинация live sync и `optimize` может привести к значительному количеству запросов к серверу live sync. В зависимости от вашей инфраструктуры, мы рекомендуем протестировать оба варианта и их комбинацию.

- **liveSyncPort**:
  - _Тип_: `number`
  - _По умолчанию_: `4000`
  - _Описание_: Порт сервера live sync.
  - _Пример_: `4000`
  - _Примечание_: Порт сервера live sync.

- **liveSyncURL**:
  - _Тип_: `string`
  - _По умолчанию_: `'http://localhost:{liveSyncPort}'`
  - _Описание_: URL сервера live sync.
  - _Пример_: `'https://example.com'`
  - _Примечание_: По умолчанию указывает на localhost, но может быть изменён на любой URL в случае удалённого сервера live sync.

### Конфигурация Middleware

Настройки, управляющие поведением middleware, включая обработку cookies, заголовков и префиксов URL для управления локализацией.

#### Свойства

- **headerName**:
  - _Тип_: `string`
  - _По умолчанию_: `'x-intlayer-locale'`
  - _Описание_: Имя HTTP-заголовка, используемого для определения локали.
  - _Пример_: `'x-custom-locale'`
  - _Примечание_: Полезно для определения локали через API.

- **cookieName**:
  - _Тип_: `string`
  - _По умолчанию_: `'intlayer-locale'`
  - _Описание_: Имя cookie, используемого для хранения локали.
  - _Пример_: `'custom-locale'`
  - _Примечание_: Используется для сохранения локали между сессиями.

- **prefixDefault**:
  - _Тип_: `boolean`
  - _По умолчанию_: `false`
  - _Описание_: Включать ли локаль по умолчанию в URL.
  - _Пример_: `true`
  - _Примечание_:
    - Если `true` и `defaultLocale = 'en'`: путь = `/en/dashboard` или `/fr/dashboard`
    - Если `false` и `defaultLocale = 'en'`: путь = `/dashboard` или `/fr/dashboard`

- **basePath**:
  - _Тип_: `string`
  - _По умолчанию_: `''`
  - _Описание_: Базовый путь для URL приложения.
  - _Пример_: `'/my-app'`
  - _Примечание_:
    - Если приложение размещено по адресу `https://example.com/my-app`
    - Базовый путь будет `'/my-app'`
    - URL будет `https://example.com/my-app/en`
    - Если базовый путь не установлен, URL будет `https://example.com/en`

- **rewrite**:
  - _Тип_: `Record<string, StrictModeLocaleMap<string>>`
  - _По умолчанию_: `undefined`
  - _Описание_: Пользовательские правила перезаписи URL, которые переопределяют режим маршрутизации по умолчанию для определенных путей. Позволяет определять пути, специфичные для языка, которые отличаются от стандартного поведения маршрутизации. Поддерживает динамические параметры маршрута с использованием синтаксиса `[param]`.
  - _Пример_:
    ```typescript
    routing: {
      mode: "prefix-no-default", // Стратегия отката
      rewrite: nextjsRewrite({
        "/[locale]/about": {
          en: "/[locale]/about",
          fr: "/[locale]/a-propos",
        },
        "/[locale]/product/[slug]": {
          en: "/[locale]/product/[slug]",
          fr: "/[locale]/produit/[slug]",
        },
        "/[locale]/blog/[category]/[id]": {
          en: "/[locale]/blog/[category]/[id]",
          fr: "/[locale]/journal/[category]/[id]",
        },
      }),
    }
    ```
  - _Примечание_: Правила перезаписи имеют приоритет над поведением `mode` по умолчанию. Если путь соответствует правилу перезаписи, будет использован локализованный путь из конфигурации перезаписи вместо стандартного префикса языка.
  - _Примечание_: Динамические параметры маршрута поддерживаются с использованием нотации в квадратных скобках (например, `[slug]`, `[id]`). Значения параметров автоматически извлекаются из URL и интерполируются в перезаписанный путь.
  - _Примечание_: Работает с приложениями Next.js и Vite. Промежуточное ПО/прокси автоматически перезапишет входящие запросы, чтобы соответствовать внутренней структуре маршрута.
  - _Примечание_: При генерации URL с помощью `getLocalizedUrl()` правила перезаписи автоматически применяются, если они соответствуют предоставленному пути.
  - _Ссылка_: Дополнительную информацию см. в разделе [Пользовательская перезапись URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/custom_url_rewrites.md).

- **serverSetCookie**:
  - _Тип_: `string`
  - _По умолчанию_: `'always'`
  - _Описание_: Правило установки cookie локали на сервере.
  - _Опции_: `'always'`, `'never'`
  - _Пример_: `'never'`
  - _Примечание_: Управляет тем, устанавливается ли cookie локали при каждом запросе или никогда.

- **noPrefix**:
  - _Тип_: `boolean`
  - _По умолчанию_: `false`
  - _Описание_: Нужно ли опускать префикс локали в URL.
  - _Пример_: `true`
  - _Примечание_:
    - Если `true`: префикс в URL отсутствует
    - Если `false`: префикс в URL присутствует
    - Пример с `basePath = '/my-app'`:
      - Если `noPrefix = false`: URL будет `https://example.com/my-app/en`
      - Если `noPrefix = true`: URL будет `https://example.com`

---

### Конфигурация контента

Настройки, связанные с обработкой контента в приложении, включая имена каталогов, расширения файлов и производные конфигурации.

#### Свойства

- **autoFill**:
  - _Тип_: `boolean | string | { [key in Locales]?: string }`
  - _По умолчанию_: `undefined`
  - _Описание_: Указывает, как содержимое должно автоматически заполняться с помощью ИИ. Может быть объявлено глобально в файле `intlayer.config.ts`.
  - _Пример_: true
  - _Пример_: `'./{{fileName}}.content.json'`
  - _Пример_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
  - _Примечание_: Конфигурация автозаполнения. Может быть:
    - boolean: Включить автозаполнение для всех локалей
    - string: Путь к одному файлу или шаблону с переменными
    - object: Пути к файлам для каждой локали

- **watch**:
  - _Тип_: `boolean`
  - _По умолчанию_: `process.env.NODE_ENV === 'development'`
  - _Описание_: Указывает, должен ли Intlayer отслеживать изменения в файлах декларации контента в приложении для перестройки соответствующих словарей.

- **fileExtensions**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
  - _Описание_: Расширения файлов, которые следует искать при построении словарей.
  - _Пример_: `['.data.ts', '.data.js', '.data.json']`
  - _Примечание_: Настройка расширений файлов может помочь избежать конфликтов.

- **baseDir**:
  - _Тип_: `string`
  - _По умолчанию_: `process.cwd()`
  - _Описание_: Базовый каталог проекта.
  - _Пример_: `'/path/to/project'`
  - _Примечание_: Используется для разрешения всех директорий, связанных с Intlayer.

- **contentDir**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['.']`
  - _Пример_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
  - _Описание_: Путь к директории, где хранятся файлы определений контента (`.content.*`).
  - _Примечание_: Используется для отслеживания файлов контента для перестройки словарей.

- **codeDir**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['.']`
  - _Пример_: `['src', '../../ui-library']`
  - _Описание_: Путь к директории, где хранится код, относительно базовой директории.
  - _Примечание_: Используется для отслеживания файлов кода для преобразования (обрезка, оптимизация). Разделение этого от `contentDir` может улучшить производительность сборки, избегая ненужных сканирований файлов контента.

- **excludedPath**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
  - _Описание_: Каталоги, исключённые из поиска контента.
  - _Примечание_: Эта настройка пока не используется, но планируется к реализации в будущем.

- **formatCommand**:
  - _Тип_: `string`
  - _По умолчанию_: `undefined`
  - _Описание_: Команда для форматирования контента. Когда Intlayer записывает ваши файлы .content локально, эта команда будет использоваться для форматирования контента.
  - _Пример_: `'npx prettier --write "{{file}}" --log-level silent'` Использование Prettier
  - _Пример_: `'npx biome format "{{file}}" --write --log-level none'` Использование Biome
  - _Пример_: `'npx eslint --fix "{{file}}"  --quiet'` Использование ESLint
  - _Примечание_: Intlayer заменит {{file}} на путь к файлу для форматирования.
  - _Примечание_: Если не установлено, Intlayer попытается автоматически обнаружить команду форматирования. Пытаясь разрешить следующие команды: prettier, biome, eslint.

---

### Конфигурация системы

Настройки, связанные с внутренними путями и результатами вывода Intlayer. Эти настройки обычно являются внутренними и не должны изменяться пользователем.

#### Свойства

- **dictionariesDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/dictionary'`
  - _Описание_: Путь к каталогу для хранения словарей локализации.

- **moduleAugmentationDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/types'`
  - _Описание_: Директория для расширения модулей, что позволяет улучшить подсказки IDE и проверку типов.
  - _Пример_: `'intlayer-types'`
  - _Примечание_: Обязательно включите эту директорию в `tsconfig.json`.

- **unmergedDictionariesDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/unmerged_dictionary'`
  - _Описание_: Директория для хранения неслитых словарей.

- **typesDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/types'`
  - _Описание_: Каталог для хранения типов словарей.

- **mainDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/main'`
  - _Описание_: Каталог, где хранятся основные файлы приложения.

- **configDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/config'`
  - _Описание_: Каталог, где хранятся файлы конфигурации.

- **cacheDir**:
  - _Тип_: `string`
  - _По умолчанию_: `'.intlayer/cache'`
  - _Описание_: Каталог, где хранятся файлы кэша.

- **outputFilesPatternWithPath**:
  - _Тип_: `string`
  - _По умолчанию_: `'{{dictionariesDir}}/**/*.json'`
  - _Описание_: Шаблон для выходных файлов, включая относительный путь.

### Конфигурация словаря

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

Эта конфигурация словаря служит двум основным целям:

1. **Значения по умолчанию**: Определение значений по умолчанию при создании файлов объявления контента
2. **Поведение отката**: Предоставление значений отката, когда определённые поля не определены, позволяя вам глобально определить поведение операций словаря

Для получения дополнительной информации о файлах объявления контента и о том, как применяются значения конфигурации, см. [Документацию файла контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).

#### Свойства

- **fill**
- **description**
- **locale**
- **location**
- **priority**
- **live**
- **schema**
- **title**
- **tags**
- **version**

---

### Конфигурация логгера

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

#### Свойства

- **mode**:
  - _Тип_: `string`
  - _По умолчанию_: `default`
  - _Описание_: Указывает режим работы логгера.
  - _Опции_: `default`, `verbose`, `disabled`
  - _Пример_: `default`
  - _Примечание_: Режим работы логгера. Режим verbose выводит больше информации и может использоваться для отладки. Режим disabled отключает логгер.

- **prefix**:
  - _Тип_: `string`
  - _По умолчанию_: `'[intlayer] '`
  - _Описание_: Префикс логгера.
  - _Пример_: `'[my custom prefix] '`
  - _Примечание_: Префикс логгера.

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

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

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

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

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

- **OpenAI** (по умолчанию)
- **Anthropic Claude**
- **Mistral AI**
- **DeepSeek**
- **Google Gemini**
- **Meta Llama**
- **Ollama**
- **OpenRouter**
- **Alibaba Cloud**
- **Fireworks**
- **Hugging Face**
- **Groq**
- **Amazon Bedrock**
- **Google AI Studio**
- **Google Vertex**
- **Together.ai**
- **ollama**

#### Свойства

- **provider**:
  - _Тип_: `string`
  - _По умолчанию_: `'openai'`
  - _Описание_: Провайдер, используемый для функций ИИ в Intlayer.
  - _Опции_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
  - _Пример_: `'anthropic'`
  - _Примечание_: Разные провайдеры могут требовать разные API-ключи и иметь различные модели ценообразования.

- **model**:
  - _Тип_: `string`
  - _По умолчанию_: Нет
  - _Описание_: Модель, используемая для функций ИИ в Intlayer.
  - _Пример_: `'gpt-4o-2024-11-20'`
  - _Примечание_: Конкретная модель зависит от провайдера.

- **temperature**:
  - _Тип_: `number`
  - _По умолчанию_: Нет
  - _Описание_: Параметр temperature контролирует случайность ответов ИИ.
  - _Пример_: `0.1`
  - _Примечание_: Более высокое значение temperature делает ИИ более креативным и менее предсказуемым.

- **apiKey**:
  - _Тип_: `string`
  - _По умолчанию_: Нет
  - _Описание_: Ваш API-ключ для выбранного провайдера.
  - _Пример_: `process.env.OPENAI_API_KEY`
  - _Примечание_: Важно: ключи API должны храниться в секрете и не должны быть доступны публично. Пожалуйста, убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.

- **applicationContext**:
  - _Тип_: `string`
  - _По умолчанию_: Нет
  - _Описание_: Предоставляет дополнительный контекст о вашем приложении для модели ИИ, помогая ей генерировать более точные и контекстно уместные переводы. Это может включать информацию о домене вашего приложения, целевой аудитории, тоне или специфической терминологии.

- **baseURL**:
  - _Тип_: `string`
  - _По умолчанию_: Нет
  - _Описание_: Базовый URL для API ИИ.
  - _Пример_: `'https://api.openai.com/v1'`
  - _Примечание_: Может использоваться для указания локальной или пользовательской конечной точки API ИИ.

- **dataSerialization**:
  - _Тип_: `'json' | 'toon'`
  - _По умолчанию_: `'json'`
  - _Описание_: Формат сериализации данных для использования в функциях ИИ Intlayer.
  - _Пример_: `'toon'`
  - _Примечание_: `json`: Стандартный, надежный; использует больше токенов. `toon`: Меньше токенов, менее стабильный, чем JSON.

### Конфигурация сборки

Настройки, которые контролируют, как Intlayer оптимизирует и собирает интернационализацию вашего приложения.

Опции сборки применяются к плагинам `@intlayer/babel` и `@intlayer/swc`.

> В режиме разработки Intlayer использует статические импорты словарей для упрощения процесса разработки.

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

#### Свойства

- **mode**:
  - _Тип_: `'auto' | 'manual'`
  - _По умолчанию_: `'auto'`
  - _Описание_: Управляет режимом сборки.
  - _Пример_: `'manual'`
  - _Примечание_: Если 'auto', сборка будет автоматически включена при сборке приложения.
  - _Примечание_: Если 'manual', сборка будет установлена только при выполнении команды сборки.
  - _Примечание_: Может использоваться для отключения сборки словарей, например, когда следует избегать выполнения в среде Node.js.

- **checkTypes**:
  - _Type_: `boolean`
  - _Default_: `false`
  - _Description_: Указывает, должна ли сборка проверять типы TypeScript и регистрировать ошибки.
  - _Note_: Это может замедлить процесс сборки.

- **optimize**:
  - _Тип_: `boolean`
  - _По умолчанию_: `process.env.NODE_ENV === 'production'`
  - _Описание_: Управляет тем, должна ли сборка быть оптимизирована.
  - _Пример_: `true`
  - _Примечание_: При включении Intlayer заменит все вызовы словарей для оптимизации разбиения на чанки. Таким образом, итоговый бандл будет импортировать только используемые словари. Все импорты останутся статическими, чтобы избежать асинхронной обработки при загрузке словарей.
  - _Примечание_: Intlayer заменит все вызовы `useIntlayer` на режим, определённый опцией `importMode`, а `getIntlayer` — на `getDictionary`.
  - _Примечание_: Эта опция зависит от плагинов `@intlayer/babel` и `@intlayer/swc`.
  - _Примечание_: Убедитесь, что все ключи объявлены статически в вызовах `useIntlayer`, например `useIntlayer('navbar')`.

- **importMode**:
  - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
  - _Тип_: `'static' | 'dynamic' | 'fetch'`
  - _По умолчанию_: `'static'`
  - _Описание_: Управляет способом импорта словарей.
  - _Пример_: `'dynamic'`
  - _Примечание_: Доступные режимы:
    - "static": Словари импортируются статически. Заменяет `useIntlayer` на `useDictionary`.
    - "dynamic": Словари импортируются динамически с использованием Suspense. Заменяет `useIntlayer` на `useDictionaryDynamic`.
- "fetch": Словари загружаются динамически с использованием API живой синхронизации. Заменяет `useIntlayer` на `useDictionaryFetch`.
- _Примечание_: Динамические импорты зависят от Suspense и могут незначительно повлиять на производительность рендеринга.
- _Примечание_: Если отключено, все локали будут загружены одновременно, даже если они не используются.
- _Примечание_: Эта опция зависит от плагинов `@intlayer/babel` и `@intlayer/swc`.
- _Примечание_: Убедитесь, что все ключи объявлены статически в вызовах `useIntlayer`, например `useIntlayer('navbar')`.
- _Примечание_: Эта опция будет игнорироваться, если `optimize` отключен.
  - _Примечание_: Если установлено значение "live", только словари, содержащие удалённый контент и помеченные флагом "live", будут преобразованы в режим live. Остальные будут импортироваться динамически в режиме "dynamic" для оптимизации количества запросов и производительности загрузки.
  - _Примечание_: Режим live использует API живой синхронизации для получения словарей. Если вызов API не удаётся, словари будут импортированы динамически в режиме "dynamic".
  - _Примечание_: Эта опция не повлияет на функции `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` и `useDictionaryDynamic`.

- **traversePattern**:
  - _Тип_: `string[]`
  - _По умолчанию_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
  - _Описание_: Шаблоны, определяющие, какие файлы должны быть обработаны во время оптимизации.
    - _Пример_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
  - _Примечание_: Используйте это, чтобы ограничить оптимизацию только релевантными файлами кода и улучшить производительность сборки.
  - _Примечание_: Этот параметр будет игнорироваться, если `optimize` отключен.
  - _Примечание_: Используйте шаблон glob.
