Intlayer Конфигурационная Документация

    Обзор

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


    Поддержка файлов конфигурации

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

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Пример файла конфигурации

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.RUSSIAN],  },  content: {    typesDir: "content/types",  },  middleware: {    noPrefix: false,  },};export default config;

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

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


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

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

    Свойства

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

      • Тип: string
      • По умолчанию: required_only
      • Описание: Обеспечить строгую реализацию интернационализированного контента с использованием TypeScript.
      • Примечание: Если установлено на "strict", функция перевода t потребует от каждой объявленной локали быть определенной. Если одна локаль отсутствует или если локаль не объявлена в вашей конфигурации, это вызовет ошибку.
      • Примечание: Если установлено на "required_only", функция перевода t потребует от каждой объявленной локали быть определенной. Если одна локаль отсутствует, это вызовет предупреждение. Но будет принято, если локаль не объявленная в вашей конфигурации, но существует.
      • Примечание: Если установлено на "loose", функция перевода t примет любую существующую локаль.
    • defaultLocale:

      • Тип: string
      • По умолчанию: 'ru'
      • Описание: Локаль по умолчанию, используемая в качестве резервной, если запрашиваемая локаль не найдена.
      • Пример: 'ru'
      • Примечание: Это используется для определения локали, когда ни одна не указана в URL, cookie или заголовке.

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

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

    Свойства

    • backendURL:

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

      • Тип: boolean
      • По умолчанию: true
      • Описание: Указывает, активен ли редактор.
      • Пример: true
      • Примечание: Может быть установлен с помощью NODE_ENV или другой специальной переменной окружения.
    • clientId:

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

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

    Конфигурация промежуточного ПО

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

    Свойства

    • headerName:
      • Тип: string
      • По умолчанию: 'x-intlayer-locale'
      • Описание: Имя HTTP-заголовка, используемого для определения локали.
      • Пример: 'x-custom-locale'
      • Примечание: Это полезно для определения локали на основе API.
    • cookieName:
      • Тип: string
      • По умолчанию: 'intlayer-locale'
      • Описание: Имя cookie, используемого для хранения локали.
      • Пример: 'custom-locale'
      • Примечание: Используется для сохранения локали между сессиями.
    • prefixDefault:
      • Тип: boolean
      • По умолчанию: true
      • Описание: Нужен ли префикс локали по умолчанию в URL.
      • Пример: false
      • Примечание: Если false, URL для локали по умолчанию не будет иметь префикса локали.
    • basePath:
      • Тип: string
      • По умолчанию: ''
      • Описание: Базовый путь для URL приложения.
      • Пример: '/my-app'
      • Примечание: Это влияет на то, как строятся URL для приложения.
    • serverSetCookie:
      • Тип: string
      • По умолчанию: 'always'
      • Описание: Правило для установки cookie локали на сервере.
      • Опции: 'always', 'never'
      • Пример: 'never'
      • Примечание: Управляет тем, устанавливается ли cookie локали при каждом запросе или никогда.
    • noPrefix:
      • Тип: boolean
      • По умолчанию: false
      • Описание: Следует ли опустить префикс локали из URL.
      • Пример: true
      • Примечание: Если true, URL не будут содержать информацию о локали.

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

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

    Свойства

    • 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.
    • dictionaryOutput:
      • Тип: string[]
      • По умолчанию: ['intlayer']
      • Описание: Тип выходного словаря для использования, например, 'intlayer' или 'i18next'.
    • contentDirName:
      • Тип: string
      • По умолчанию: 'src'
      • Описание: Имя директории, где хранится контент.
      • Пример: 'data', 'content', 'locales'
      • Примечание: Если не на уровне базовой директории, обновите contentDir.
    • contentDir:

      • Тип: string
      • ПроизводнаяОт: 'baseDir' / 'contentDirName'
      • Описание: Путь к директории, где хранится контент.
    • resultDirName:
      • Тип: string
      • По умолчанию: '.intlayer'
      • Описание: Имя директории, где хранятся результаты.
      • Пример: 'outputOFIntlayer'
      • Примечание: Если эта директория не на базовом уровне, обновите resultDir.
    • resultDir:

      • Тип: string
      • ПроизводнаяОт: 'baseDir' / 'resultDirName'
      • Описание: Путь к директории для хранения промежуточных или выходных результатов.
    • moduleAugmentationDirName:

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

      • Тип: string
      • ПроизводнаяОт: 'baseDir' / 'moduleAugmentationDirName'
      • Описание: Путь для расширения модуля и дополнительных определений типов.
    • dictionariesDirName:
      • Тип: string
      • По умолчанию: 'dictionary'
      • Описание: Директория для хранения словарей.
      • Пример: 'translations'
      • Примечание: Если не на уровне директории результатов, обновите dictionariesDir.
    • dictionariesDir:

      • Тип: string
      • ПроизводнаяОт: 'resultDir' / 'dictionariesDirName'
      • Описание: Директория для хранения локализационных словарей.
    • i18nextResourcesDirName:
      • Тип: string
      • По умолчанию: 'i18next_dictionary'
      • Описание: Директория для хранения i18n словарей.
      • Пример: 'translations'
      • Примечание: Если не на уровне директории результатов, обновите i18nextResourcesDir.
      • Примечание: Убедитесь, что выходные данные i18n словарей включают i18next для построения словарей для i18next.
    • i18nextResourcesDir:

      • Тип: string
      • ПроизводнаяОт: 'resultDir' / 'i18nextResourcesDirName'
      • Описание: Директория для хранения i18n словарей.
      • Примечание: Убедитесь, что эта директория настроена для типа выходных данных i18next.
    • typeDirName:

      • Тип: string
      • По умолчанию: 'types'
      • Описание: Директория для хранения типов словарей.
      • Пример: 'intlayer-types'
      • Примечание: Если не на уровне директории результатов, обновите typesDir.
    • typesDir:

      • Тип: string
      • ПроизводнаяОт: 'resultDir' / 'typeDirName'
      • Описание: Директория для хранения типов словарей.
    • mainDirName:
      • Тип: string
      • По умолчанию: 'main'
      • Описание: Директория для хранения основных файлов.
      • Пример: 'intlayer-main'
      • Примечание: Если не на уровне директории результатов, обновите mainDir.
    • mainDir:
      • Тип: string
      • ПроизводнаяОт: 'resultDir' / 'mainDirName'
      • Описание: Директория, где хранятся основные файлы приложения.
    • excludedPath:
      • Тип: string[]
      • По умолчанию: ['node_modules']
      • Описание: Директории, исключенные из поиска контента.
      • Примечание: Эта настройка еще не используется, но запланирована для будущей реализации.

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

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

    Свойства

    • enabled:
      • Тип: boolean
      • По умолчанию: true
      • Описание: Указывает, включен ли логгер.
      • Пример: true
      • Примечание: Может быть установлен с помощью NODE_ENV или другой специальной переменной окружения.
    • level:
      • Тип: 'info' | 'warn' | 'debug' | 'log'
      • По умолчанию: 'log'
      • Описание: Уровень логгера.
      • Пример: 'info'
      • Примечание: Уровень логгера. Он может быть 'log', 'info', 'warn', 'error' или 'debug'.
    • prefix:
      • Тип: string
      • По умолчанию: '[intlayer] '
      • Описание: Префикс логгера.
      • Пример: '[мой пользовательский префикс] '
      • Примечание: Префикс логгера.

    Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.

    Ссылка на документацию GitHub