Intlayer Конфигурационная Документация
Обзор
Конфигурационные файлы Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация, промежуточное ПО и обработка контента. Этот документ предоставляет подробное описание каждого свойства в конфигурации.
Поддержка конфигурационных файлов
Intlayer принимает форматы конфигурационных файлов JSON, JS, MJS и TS:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
Пример конфигурационного файла
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { typesDir: "content/types", }, middleware: { noPrefix: false, },};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
- По умолчанию: '*'
- Описание: 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 CMS Intlayer.
- Пример: 'https://intlayer.org'
- Примечание: URL CMS Intlayer.
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://intlayer.org/dashboard/project и создайте учетную запись.
- Пример: true
- Примечание: Важно: clientId и clientSecret должны храниться в секрете и не должны быть общедоступными. Убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.
clientSecret:
- Тип: string | undefined
- По умолчанию: undefined
- Описание: clientId и clientSecret позволяют пакетам Intlayer аутентифицироваться с бэкендом, используя аутентификацию oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://intlayer.org/dashboard/project и создайте учетную запись.
- Пример: true
- Примечание: Важно: clientId и clientSecret должны храниться в секрете и не должны быть общедоступными. Убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.
hotReload:
- Тип: boolean
- По умолчанию: false
- Описание: Указывает, должно ли приложение автоматически перезагружать конфигурации локалей при обнаружении изменений.
- Пример: true
- Примечание: Например, когда добавляется или обновляется новый словарь, приложение обновит контент для отображения на странице.
- Примечание: Поскольку горячая перезагрузка требует постоянного соединения с сервером, она доступна только для клиентов плана enterprise.
dictionaryPriorityStrategy:
- Тип: string
- По умолчанию: 'local_first'
- Описание: Стратегия приоритизации словарей в случае наличия как локальных, так и удаленных словарей. Если установлено значение 'distant_first', приложение будет отдавать приоритет удаленным словарям над локальными. Если установлено значение 'local_first', приложение будет отдавать приоритет локальным словарям над удаленными.
- Пример: 'distant_first'
Конфигурация промежуточного ПО
Настройки, которые управляют поведением промежуточного ПО, включая то, как приложение обрабатывает cookies, заголовки и префиксы 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']
- Описание: Директории, исключенные из поиска контента.
- Примечание: Эта настройка пока не используется, но планируется для будущей реализации.
Конфигурация логгера
Настройки, которые управляют логгером, включая используемый префикс.
Свойства
- mode:
- Тип: string
- По умолчанию: default
- Описание: Указывает режим работы логгера.
- Опции: default, verbose, disabled
- Пример: default
- Примечание: Режим логгера. Режим verbose будет логировать больше информации, но может быть использован для отладки. Режим disabled отключит логгер.
- prefix:
- Тип: string
- По умолчанию: '[intlayer] '
- Описание: Префикс логгера.
- Пример: '[my custom prefix] '
- Примечание: Префикс логгера.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub