Документация по настройке 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.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
export default config;
// intlayer.config.cjs
const { Locales } = require("intlayer");
/** @type {import('intlayer').IntlayerConfig} */
const config = {
internationalization: {
locales: [Locales.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
module.exports = config;
// .intlayerrc
{
"internationalization": {
"locales": ["en"],
},
"content": {
"typesDir": "content/types",
},
"middleware": {
"noPrefix": false,
},
}
Справочник по конфигурации
Следующие разделы описывают различные настройки конфигурации, доступные для Intlayer.
Конфигурация интернационализации
Определяет настройки, связанные с интернационализацией, включая доступные локали и локаль по умолчанию для приложения.
Свойства
- locales:
- Тип: string[]
- По умолчанию: ['en']
- Описание: Список поддерживаемых локалей в приложении.
- Пример: ['en', 'fr', 'es']
strictMode:
- Тип: string
- По умолчанию: required_only
- Описание: Обеспечивает строгую реализацию интернационализированного контента с использованием typescript.
- Заметка: Если установлено "strict", функция перевода t потребует, чтобы каждая объявленная локаль была определена. Если одна локаль отсутствует или если локаль не объявлена в вашей конфигурации, будет выброшена ошибка.
- Заметка: Если установлено "required_only", функция перевода t потребует, чтобы каждая объявленная локаль была определена. Если одна локаль отсутствует, будет выброшено предупреждение. Но будет принято, если локаль не объявлена в вашей конфигурации, но существует.
- Заметка: Если установлено "loose", функция перевода t примет любую существующую локаль.
defaultLocale:
- Тип: string
- По умолчанию: 'en'
- Описание: Локаль по умолчанию, используемая как резервная, если запрашиваемая локаль не найдена.
- Пример: 'en'
- Заметка: Это используется для определения локали, когда ни одна не указана в 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. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://back.intlayer.org/dashboard/project и создайте аккаунт.
- Пример: true
- Заметка: Важно: clientId и clientSecret должны храниться в секрете и не должны быть общедоступными. Убедитесь, что они хранятся в безопасном месте, таком как переменные окружения.
clientSecret:
- Тип: string | undefined
- По умолчанию: undefined
- Описание: clientId и clientSecret позволяют пакетам intlayer аутентифицироваться с сервером с использованием аутентификации oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://back.intlayer.org/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'
- Описание: Каталог для хранения словарей локализации.
- i18nDictionariesDirName:
- Тип: string
- По умолчанию: 'i18n_dictionary'
- Описание: Каталог для хранения i18n словарей.
- Пример: 'translations'
- Заметка: Если не на уровне каталога результатов, обновите i18nDictionariesDir.
- Заметка: Убедитесь, что вывод i18n словарей включает i18next для построения словарей для i18next.
i18nDictionariesDir:
- Тип: string
- ПроизводноеОт: 'resultDir' / 'i18nDictionariesDirName'
- Описание: Каталог для хранения 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']
- Описание: Каталоги, исключенные из поиска контента.
- Заметка: Эта настройка еще не используется, но запланирована для будущей реализации.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub