Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
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
Jak uczynić komponent wielojęzycznym (i18n) za pomocą Intlayer
Ten przewodnik pokazuje minimalne kroki, aby uczynić komponent UI wielojęzycznym w dwóch popularnych konfiguracjach:
- React (Vite/SPA)
- Next.js (App Router)
Najpierw zadeklarujesz swoją treść, a następnie pobierzesz ją w swoim komponencie.
1) Zadeklaruj swoją treść (wspólne dla React i Next.js)
Utwórz plik deklaracji treści obok swojego komponentu. Pozwala to trzymać tłumaczenia blisko miejsca ich użycia oraz zapewnia bezpieczeństwo typów.
Obsługiwany jest również format JSON, jeśli wolisz pliki konfiguracyjne.
2) Pobierz swoją treść
Przypadek A, aplikacja React (Vite/SPA)
Domyślne podejście: użyj useIntlayer, aby pobrać treść po kluczu. Pozwala to utrzymać komponenty lekkie i typowane.
Renderowanie po stronie serwera lub poza providerem: użyj react-intlayer/server i przekaż jawnie locale, gdy jest to potrzebne.
Alternatywa: useDictionary może odczytać cały zadeklarowany obiekt, jeśli wolisz umieszczać strukturę w miejscu wywołania.
Przypadek B. Next.js (App Router)
Preferuj komponenty serwerowe dla bezpieczeństwa danych i wydajności. Używaj useIntlayer z next-intlayer/server w plikach serwerowych oraz useIntlayer z next-intlayer w komponentach klienckich.
Wskazówka: Dla metadanych strony i SEO możesz również pobierać zawartość za pomocą getIntlayer oraz generować wielojęzyczne adresy URL za pomocą getMultilingualUrls.
Dlaczego podejście komponentowe Intlayer jest najlepsze
- Kolokacja: Deklaracje treści znajdują się blisko komponentów, co zmniejsza rozbieżności i poprawia ponowne wykorzystanie w systemach projektowych.
- Bezpieczeństwo typów: Klucze i struktury są silnie typowane; brakujące tłumaczenia ujawniają się podczas kompilacji, a nie w czasie wykonywania.
- Server-first: Działa natywnie w komponentach serwerowych dla lepszego bezpieczeństwa i wydajności; hooki klienta pozostają ergonomiczne.
- Tree-shaking: Do bundla trafia tylko zawartość używana przez komponent, co utrzymuje rozmiar bundle'a mały w dużych aplikacjach.
- DX i narzędzia: Wbudowane middleware, pomocniki SEO oraz opcjonalny Visual Editor/tłumaczenia AI usprawniają codzienną pracę.
Zobacz porównania i wzorce w przeglądzie skupionym na Next.js: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Powiązane przewodniki i odniesienia
- Konfiguracja React (Vite): https://intlayer.org/doc/environment/vite-and-react
- React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
- TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
- Konfiguracja Next.js: https://intlayer.org/doc/environment/nextjs
- Dlaczego Intlayer vs. next-intl vs. next-i18next - https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Te strony zawierają pełną konfigurację, providery, routing oraz pomocniki SEO.