Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Init history"v9.0.05.06.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimIf 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
Migracja z @nuxtjs/i18n do Intlayer
Dlaczego migrować z @nuxtjs/i18n do Intlayer?
Zamiast ładować ogromne pliki JSON do stron, ładuj tylko niezbędną zawartość. Intlayer pomaga zmniejszyć bundle i rozmiary stron nawet o 50%.
Ograniczanie zawartości aplikacji ułatwia utrzymanie dużych aplikacji. Możesz zduplikować lub usunąć jeden folder funkcji bez konieczności przeglądania całej bazy kodu zawartości. Ponadto Intlayer jest w pełni wpisany aby zapewnić dokładność zawartości.
Intlayer jest również rozwiązaniem z najaktywniejszym rozwojem w ekosystemie i18n — problemy są naprawiane szybko, nowe adaptery frameworku pojawiają się regularnie, a podstawowy API jest stale ulepsszany na podstawie opinii z produkcji.
Umieszczanie zawartości razem zmniejsza kontekst potrzebny przez Duże Modele Języka (LLM). Intlayer zawiera również pakiet narzędzi, takich jak CLI do testowania brakujących tłumaczeń, LSP, MCP i umiejętności agenta, aby jeszcze bardziej gładka była doświadczenie dla programistów (DX) dla agentów AI.
Użyj automatyzacji do tłumaczenia w pipeline CI/CD korzystając z wybranego LLM za koszt dostawcy AI. Intlayer oferuje również kompilator do automatycznego wyodrębniania zawartości, a także platforma internetowa aby pomóc tłumaczyć w tle.
Łączenie dużych plików JSON z komponentami może prowadzić do problemów z wydajnością i reaktywnością. Intlayer optymalizuje ładowanie zawartości w czasie budowania.
Więcej niż tylko rozwiązanie i18n, Intlayer zapewnia samodzielnie hostowany edytor wizualny i pełny CMS aby pomóc ci zarządzać multilingual zawartością w rzeczywistym czasie, czyniąc współpracę z tłumaczami, copywriterami i innymi członkami zespołu bezproblemową. Zawartość może być przechowywana lokalnie i/lub zdalnie.
Strategie migracji
Ponieważ @nuxtjs/i18n jest zasilany przez vue-i18n za kulisami, istnieją dwie komplementarne strategie migracji do Intlayer:
Adapter compat (rekomendowany dla istniejących aplikacji) — Zainstaluj
@intlayer/vue-i18ninuxt-intlayer. To ujawnia dokładnie ten sam API covue-i18n, ale deleguje całą pracę tłumaczenia do Intlayer za kulisami. Zachowujesz istniejące$t,useI18n()i routing Nuxt — jedyną zmianą jest inicjalizacja.Pełna migracja — Stopniowo zastępuj API
@nuxtjs/i18nnatywnymi hakami Intlayer (useIntlayer) i umieszczaj zawartość w plikach.content.tsobok komponentów.
Ten przewodnik obejmuje Strategię 1 najpierw (adapter compat drop-in), a następnie przechodzi przez opcjonalną pełną migrację.
Spis treści
Szybka migracja
Poniższe kroki to minimum wymagane, aby uruchomić istniejącą aplikację Nuxt w Intlayer bez żadnych zmian kodu w komponentach.
Instalacja zależności
Zainstaluj główne pakiety Intlayer i adapter kompatybilności:
bashKopiuj kodSkopiuj kod do schowka
npx intlayer-cli init --interactiveflaga
--interactivejest opcjonalna. Użyjintlayer-cli initjeśli jesteś agentem AI.Ta komenda automatycznie wykryje Twoje środowisko i zainstaluje wymagane pakiety. Na przykład:
bashKopiuj kodSkopiuj kod do schowka
npm install intlayer vue-intlayer nuxt-intlayer @intlayer/vue-i18n @intlayer/sync-json-pluginMożesz bezpiecznie utrzymać
@nuxtjs/i18nzainstalowany podczas migracji, chociaż usuniemy go z konfiguracji Nuxt wkrótce.Konfiguracja Intlayer
Komenda
intlayer inittworzy starterintlayer.config.ts. Zaktualizuj go, aby pasował do twoich istniejących lokalizacji i wskaż pluginsyncJSONna pliki wiadomości:intlayer.config.tsKopiuj kodSkopiuj kod do schowka
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Dodaj wszystkie istniejące lokalizacje tutaj ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // pasuje do składni placeholdera vue-i18n: {name} format: "icu", source: ({ locale }) => `./locales/${locale}.json`, location: "locales", }), ], }; export default config;sourcemapuje lokalizację na ścieżkę pliku JSON.locationmówi obserwatorowi Intlayer, który folder monitorować pod kątem zmian. Opcjaformat: 'icu'zapewnia, że placeholdery są poprawnie analizowane dlavue-i18n.Aktualizacja konfiguracji Nuxt
Zastąp moduł
@nuxtjs/i18nmodułemnuxt-intlayerw plikunuxt.config.ts. Plugin Intlayer automatycznie wstrzykuje aliasy modułów, co oznacza, że istniejące wywołaniaimport { useI18n } from 'vue-i18n'są transparentnie przekierowywane do@intlayer/vue-i18n.nuxt.config.tsKopiuj kodSkopiuj kod do schowka
export default defineNuxtConfig({ // Usuń '@nuxtjs/i18n' modules: ["nuxt-intlayer"], });Nie musisz już definiować obiektów konfiguracji i18n Nuxt. Intlayer kompiluje wszystkie słowniki w czasie budowania, obsługując wykrywanie lokalizacji, routing i ładowanie słownika bezproblemowo.
To wszystko dla szybkiej migracji. Twoja aplikacja Nuxt działa teraz na Intlayer, zachowując każdy $t i useI18n() bez zmian.
Pełna migracja
Poniższe kroki są opcjonalne i można je wykonywać przyrostowo. Odblokują one pełny zestaw funkcji Intlayer: edytor wizualny, CMS, typed content files, tłumaczenie wspierane sztuczną inteligencją i wiele więcej.
Explicit import renaming (optional)
OpcjonalnePluginy Intlayer już obsługują aliasing na poziomie bundlera. Jeśli wolisz uczynić zależność jawną w plikach źródłowych, możesz ręcznie zmienić nazwy importów:
Pokaż całą zawartość tabeliOtwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
Before After import { useI18n } from 'vue-i18n'import { useI18n } from '@intlayer/vue-i18n'To są drop-in replacements — nie są wymagane żadne zmiany sygnatur funkcji, argumentów ani typów zwracanych.
Enable AI-Powered Translation Automation
OpcjonalneGdy Intlayer jest już skonfigurowany, użyj jego CLI do automatycznego uzupełniania brakujących tłumaczeń:
bashKopiuj kodSkopiuj kod do schowka
# Test dla brakujących tłumaczeń (dodaj do CI)npx intlayer test# Uzupełnij brakujące tłumaczenia za pomocą AInpx intlayer fillDodaj konfigurację AI do
intlayer.config.ts:intlayer.config.tsKopiuj kodSkopiuj kod do schowka
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", // domyślnie // model: "gpt-4o-mini", // domyślnie }, }; export default config;Zobacz dokumentację CLI Intlayer dla wszystkich dostępnych opcji.
Co możesz usunąć po migracji
Gdy adapter kompatybilności jest już na miejscu, poniższy boilerplate można usunąć:
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| File / pattern | Why it's no longer needed |
|---|---|
i18n configurations in nuxt.config.ts | Intlayer obsługuje routing, ładowanie słowników i domyślne lokalizacje wewnętrznie. |
@nuxtjs/i18n from package.json | Całkowicie zastąpione przez nuxt-intlayer. |
JSON language bundles (locales/*.json) | Pakiety JSON są potrzebne tylko jeśli nadal używasz pluginu syncJSON. Po migracji do plików .content.ts możesz usunąć folder JSON. |
Gdy będziesz gotowy do pójścia dalej, Intlayer automatycznie odkrywa wszystkie pliki .content.ts i .content.json w dowolnym miejscu w Twoim codebase (domyślnie w dowolnym miejscu wewnątrz ./src). Możesz umieścić plik my-component.content.ts obok pliku MyComponent.vue, a Intlayer zarejestruje go w czasie budowania bez dodatkowej konfiguracji — bez importów, bez rejestracji, bez scentralizowanego pliku indeksu. To sprawia, że współlokalizacja tłumaczeń ze stronami i komponentami jest całkowicie bezproblemowa.
Konfiguruj TypeScript
Intlayer używa module augmentation, aby zapewnić pełny TypeScript intellisense dla twoich kluczy tłumaczeń. Upewnij się, że twój tsconfig.json zawiera auto-generowane typy:
Skopiuj kod do schowka
{ // ... Twoje istniejące konfiguracje TypeScript "include": [ // ... Twoje istniejące konfiguracje TypeScript ".intlayer/**/*.ts", // Uwzględnij auto-generowane typy ],}Szybka migracja
Następujące kroki są minimalne wymagane aby uruchomić istniejącą aplikację Nuxt na Intlayer bez zmian kodu w komponentach.
Zainstaluj zależności
Idź dalej
- Visual Editor — Zarządzaj tłumaczeniami wizualnie w przeglądarce: Intlayer Visual Editor
- CMS — Eksternalizuj i zarządzaj zawartością zdalnie: Intlayer CMS
- VS Code Extension — Uzyskaj autouzupełnianie i detekcję błędów tłumaczenia w czasie rzeczywistym: Intlayer VS Code Extension
- CLI Reference — Pełna lista poleceń CLI: Intlayer CLI
- Intlayer with Nuxt — Pełny przewodnik konfiguracji dla Nuxt: intlayerwithnuxt.md
- Intlayer with Vue — Pełny przewodnik konfiguracji dla Vue: intlayerwithvite+vue.md