Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Обновление опций компилятора, добавление поддержки FilePathPattern"v8.2.009.03.2026
- "Обновление опций компилятора"v8.1.725.02.2026
- "Выпуск Compiler"v7.3.127.11.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Intlayer Compiler | Автоматизированное извлечение контента для i18n
Что такое Intlayer Compiler?
Intlayer Compiler - это мощный инструмент, разработанный для автоматизации процесса интернационализации (i18n) в ваших приложениях. Он сканирует ваш исходный код (JSX, TSX, Vue, Svelte) на предмет объявлений контента, извлекает их и автоматически генерирует необходимые файлы словарей. Это позволяет вам хранить контент вместе с компонентами, в то время как Intlayer управляет и синхронизирует ваши словари.
Почему стоит использовать Intlayer Compiler?
- Автоматизация: устраняет необходимость вручную копировать и вставлять контент в словари.
- Скорость: оптимизированное извлечение контента обеспечивает быструю сборку.
- Опыт разработчика: храните объявления контента прямо там, где они используются, что улучшает поддерживаемость.
- Живые обновления: поддержка Hot Module Replacement (HMR) для мгновенной обратной связи во время разработки.
См. блог-пост Compiler vs. Declarative i18n для более глубокого сравнения.
Почему не использовать Intlayer Compiler?
Хотя компилятор предлагает отличный опыт "работает из коробки", он также вводит некоторые компромиссы, о которых вы должны знать:
- Эвристическая неоднозначность: Компилятор должен угадывать, что является пользовательским контентом, а что - логикой приложения (например,
className="active", коды состояния, ID продуктов). В сложных кодовых базах это может привести к ложным срабатываниям или пропущенным строкам, которые требуют ручных аннотаций и исключений. - Только статическое извлечение: Извлечение на основе компилятора полагается на статический анализ. Строки, которые существуют только во время выполнения (коды ошибок API, поля CMS и т.д.), не могут быть обнаружены или переведены компилятором в одиночку, поэтому вам все еще нужна дополнительная стратегия i18n времени выполнения.
Для более глубокого архитектурного сравнения см. блог-пост Compiler vs. Declarative i18n.
В качестве альтернативы, для автоматизации процесса i18n при сохранении полного контроля над контентом, Intlayer также предоставляет команду автоматического извлечения intlayer extract (см. документацию CLI) или команду Intlayer: extract content to Dictionary из расширения Intlayer VS Code (см. документацию расширения VS Code).
Использование
Vite
Для приложений на базе Vite (React, Vue, Svelte и др.) самый простой способ использовать компилятор - через плагин vite-intlayer.
Установка
Копировать код в буфер обмена
Конфигурация
Обновите ваш vite.config.ts, чтобы включить плагин intlayerCompiler:
Копировать код в буфер обмена
See complete tutorial: Intlayer Compiler with Vite+React
Поддержка фреймворков
Плагин Vite автоматически обнаруживает и обрабатывает различные типы файлов:
- React / JSX / TSX: Обрабатывается нативно.
- Vue: Требуется
@intlayer/vue-compiler. - Svelte: Требуется
@intlayer/svelte-compiler.
Убедитесь, что установлен соответствующий пакет компилятора для вашего фреймворка:
Копировать код в буфер обмена
Пользовательская конфигурация
Чтобы настроить поведение компилятора, вы можете обновить файл intlayer.config.ts в корне вашего проекта.
Копировать код в буфер обмена
Справочник по конфигурации компилятора
Следующие свойства могут быть настроены в блоке compiler вашего файла intlayer.config.ts:
enabled:
- Тип:
boolean | 'build-only' - По умолчанию:
true - Описание: Указывает, должен ли компилятор быть включен.
- Тип:
dictionaryKeyPrefix:
- Тип:
string - По умолчанию:
'' - Описание: Префикс для извлеченных ключей словаря.
- Тип:
transformPattern:
- Тип:
string | string[] - По умолчанию:
['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**'] - Описание: (Устарело: вместо этого используйте
build.traversePattern) Шаблоны для обхода кода для оптимизации.
- Тип:
excludePattern:
- Тип:
string | string[] - По умолчанию:
['**/node_modules/**'] - Описание: (Устарело: вместо этого используйте
build.traversePattern) Шаблоны для исключения из оптимизации.
- Тип:
output:
- Тип:
FilePathPattern - По умолчанию:
({ key }) => 'compiler/${key}.content.json' - Описание: Определяет путь к выходным файлам. Заменяет
outputDir. Поддерживает динамические переменные, такие как{{locale}},{{key}},{{fileName}},{{extension}},{{format}},{{dirPath}},{{componentFileName}},{{componentExtension}}, и{{componentFormat}}. Может быть задано как строка в формате'my/{{var}}/path'или как функция. - Примечание: Пути
./**/*разрешаются относительно компонента. Пути/**/*разрешаются относительноbaseDirIntlayer. - Примечание: Если язык определен в пути, словари будут генерироваться для каждого языка.
- Пример:
output: ({ locale, key }) => 'compiler/${locale}/${key}.json'
- Тип:
noMetadata:
- Тип:
boolean - По умолчанию:
false - Описание: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого). Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
- Примечание: Полезно при использовании с плагином
loadJSON. - Пример:
Если
true:json { "key": "value" }Еслиfalse:json { "key": "value", "content": { "key": "value" } }
- Тип:
saveComponents:
- Тип:
boolean - По умолчанию:
false - Описание: Указывает, должны ли компоненты сохраняться после трансформации.
- Тип:
Заполнить недостающие переводы
Intlayer предоставляет инструмент CLI, который поможет вам заполнить недостающие переводы. Вы можете использовать команду intlayer для тестирования и заполнения недостающих переводов в вашем коде.
Копировать код в буфер обмена
Копировать код в буфер обмена
Извлечение
Intlayer предоставляет инструмент CLI для извлечения контента из вашего кода. Вы можете использовать команду intlayer extract, чтобы извлечь контент из вашего кода.
Копировать код в буфер обмена
Для получения более подробной информации обратитесь к документации CLI