Получайте уведомления о предстоящих релизах Intlayer

    Содержимое этой страницы было переведено с помощью ИИ.

    Смотреть последнюю версию оригинального контента на английском

    Как работает Intlayer

    Обзор

    Основная идея Intlayer заключается в использовании управления контентом на уровне компонентов. Идея Intlayer состоит в том, чтобы позволить вам объявлять ваш контент в любом месте вашего кода, например, в той же директории, что и ваш компонент.

    bash
    .└── Components    └── MyComponent        ├── index.content.cjs        └── index.mjs

    Для этого роль Intlayer заключается в том, чтобы находить все ваши файлы с объявлением контента во всех различных форматах, присутствующих в вашем проекте, а затем генерировать из них словарь.

    Таким образом, есть два основных этапа:

    • Этап сборки
    • Этап интерпретации

    Этап сборки словарей

    Этап сборки может быть выполнен тремя способами:

    • с использованием CLI с помощью npx intlayer build
    • с использованием расширения vscode
    • с использованием плагинов приложения, таких как пакет vite-intlayer, или их эквивалентов для Next.js. При использовании одного из этих плагинов Intlayer автоматически создаст ваши словари при запуске (dev) или сборке (prod) вашего приложения.
    1. Объявление файлов контента

      • Файлы контента могут быть определены в различных форматах, таких как TypeScript, ECMAScript, CommonJS или JSON.
      • Файлы контента могут быть определены в любом месте проекта, что позволяет улучшить обслуживание и масштабируемость. Важно соблюдать соглашения о расширениях файлов для файлов контента. По умолчанию это расширение *.content.{js|cjs|mjs|ts|tsx|json}, но его можно изменить в файле конфигурации.
    2. Генерация словарей

      • Словари генерируются из файлов контента. По умолчанию словари Intlayer генерируются в директории .intlayer/dictionaries проекта.
      • Эти словари генерируются в различных форматах, чтобы удовлетворить все потребности и оптимизировать производительность приложения.
    3. Генерация типов словарей

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

    • Типы словарей генерируются из словарей Intlayer. По умолчанию типы словарей Intlayer генерируются в директории .intlayer/types проекта.

    • Расширение модулей Intlayer — это функция TypeScript, которая позволяет вам определять дополнительные типы для Intlayer. Это упрощает процесс разработки, предлагая доступные или обязательные аргументы. Среди сгенерированных типов добавляются типы словарей Intlayer или даже типы конфигурации языка в файл types/intlayer.d.ts и используются другими пакетами. Для этого необходимо, чтобы файл tsconfig.json был настроен на включение директории types проекта.

    Этап интерпретации словарей

    С помощью Intlayer вы получите доступ к вашему контенту в приложении, используя хук useIntlayer.

    tsx
    const MyComponent = () => {  const content = useIntlayer("my-component");  return <div>{content.title}</div>;};

    Этот хук будет управлять обнаружением локали за вас и возвращать контент для текущей локали. Используя этот хук, вы также сможете интерпретировать markdown, управлять множественным числом и многое другое.

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

    Удаленный контент

    Intlayer позволяет вам объявлять контент локально, а затем экспортировать его в CMS, чтобы ваша нетехническая команда могла редактировать его.

    Таким образом, вы сможете отправлять и получать контент из CMS в ваше приложение, аналогично тому, как вы работаете с Git для вашего кода.

    Если настроено в вашем проекте, Intlayer автоматически будет управлять загрузкой контента из CMS при запуске приложения (dev) / сборке (prod).

    Визуальный редактор

    Intlayer также предоставляет визуальный редактор, позволяющий редактировать ваш контент визуально. Этот визуальный редактор доступен в отдельном пакете intlayer-editor.

    визуальный редактор

    Оптимизация сборки приложения

    Для оптимизации размера сборки вашего приложения Intlayer предоставляет два плагина для оптимизации сборки: плагины @intlayer/babel и @intlayer/swc.

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

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

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

    @intlayer/babel доступен по умолчанию в пакете vite-intlayer,

    @intlayer/swc не установлен по умолчанию в пакете next-intlayer, так как плагины SWC все еще являются экспериментальными в Next.js.

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

    Пакеты

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

    пакеты intlayer

    intlayer

    Пакет intlayer используется в приложениях для объявления контента в файлах контента.

    react-intlayer

    Пакет react-intlayer используется для интерпретации словарей Intlayer и их использования в React-приложениях.

    next-intlayer

    Пакет next-intlayer используется как слой поверх react-intlayer, чтобы сделать словари Intlayer пригодными для использования в приложениях Next.js. Он интегрирует основные функции для работы Intlayer в среде Next.js, такие как промежуточное ПО для перевода, маршрутизация или конфигурация файла next.config.js.

    vue-intlayer

    Пакет vue-intlayer используется для интерпретации словарей Intlayer и их использования в приложениях Vue.

    svelte-intlayer (в разработке)

    Пакет svelte-intlayer используется для интерпретации словарей Intlayer и их использования в приложениях Svelte.

    solid-intlayer (в разработке)

    Пакет solid-intlayer используется для интерпретации словарей Intlayer и их использования в приложениях Solid.js.

    preact-intlayer

    Пакет preact-intlayer используется для интерпретации словарей Intlayer и их использования в приложениях Preact.

    angular-intlayer (в разработке)

    Пакет angular-intlayer используется для интерпретации словарей Intlayer и их использования в приложениях Angular.

    express-intlayer

    Пакет express-intlayer используется для работы с Intlayer на серверной стороне Express.js.

    react-native-intlayer

    Пакет react-native-intlayer предоставляет инструменты, которые интегрируют плагины для работы Intlayer с Metro bundler.

    lynx-intlayer

    Пакет lynx-intlayer предоставляет инструменты, которые интегрируют плагины для работы Intlayer с Lynx bundler.

    vite-intlayer

    Включает плагин Vite для интеграции Intlayer с Vite bundler, а также промежуточное ПО для определения предпочтительной локали пользователя, управления cookies и обработки перенаправления URL.

    react-scripts-intlayer

    intlayer-editor

    Пакет intlayer-editor используется для обеспечения работы визуального редактора. Этот пакет, опциональный, может быть установлен в приложениях и будет использоваться пакетом react-intlayer. Он состоит из двух частей: сервера и клиента.

    Клиент содержит элементы пользовательского интерфейса, которые будут использоваться react-intlayer.

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

    intlayer-cli

    Пакет intlayer-cli может быть использован для генерации словарей с помощью команды npx intlayer dictionaries build. Если intlayer уже установлен, CLI автоматически устанавливается, и этот пакет не требуется.

    @intlayer/core

    Пакет @intlayer/core является основным пакетом Intlayer. Он содержит функции управления переводами и словарями. @intlayer/core является мультиплатформенным и используется другими пакетами для интерпретации словарей.

    @intlayer/config

    Пакет @intlayer/config используется для настройки параметров Intlayer, таких как доступные языки, параметры промежуточного программного обеспечения Next.js или настройки интегрированного редактора.

    @intlayer/webpack

    Пакет @intlayer/webpack используется для предоставления конфигурации Webpack, чтобы приложение на основе Webpack работало с Intlayer. Пакет также предоставляет плагин для добавления в существующее приложение Webpack.

    @intlayer/cli

    Пакет @intlayer/cli является пакетом NPM, который используется для объявления скриптов, связанных с интерфейсами командной строки Intlayer. Он обеспечивает единообразие всех команд CLI Intlayer. Этот пакет, в частности, используется пакетами intlayer-cli и intlayer.

    @intlayer/dictionaries-entry & @intlayer/unmerged-dictionaries-entry & @intlayer/dynamic-dictionaries-entry

    Пакеты @intlayer/dictionaries-entry, @intlayer/unmerged-dictionaries-entry и @intlayer/dynamic-dictionaries-entry возвращают путь входа словарей Intlayer. Поскольку поиск файловой системы из браузера невозможен, использование сборщиков, таких как Webpack или Rollup, для получения пути входа словарей невозможно. Эти пакеты разработаны для алиасов, что позволяет оптимизировать сборку с использованием различных сборщиков, таких как Vite, Webpack и Turbopack.

    @intlayer/chokidar

    Пакет @intlayer/chokidar используется для мониторинга файлов контента и регенерации измененного словаря при каждом изменении.

    @intlayer/editor

    Пакет @intlayer/editor предоставляет утилиты, связанные с редактором словарей. Он включает API для интерфейса приложения с редактором Intlayer и утилиты для работы со словарями. Этот пакет является кроссплатформенным.

    @intlayer/editor-react

    Пакет @intlayer/editor-react предоставляет состояния, контексты, хуки и компоненты для интерфейса React-приложения с редактором Intlayer.

    @intlayer/babel

    Пакет @intlayer/babel предоставляет инструменты, которые оптимизируют сборку словарей для приложений на основе Vite и Webpack.

    @intlayer/swc (WIP)

    Пакет @intlayer/swc предоставляет инструменты, которые оптимизируют сборку словарей для приложений Next.js.

    @intlayer/api

    Пакет @intlayer/api является SDK API для взаимодействия с бэкендом.

    @intlayer/design-system

    Пакет @intlayer/design-system используется для совместного использования элементов дизайна между CMS и визуальным редактором.

    @intlayer/backend

    Пакет @intlayer/backend экспортирует типы бэкенда и в будущем предложит бэкенд как автономный пакет.

    Общайтесь с нашей умной документацией

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

    Ссылка на документацию GitHub
    Получайте уведомления о предстоящих релизах Intlayer