Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Init history"v9.0.005.06.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Міграція з @nuxtjs/i18n на Intlayer
Чому мігрувати з @nuxtjs/i18n на Intlayer?
Замість завантаження масивних JSON файлів на ваші сторінки завантажуйте лише необхідний вміст. Intlayer допомагає зменшити розмір вашого bundle та сторінок на 50%.
Розділення вмісту вашого додатка полегшує обслуговування для масштабних додатків. Ви можете дублювати або видаляти папку однієї функції без необхідності аналізувати всю вашу базу кодування вмісту. Крім того, Intlayer повністю типізований, щоб забезпечити точність вашого вмісту.
Intlayer також є рішенням з найактивнішим розробленням в екосистемі i18n — проблеми вирішуються швидко, нові адаптери фреймворків регулярно додаються, а основний API постійно вдосконалюється на основі реальних відгомілів з виробництва.
Розташування вмісту поблизу зменшує контекст, необхідний для великих мовних моделей (LLMs). Intlayer також поставляється з набором інструментів, таких як CLI для перевірки відсутніх перекладів, LSP, MCP та навички агента, щоб зробити досвід розробника (DX) ще гладшим для AI агентів.
Використовуйте автоматизацію для перекладу в вашому CI/CD конвеєрі, використовуючи LLM на ваш вибір за вартістю вашого постачальника AI. Intlayer також пропонує компілятор для автоматизації вилучення вмісту, а також веб-платформу для допомоги перекладу на фоні.
Підключення масивних JSON файлів до компонентів може привести до проблем з продуктивністю та реактивністю. Intlayer оптимізує завантаження вашого вмісту під час збірки.
Більш ніж просто рішення для i18n, Intlayer надає самостійно розміщений редактор з візуалізацією та повноцінну CMS для допомоги у керуванні вашим багатомовним вмістом у реальному часі, що робить співпрацю з перекладачами, копірайтерами та іншими членами команди безперешкодною. Вміст можна зберігати локально та/або віддалено.
Стратегії міграції
Оскільки @nuxtjs/i18n використовує vue-i18n під капотом, існує дві взаємодоповнюючі стратегії для міграції на Intlayer:
Compat adapter (рекомендується для існуючих додатків) — Встановіть
@intlayer/vue-i18nтаnuxt-intlayer. Це надає той самий API, що йvue-i18n, але делегує всю роботу перекладу на Intlayer під капотом. Ви зберігаєте свої існуючі$t,useI18n()та маршрутизацію Nuxt без змін — єдина зміна — це ініціалізація.Повна міграція — Поступово замініть API
@nuxtjs/i18nна нативні хуки Intlayer (useIntlayer) та розмістіть вміст у файлах.content.tsпоряд із ваших компонентами.
Цей посібник охоплює Стратегію 1 спочатку (drop-in compat adapter), а потім розглядає необов'язкову повну міграцію.
Зміст
Швидка міграція
Наступні кроки — це мінімум, необхідний для запуску вашого існуючого додатка Nuxt на Intlayer без змін коду в компонентах.
Встановлення залежностей
Встановіть основні пакети Intlayer та адаптер сумісності:
bashКопіювати кодСкопіюйте код у буфер обміну
npx intlayer-cli init --interactiveпрапор
--interactiveнеобов'язковий. Використовуйтеintlayer-cli init, якщо ви — агент AI.Ця команда визначить ваше середовище та встановить необхідні пакети. Приклад:
bashКопіювати кодСкопіюйте код у буфер обміну
npm install intlayer vue-intlayer nuxt-intlayer @intlayer/vue-i18n @intlayer/sync-json-pluginВи можете безпечно залишити встановленим
@nuxtjs/i18nпід час міграції, але ви видалите його з конфігурації Nuxt незабаром.Налаштування Intlayer
Команда
intlayer initстворює стартовий файлintlayer.config.ts. Оновіть його, щоб він відповідав вашим існуючим локалям, і вкажіть плагінуsyncJSONна ваші файли повідомлень:intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Додайте всі ваші існуючі локалі тут ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // відповідає синтаксису заповнювачів vue-i18n: {name} format: "icu", source: ({ locale }) => `./locales/${locale}.json`, location: "locales", }), ], }; export default config;sourceвідображає локаль на шлях її JSON-файлу.locationповідомляє спостерігачу Intlayer, яку папку моніторити на предмет змін. Опціяformat: 'icu'гарантує, що заповнювачі правильно розпарсюються дляvue-i18n.Оновлення конфігурації Nuxt
Замініть модуль
@nuxtjs/i18nнаnuxt-intlayerу вашомуnuxt.config.ts. Плагін Intlayer автоматично вводить псевдоніми модулів, тому ваші існуючі викликиimport { useI18n } from 'vue-i18n'прозоро перенаправляються на@intlayer/vue-i18n.nuxt.config.tsКопіювати кодСкопіюйте код у буфер обміну
export default defineNuxtConfig({ // Видаліть '@nuxtjs/i18n' modules: ["nuxt-intlayer"], });Вам більше не потрібно визначати об'єкти конфігурації Nuxt i18n. Intlayer компілює всі словники під час build time, безпроблемно обробляючи виявлення локалей, маршрутизацію та завантаження словників.
На цьому швидка міграція завершена. Ваш додаток Nuxt тепер працює на Intlayer, зберігаючи всі $t та useI18n() без змін.
Повна міграція
Наведені нижче кроки є необов'язковими та можуть виконуватися поступово. Вони розблоковують повний набір функцій Intlayer: візуальний редактор, CMS, типізовані файли вмісту, переклад на базі штучного інтелекту та інше.
Явне перейменування імпортів (необов'язково)
Необов'язковоПлагіни Intlayer вже обробляють aliasing на рівні bundler. Якщо ви бажаєте зробити залежність явною у ваших вихідних файлах, ви можете перейменувати імпорти вручну:
Показати весь вміст таблиціВідкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
Раніше Після import { useI18n } from 'vue-i18n'import { useI18n } from '@intlayer/vue-i18n'Це drop-in replacements — не потрібні жодні зміни до сигнатур викликів, аргументів або типів повернення.
Включення автоматизації перекладу на базі штучного інтелекту
Необов'язковоПісля того, як Intlayer налаштовано, використовуйте його CLI для автоматичного заповнення відсутніх перекладів:
bashКопіювати кодСкопіюйте код у буфер обміну
# Тест на відсутні перекладу (додати до CI)npx intlayer test# Заповнити відсутні перекладу за допомогою AInpx intlayer fillДодайте конфігурацію AI до
intlayer.config.ts:intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ format: "icu", source: ({ locale }) => `./locales/${locale}.json`, location: "locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // за замовчуванням // model: "gpt-4o-mini", // за замовчуванням }, }; export default config;Див. документацію CLI Intlayer для всіх доступних опцій.
Що можна видалити після міграції
Після встановлення compat adapter можна видалити наступний boilerplate:
Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
| File / pattern | Чому це більше не потрібно |
|---|---|
i18n configurations in nuxt.config.ts | Intlayer обробляє маршрутизацію, завантаження словників і стандартні locales внутрішньо. |
@nuxtjs/i18n from package.json | Повністю замінено на nuxt-intlayer. |
JSON language bundles (locales/*.json) | JSON bundles потрібні лише якщо ви все ще використовуєте плагін syncJSON. Після міграції на файли .content.ts можна видалити папку JSON. |
Коли ви будете готові йти далі, Intlayer автоматично виявляє всі файли .content.ts і .content.json будь-де в вашому codebase (за замовчуванням, будь-де всередині ./src). Ви можете розмістити файл my-component.content.ts прямо поруч з вашим MyComponent.vue, і Intlayer виявить його під час збірки без будь-якої додаткової конфігурації — не потрібні імпорти, реєстрація чи централізований файл індексу. Це робить co-locating перекладів зі сторінками та компонентами абсолютно безпроблемним.
Налаштування TypeScript
Intlayer використовує module augmentation для надання повної TypeScript intellisense для ваших ключів перекладу. Переконайтеся, що ваш tsconfig.json включає автоматично згенеровані типи:
Скопіюйте код у буфер обміну
{ // ... Ваші існуючі конфігурації TypeScript "include": [ // ... Ваші існуючі конфігурації TypeScript ".intlayer/**/*.ts", // Включіть автоматично згенеровані типи ],}Конфігурація Git
Додайте згенерований Intlayer директорій до вашого .gitignore:
Скопіюйте код у буфер обміну
# Ігнорувати файли, генеровані Intlayer.intlayerЙдіть далі
- Visual Editor — Керуйте перекладами візуально у вашому браузері: Intlayer Visual Editor
- CMS — Зберігайте та керуйте контентом віддалено: Intlayer CMS
- VS Code Extension — Отримайте автодоповнення та виявлення помилок перекладу в реальному часі: Intlayer VS Code Extension
- CLI Reference — Повний список команд CLI: Intlayer CLI
- Intlayer with Nuxt — Повний посібник налаштування для Nuxt: intlayerwithnuxt.md
- Intlayer with Vue — Повний посібник налаштування для Vue: intlayerwithvite+vue.md