Как работает Intlayer
Обзор
Роль Intlayer заключается в интерпретации файлов декларации содержимого JavaScript в словари.
Для этого Intlayer проходит через несколько этапов:
Декларация файлов содержимого
- Файлы содержимого могут определяться в различных форматах, таких как TypeScript, ECMAScript, CommonJS или JSON.
- Файлы содержимого могут быть определены в любом месте проекта, что позволяет обеспечить лучшую поддержку и масштабируемость. Важно соблюдать соглашения об именах файлов для файлов содержимого. Это расширение по умолчанию *.content.{js|cjs|mjs|ts|tsx|json}, но его можно изменить в конфигурационном файле.
Генерация словарей
- Словари генерируются из файлов содержимого. По умолчанию словари Intlayer создаются в директории .intlayer/dictionary проекта.
- Могут быть сгенерированы две категории словарей: словари Intlayer и словари i18n (beta).
Генерация типов словарей
- Типы словарей генерируются из словарей Intlayer. По умолчанию типы словарей Intlayer создаются в директории .intlayer/types проекта.
Генерация дополнений модуля Intlayer
- Дополнения модуля Intlayer module augmentation — это функция TypeScript, которая позволяет определять дополнительные типы для Intlayer. Это облегчает опыт разработки, предлагая доступные аргументы или необходимые аргументы. Среди сгенерированных типов типы словарей Intlayer или даже типы конфигурации языка добавляются в файл types/intlayer.d.ts и используются другими пакетами. Для этого необходимо, чтобы файл tsconfig.json был настроен для включения директории .intlayer/types проекта.
Мониторинг файлов содержимого
- Файлы содержимого отслеживаются, чтобы быть сгенерированными каждый раз, когда они изменяются.
Интерпретация словарей
- Словари в конечном итоге интерпретируются для использования в приложениях.
Пакеты
Intlayer состоит из нескольких пакетов, каждый из которых выполняет определенную роль в процессе перевода. Вот графическое представление структуры этого пакета:
intlayer
Пакет intlayer используется в приложениях для объявления содержимого в файлах содержимого.
react-intlayer
Пакет react-intlayer используется для интерпретации словарей intlayer и их использования в приложениях React.
next-intlayer
Пакет next-intlayer используется как слой поверх react-intlayer, чтобы сделать словари intlayer доступными в приложениях Next.js. Он интегрирует основные функции, чтобы сделать Intlayer работающим в среде Next.js, такие как промежуточное программное обеспечение для перевода, маршрутизация или конфигурация файла next.config.js.
intlayer-editor
Пакет intlayer-editor используется для возможности использования визуального редактора. Этот пакет, необязательный, можно установить в приложения, и он будет использоваться пакетом react-intlayer. Он состоит из двух частей: сервера и клиента.
Клиент содержит элементы пользовательского интерфейса, которые будут использоваться пакетом react-intlayer.
Сервер, основанный на Express, используется для получения визуальных запросов редактора и управления или изменения файлов содержимого.
intlayer-cli
Пакет intlayer-cli можно использовать для генерации словарей с помощью команды npx intlayer build. Если intlayer уже установлен, cli автоматически устанавливается, и этот пакет не требуется.
@intlayer/core
Пакет @intlayer/core является основным пакетом Intlayer. Он содержит функции управления переводом и словарями. @intlayer/core мультиплатформен и используется другими пакетами для выполнения интерпретации словарей.
@intlayer/config
Пакет @intlayer/config используется для настройки параметров Intlayer, таких как доступные языки, параметры промежуточного программного обеспечения Next.js или настройки интегрированного редактора.
@intlayer/webpack
Пакет @intlayer/webpack используется для добавления плагинов компиляции в Next.js и React.
@intlayer/cli
Пакет @intlayer/cli используется для обеспечения единообразия всех команд CLI intlayer.
@intlayer/dictionaries-entry
Пакет @intlayer/dictionaries-entry — это пакет, который только возвращает путь входа словарей intlayer. Поскольку поиск файловой системы невозможен из браузера, использование сборщиков, таких как Webpack или Rollup, для получения пути входа словарей невозможно. Этот пакет предназначен для алиасов.
@intlayer/chokidar
Пакет @intlayer/chokidar используется для мониторинга файлов содержимого и регенерации измененного словаря при каждом изменении.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub