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 angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Migracja z vue-i18n do Intlayer
Dlaczego migrować z vue-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 agent skills, aby doświadczenie programisty (DX) było jeszcze płynniejsze 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 platformę internetową, która pomaga 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ć wielojęzyczną 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.
Aby zrozumieć, skąd wzięły się te biblioteki, przeczytaj historię i18n w JavaScript.
Strategie migracji
Istnieją dwie komplementarne strategie migracji z vue-i18n do Intlayer:
Adapter compat (rekomendowany dla istniejących aplikacji): Zainstaluj
@intlayer/vue-i18n(dla komponentów Vue). Ten pakiet ujawnia dokładnie ten sam API covue-i18n, ale deleguje całą pracę tłumaczenia do Intlayer za kulisami. Zachowujesz istniejące$t,useI18n()i<i18n-t>, jedyną zmianą jest ścieżka importu i inicjalizacja.Pełna migracja: Stopniowo zastępuj API
vue-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
Następujące kroki są minimalne wymagane aby uruchomić istniejącą aplikację vue-i18n na Intlayer bez zmian kodu w komponentach.
Zainstaluj zależności
Zainstaluj pakiety rdzenia Intlayer i adapter compat:
bashKopiuj kodSkopiuj kod do schowka
flaga
--interactivejest opcjonalna. Użyjintlayer-cli init, jeśli jesteś agentem AI.To polecenie wykryje Twoje środowisko i zainstaluje wymagane pakiety. Na przykład:
bashKopiuj kodSkopiuj kod do schowka
Możesz zachować
vue-i18nzainstalowany, adapter kompatybilności używa go jakodevDependency/peerDependencydla typów TypeScript.Konfiguruj Intlayer
Polecenie
intlayer inittworzy plik startowyintlayer.config.ts. Zaktualizuj go, aby pasował do twoich istniejących lokalizacji i wskaż wtyczkęsyncJSONna twoje 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 lokale tutaj ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // pasuje do składni placeholdera vue-i18n: {name} format: "vue-i18n", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], }; export default config;sourcemapuje ustawienie regionalne na ścieżkę pliku JSON.locationinformuje obserwatora Intlayer, które foldery monitorować w poszukiwaniu zmian. Opcjaformat: 'vue-i18n'zapewnia, że symbole zastępcze są analizowane poprawnie dlavue-i18n.Dodaj wtyczkę Intlayer do swojego bundlera
Zawiń istniejącą konfigurację bundlera za pomocą wtyczki compat. Komponuje core'owy plugin Intlayer, podłącza obserwację zawartości i, co krytyczne, wstrzykuje alias modułu tak aby istniejące wywołania
import … from 'vue-i18n'były transparentnie przekierowywane do@intlayer/vue-i18nw czasie budowania. Nie są wymagane żadne zmiany plików źródłowych.Dla Vite:
vite.config.tsKopiuj kodSkopiuj kod do schowka
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { vueI18nVitePlugin } from "@intlayer/vue-i18n/plugin"; export default defineConfig({ plugins: [vue(), vueI18nVitePlugin()], });vueI18nVitePlugin()otacza pluginintlayer()zvite-intlayeri dodaje aliasvue-i18n. Używając zwykłego pluginuintlayer()zvite-intlayer, kompiluje słowniki, ale nie dodaje aliasu, wtedy musisz ręcznie zmienić nazwy importów na@intlayer/vue-i18n(patrz Krok 4).Dla Nuxt:
Jeśli używasz
@nuxtjs/i18n(integracja Nuxt), zainstalujnuxt-intlayeri dodaj go do swojegonuxt.config.ts:bashKopiuj kodSkopiuj kod do schowka
nuxt.config.tsKopiuj kodSkopiuj kod do schowka
export default defineNuxtConfig({ modules: ["nuxt-intlayer"], // Możesz bezpiecznie usunąć @nuxtjs/i18n ze swoich modułów });Nie potrzebujesz już
createI18n()ani ręcznego inicjowania providera. Intlayer kompiluje wszystkie słowniki w czasie buildowania, więc nie ma kroku ładowania w runtime. Aliasowany provider obsługuje inicjalizację za Ciebie.
To koniec szybkiej migracji. Twoja aplikacja działa teraz na Intlayer, zachowując każdy import vue-i18n i API bez zmian.
Wpisane klucze tłumaczeń, automatycznie. Po skompilowaniu słowników przez Intlayer,
useI18njest typizowany względem rzeczywistej zawartości, gdy przekażesz opcjęnamespace. Klucze są autocompleted w twoim IDE, a nieprawidłowe ścieżki powodują błędy TypeScript w czasie budowania, nie jest wymagana żadna dodatkowa konfiguracja.tsKopiuj kodSkopiuj kod do schowka
Pełna migracja
Poniższe kroki są opcjonalne i mogą być wykonywane stopniowo. Odblokowują pełny zestaw funkcji Intlayer: edytor wizualny, CMS, pliki zawartości z typami, tłumaczenie wspierane przez AI i wiele więcej.
Jawne zmianę nazwy importu (opcjonalnie)
OpcjonalneWtyczki Intlayer już obsługują aliasing na poziomie bundlera. Jeśli wolisz uczynić zależność jawną w plikach źródłowych, możesz zmienić nazwy importów ręcznie:
Pokaż całą zawartość tabeliOtwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
Przed Po import { useI18n } from 'vue-i18n'import { useI18n } from '@intlayer/vue-i18n'import { createI18n } from 'vue-i18n'import { createI18n } from '@intlayer/vue-i18n'Są to zamiany plug-and-play, nie są wymagane żadne zmiany w sygnaturach funkcji, argumentach ani typach zwracanych.
Włącz automatyczne tłumaczenie wspierane przez AI
OpcjonalnePo połączeniu Intlayer, użyj jego CLI, aby automatycznie uzupełnić brakujące tłumaczenia:
bashKopiuj kodSkopiuj kod do schowka
Dodaj 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: "vue-i18n", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // domyślnie // model: "gpt-4o-mini", // domyślnie }, }; export default config;Aby uzyskać wszystkie dostępne opcje, zapoznaj się z dokumentacją CLI Intlayer.
Co możesz usunąć po migracji
Gdy adaptery kompatybilności będą na miejscu, możesz usunąć następujący boilerplate vue-i18n:
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| File / pattern | Dlaczego nie jest już potrzebny |
|---|---|
createI18n() calls | Provider Intlayer inicjalizuje wszystko automatycznie; nie ma kroku ładowania w czasie wykonywania. |
Vue plugin registration (app.use(i18n)) | Plugin Intlayer obsługuje iniekcję i bootstrapping pod maską. |
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 pójść dalej, Intlayer automatycznie odkrywa wszystkie pliki .content.ts i .content.json gdziekolwiek w twoim codebase (domyślnie gdziekolwiek wewnątrz ./src). Możesz umieścić plik my-component.content.ts bezpośrednio obok twojego MyComponent.vue, a Intlayer podejmie go w czasie budowania bez dodatkowej konfiguracji, bez importów, bez rejestracji, bez scentralizowanego pliku indeksu. To sprawia, że co-lokowanie tłumaczeń ze stronami i komponentami jest całkowicie bezproblemowe.
Konfiguruj TypeScript
Intlayer używa module augmentation, aby zapewnić pełną intellisense TypeScript dla twoich kluczy tłumaczeń. Upewnij się, że twój tsconfig.json zawiera auto-generowane typy:
Skopiuj kod do schowka
Konfiguracja Git
Dodaj wygenerowany przez Intlayer katalog do .gitignore:
Skopiuj kod do schowka
