Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Оновлення опцій компілятора, додана підтримка FilePathPattern"v8.2.009.03.2026
- "Оновлення опцій компілятора"v8.1.725.02.2026
- "Випуск компілятора"v7.3.127.11.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Intlayer Compiler | Автоматизоване витягування контенту для i18n
Що таке Intlayer Compiler?
Intlayer Compiler - це потужний інструмент, розроблений для автоматизації процесу інтернаціоналізації (i18n) у ваших додатках. Він сканує ваш вихідний код (JSX, TSX, Vue, Svelte) на наявність декларацій контенту, витягує їх і автоматично генерує необхідні файли словників. Це дозволяє зберігати контент поруч із компонентами, тоді як Intlayer займається керуванням та синхронізацією ваших словників.
Чому використовувати Intlayer Compiler?
Автоматизація: Усуває необхідність ручного копіювання вмісту в словники.
Speed: Оптимізована екстракція контенту, що забезпечує швидкість вашого процесу збірки.
- Автоматизація: Усуває ручне копіювання та вставляння контенту у словники.
- Швидкість: Оптимізоване витягування контенту забезпечує швидкість процесу збірки.
- Досвід розробника: Тримайте декларації контенту там, де вони використовуються, що покращує підтримуваність.
Оновлення в реальному часі: Підтримує Hot Module Replacement (HMR) для миттєвого зворотного зв'язку під час розробки.
Live Updates: Підтримує Hot Module Replacement (HMR) для миттєвого зворотного зв'язку під час розробки.
Див. статтю в блозі Compiler vs. Declarative i18n для глибшого порівняння.
Чому не використовувати Intlayer Compiler?
Хоча компілятор пропонує чудовий досвід «just works», він також вносить певні компроміси, про які варто знати:
- Евристична неоднозначність: Компілятор має вгадувати, що є контентом для користувача, а що - логікою додатка (наприклад,
className="active", коди статусів, ID продуктів). У складних кодових базах це може призводити до хибних спрацьовувань або пропущених рядків, що вимагатиме ручних анотацій та винятків. Тільки статична екстракція: Екстракція на основі компілятора покладається на статичний аналіз. Рядки, які існують лише під час виконання (коди помилок API, поля CMS тощо), не можуть бути виявлені або перекладені лише компілятором, тому вам усе одно знадобиться додаткова стратегія i18n під час виконання.
Лише статична екстракція: Екстракція на основі компілятора спирається на статичний аналіз. Рядки, які існують лише під час виконання (коди помилок API, поля CMS тощо), не можуть бути виявлені або перекладені компілятором самостійно, тому вам все ще потрібна додаткова стратегія runtime i18n.
Для глибшого архітектурного порівняння див. статтю в блозі Compiler vs. Declarative i18n.
Як альтернативу, щоб автоматизувати ваш процес i18n і зберегти повний контроль над контентом, Intlayer також пропонує команду автоматичної екстракції intlayer extract (див. документацію CLI), або команду Intlayer: extract content to Dictionary з розширення Intlayer для VS Code (див. документацію розширення VS Code).
Використання
The quickest way to wire the compiler in is the interactive setup: runnpx intlayer init --interactiveand select Compiler. On Vite there is nothing to configure — the compiler is plugged in directly through theintlayerCompiler()plugin. On Next.js the command scaffolds thebabel.config.jsshown below. The non-interactiveintlayer initleaves the compiler setup untouched.
Vite
Для додатків на базі Vite (React, Vue, Svelte тощо) найпростіший спосіб використовувати компілятор - через плагін vite-intlayer.
Встановлення
Скопіюйте код у буфер обміну
Налаштування
Оновіть ваш vite.config.ts, щоб включити плагін intlayerCompiler:
Скопіюйте код у буфер обміну
ПлагінintlayerCompiler()все ще експортується для розширених налаштувань. Реєстрація його разом зintlayer()є безпечною — компілятор дублює себе та запускається лише один раз.
See complete tutorial: Intlayer Compiler with Vite+React
Підтримка фреймворків
Плагін Vite автоматично визначає та обробляє різні типи файлів:
React / JSX / TSX: Обробляється нативно.
Vue: Requires
@intlayer/vue-compiler.- React / JSX / TSX: Обробляються нативно.
- Vue: Потребує
@intlayer/vue-compiler. - Svelte: Потребує
@intlayer/svelte-compiler.
Переконайтеся, що встановили відповідний пакет компілятора для вашого фреймворку:
Скопіюйте код у буфер обміну
Next.js (Babel)
Для Next.js або інших додатків на базі Webpack, що використовують Babel, ви можете налаштувати компілятор за допомогою плагіна @intlayer/babel.
Встановлення
Скопіюйте код у буфер обміну
Налаштування
Оновіть ваш babel.config.js (або babel.config.json), щоб додати плагін для екстракції. Ми надаємо хелпер getExtractPluginOptions, який автоматично завантажує вашу конфігурацію Intlayer.
Скопіюйте код у буфер обміну
Ця конфігурація гарантує, що контент, оголошений у ваших компонентах, буде автоматично витягнутий і використаний для генерації словників під час процесу збірки.
See complete tutorial: Intlayer Compiler with Next.js
Користувацька конфігурація
Щоб налаштувати поведінку компілятора, ви можете оновити файл 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
