Autor:
    Data utworzenia:2026-06-05Ostatnia aktualizacja:2026-06-05

    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 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

    Istnieją dwie komplementarne strategie migracji z i18next do Intlayer:

    1. Adapter compat (rekomendowany dla istniejących aplikacji) — Zainstaluj @intlayer/i18next. Ten pakiet ujawnia dokładnie ten sam API co i18next, ale deleguje całą pracę tłumaczenia do Intlayer za kulisami. Zachowujesz istniejące i18next.t(), i18next.changeLanguage() i createInstance() — jedyną zmianą jest ścieżka importu i inicjalizacja.

    2. Pełna migracja — Stopniowo zastępuj API i18next natywnymi 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.

    1. Zainstaluj zależności

    2. Zainstaluj pakiety rdzenia Intlayer i adapter compat:

      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.

      1. Jawne zmiana nazwy importu (opcjonalnie)

        Opcjonalne

        Jeś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:

        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.

      2. Włącz automatyzację tłumaczenia opartą na AI

        Opcjonalne

        Gdy Intlayer jest już skonfigurowany, użyj jego CLI do automatycznego wypełnienia brakujących tłumaczeń:

        bash
        # Test brakujących tłumaczeń (dodaj do CI)npx intlayer test# Wypełnij brakujące tłumaczenia za pomocą AInpx intlayer fill

        Dodaj konfigurację AI do 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: "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:

      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:

      tsconfig.json
      {  // ... Twoje istniejące konfiguracje TypeScript  "include": [    // ... Twoje istniejące konfiguracje TypeScript    ".intlayer/**/*.ts", // Załącz auto-generowane typy  ],}

      Konfiguracja Git

      Dodaj wygenerowany katalog Intlayer do .gitignore:

      .gitignore
      # Ignoruj pliki wygenerowane przez Intlayer.intlayer

      Idź dalej