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 i18next do Intlayer
Dlaczego migrować z i18next 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 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
Istnieją dwie komplementarne strategie migracji z i18next do Intlayer:
Adapter compat (rekomendowany dla istniejących aplikacji) — Zainstaluj
@intlayer/i18next. Ten pakiet ujawnia dokładnie ten sam API coi18next, ale deleguje całą pracę tłumaczenia do Intlayer za kulisami. Zachowujesz istniejącei18next.t(),i18next.changeLanguage()icreateInstance()— jedyną zmianą jest ścieżka importu i inicjalizacja.Pełna migracja — Stopniowo zastępuj API
i18nextnatywnymi narzędziami Intlayer i umieszczaj zawartość w plikach.content.ts.
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ę i18next na Intlayer bez zmian kodu.
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ć zainstalowany
i18next— adapter kompatybilności używa go jakodevDependency/peerDependencydla typów TypeScript.Skonfiguruj Intlayer
Polecenie
intlayer inittworzy starterintlayer.config.ts. Zaktualizuj go, aby odpowiadał Twoim istniejącym lokalizacjom i wskaż wtyczkęsyncJSONna Twoje pliki komunikatów: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 tutaj wszystkie istniejące lokalizacje ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // pasuje do składni placeholdera i18next: {{name}} format: "i18next", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], }; export default config;sourcemapuje locale na ścieżkę pliku JSON.locationinformuje watcher Intlayera, który folder monitorować pod kątem zmian. Opcjaformat: 'i18next'zapewnia, że placeholdery takie jak{{name}}są poprawnie parsowane.Zaktualizuj aliasy bundlera (opcjonalnie)
Jeśli używasz bundlera (Vite, Webpack, esbuild), możesz wstrzyknąć alias modułu, aby
import ... from 'i18next'automatycznie rozpoznawał@intlayer/i18next. To eliminuje potrzebę ręcznej zmiany jakichkolwiek importów w Twoim codebase.Dla Vite:
vite.config.tsKopiuj kodSkopiuj kod do schowka
import { defineConfig } from "vite"; import i18nextVitePlugin from "@intlayer/i18next/plugin"; export default defineConfig({ plugins: [i18nextVitePlugin()], });i18nextVitePlugin()opakowuje pluginintlayer()zvite-intlayeri dodaje aliasi18next→@intlayer/i18nextdla Ciebie. Użycie zwykłego pluginuintlayer()zvite-intlayerkompiluje słowniki, ale nie dodaje tego aliasu — musisz wtedy ręcznie zmienić nazwy importów na@intlayer/i18next(zobacz następny krok).
To jest szybka migracja. Twoja aplikacja teraz działa na Intlayer, zachowując wszystkie i18next importy i API w niezmienionej formie.
Pełna migracja
Poniższe kroki są opcjonalne i można je wykonywać stopniowo. Odblokowują one pełny zestaw funkcji Intlayer: edytor wizualny, CMS, pliki zawartości z typami, automatyczne tłumaczenie oparte na AI i wiele więcej.
Jawne zmiana nazwy importu (opcjonalnie)
OpcjonalneJeśli wolisz uczynić zależność jawną w swoich plikach źródłowych lub jeśli nie używasz wtyczki bundlera do aliasowania importów, 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 i18next from 'i18next'import i18next from '@intlayer/i18next'import { createInstance } from 'i18next'import { createInstance } from '@intlayer/i18next'import { t } from 'i18next'import { t } from '@intlayer/i18next'Są to drop-in replacements — nie wymagane są żadne zmiany w sygnaturach funkcji, argumentach ani typach zwracanych.
Włącz automatyzację tłumaczenia opartą na AI
OpcjonalneGdy Intlayer jest już skonfigurowany, użyj jego CLI do automatycznego wypełnienia brakujących tłumaczeń:
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: "i18next", 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;Zapoznaj się z dokumentacją CLI Intlayer, aby uzyskać wszystkie dostępne opcje.
Co możesz usunąć po migracji
Po umieszczeniu adaptera kompatybilności można usunąć poniższe boilerplate'y i18next:
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Plik / pattern | Dlaczego już nie jest potrzebny |
|---|---|
i18next.init() calls | Intlayer inicjuje wszystko automatycznie; nie ma kroku ładowania w czasie wykonania. |
i18next.use(...) | Intlayer nie używa pluginów i18next, backendów ani detektorów języka. |
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 gotów do dalszych kroków, Intlayer automatycznie odkrywa wszystkie pliki .content.ts i .content.json znajdujące się wszędzie w twojej bazie kodu (domyślnie wszędzie wewnątrz ./src). Możesz umieścić plik my-component.content.ts obok swojej logiki, a Intlayer podejmie go podczas kompilacji bez dodatkowej konfiguracji — bez importów, rejestracji ani scentralizowanego pliku indeksu. To sprawia, że współlokowanie tłumaczeń jest całkowicie bezproblemowe.
Konfiguracja TypeScript
Intlayer wykorzystuje module augmentation, aby zapewnić pełną intellisense TypeScript dla twoich kluczy tłumaczeń. Upewnij się, że twój plik tsconfig.json zawiera auto-generowane typy:
Skopiuj kod do schowka
Konfiguracja Git
Dodaj wygenerowany katalog Intlayer do .gitignore:
Skopiuj kod do schowka
Idź dalej
- Visual Editor — Zarządzaj tłumaczeniami wizualnie w przeglądarce: Intlayer Visual Editor
- CMS — Externalizuj i zarządzaj zawartością zdalnie: Intlayer CMS
- VS Code Extension — Uzyskaj autouzupełnianie i wykrywanie błędów tłumaczenia w czasie rzeczywistym: Intlayer VS Code Extension
- CLI Reference — Pełna lista poleceń CLI: Intlayer CLI
