Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Aktualizacja użycia API useIntlayer w Solid do bezpośredniego dostępu do właściwości"v8.9.04.05.2026
- "Dodaj polecenie init"v7.5.930.12.2025
- "Inicjalizacja historii"v7.1.1020.11.2025
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
Przetłumacz swoją stronę SvelteKit za pomocą Intlayer | Internacjonalizacja (i18n)
Spis treści
Dlaczego Interlayer zamiast alternatyw?
W porównaniu do głównych rozwiązań, takich jak svelte-i18n czy i18next, Intlayer jest rozwiązaniem wyposażonym w zintegrowane optymalizacje, takie jak:
Pełne pokrycie SvelteKit
Intlayer jest zoptymalizowany do doskonałej współpracy z SvelteKit, oferując routing wielojęzyczny, obsługę SSR i wszystkie funkcje potrzebne do skalowania internacjonalizacji (i18n).
</Accordion>
Rozmiar bundle'a
Zamiast ładować ogromne pliki JSON na swoje strony, ładuj tylko niezbędną treść. Intlayer pomaga zmniejszyć rozmiary bundle'a i stron nawet o 50%.
</Accordion>
Łatwość konserwacji
Określanie zakresu zawartości aplikacji ułatwia konserwację aplikacji na dużą skalę. Możesz powielić lub usunąć pojedynczy folder funkcji bez obciążania psychicznego koniecznością przeglądania całej bazy kodu zawartości. Dodatkowo Inlayer jest w pełni napisany, aby zapewnić dokładność treści.
Agent AI
Wspólna lokalizacja treści zmniejsza potrzebny kontekst dzięki modelom dużego języka (LLM). Intlayer zawiera także zestaw narzędzi, taki jak CLI do sprawdzania brakujących tłumaczeńLSP, MCP i agent skills, aby praca programisty (DX) była jeszcze płynniejsza dla agentów AI.
Automatyzacja
Korzystaj z automatyzacji, aby tłumaczyć w swoim potoku CI/CD przy użyciu wybranego LLM na koszt dostawcy sztucznej inteligencji. Intlayer oferuje także kompilator do automatyzacji ekstrakcji treści, a także [platformę internetową] (/pl/doc/concept/cms), która pomaga tłumaczyć w tle.
Wydajność
Łączenie ogromnych plików JSON z komponentami może prowadzić do problemów z wydajnością i reaktywnością. Inlayer optymalizuje ładowanie treści w czasie kompilacji.
Skalowanie bez użycia dewelopera
Więcej niż tylko rozwiązanie i18n, Intlayer zapewnia samodzielny edytor wizualny i pełny CMS, który pomoże Ci zarządzać wielojęzyczną treścią w w czasie rzeczywistym, dzięki czemu współpraca z tłumaczami, copywriterami i innymi członkami zespołu będzie płynna. Treść może być przechowywana lokalnie i/lub zdalnie.
</Accordion>
Przewodnik krok po kroku: konfiguracja Intlayer w aplikacji SvelteKit
Zobacz Application Template na GitHub.
Aby rozpocząć, utwórz nowy projekt SvelteKit. Oto końcowa struktura, którą stworzymy:
Skopiuj kod do schowka
Instalacja zależności
Zainstaluj niezbędne pakiety za pomocą npm:
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
- intlayer: Podstawowy pakiet i18n.
- svelte-intlayer: Zapewnia dostawców kontekstu i sklepy dla Svelte/SvelteKit.
- vite-intlayer: Wtyczka Vite do integracji deklaracji treści z procesem budowania.
Konfiguracja projektu
Utwórz plik konfiguracyjny w katalogu głównym projektu:
intlayer.config.tsKopiuj kodSkopiuj kod do schowka
Integracja Intlayer w konfiguracji Vite
Zaktualizuj swój plik
vite.config.ts, aby uwzględnić wtyczkę Intlayer. Ta wtyczka obsługuje transpileację Twoich plików z treścią.vite.config.tsKopiuj kodSkopiuj kod do schowka
Zadeklaruj swoją treść
Utwórz pliki deklaracji treści w dowolnym miejscu w folderze
src(np.src/lib/contentlub obok swoich komponentów). Pliki te definiują tłumaczoną treść dla Twojej aplikacji, używając funkcjit()dla każdego języka.Wykorzystaj Intlayer w swoich komponentach
Teraz możesz używać funkcji
useIntlayerw dowolnym komponencie Svelte. Zwraca ona reaktywny store, który automatycznie aktualizuje się, gdy zmieni się locale. Funkcja będzie automatycznie respektować bieżący locale (zarówno podczas SSR, jak i nawigacji po stronie klienta)., aby uzyskać dostęp do jego reaktywnej wartości (np.
$content.title).src/lib/components/Component.svelteKopiuj kodSkopiuj kod do schowka
Skonfiguruj routing
OpcjonalnePoniższe kroki pokazują, jak skonfigurować routing oparty na lokalizacji w SvelteKit. Pozwala to na dodanie prefiksu lokalizacji do adresów URL (np.
/en/about,/fr/about) dla lepszego SEO i doświadczenia użytkownika.bashKopiuj kodSkopiuj kod do schowka
Obsługa wykrywania lokalizacji po stronie serwera
W SvelteKit serwer musi znać lokalizację użytkownika, aby wyrenderować odpowiednią zawartość podczas SSR. Używamy
hooks.server.tsdo wykrywania lokalizacji z URL lub ciasteczek.Utwórz lub zmodyfikuj plik
src/hooks.server.ts:src/hooks.server.tsKopiuj kodSkopiuj kod do schowka
Następnie utwórz pomocnika do pobierania lokalizacji użytkownika z eventu żądania:
src/lib/getLocale.tsKopiuj kodSkopiuj kod do schowka
getLocaleFromStoragesprawdzi lokalizację na podstawie nagłówka lub ciasteczka w zależności od Twojej konfiguracji. Zobacz Konfiguracja po więcej szczegółów.Funkcja
localeDetectorprzetworzy nagłówekAccept-Languagei zwróci najlepsze dopasowanie.Jeśli lokalizacja nie jest skonfigurowana, chcemy zwrócić błąd 404. Aby to ułatwić, możemy stworzyć funkcję
match, która sprawdzi, czy lokalizacja jest poprawna:/src/params/locale.tsKopiuj kodSkopiuj kod do schowka
Uwaga: Upewnij się, że Twój plik
src/app.d.tszawiera definicję lokalizacji:typescriptKopiuj kodSkopiuj kod do schowka
Dla pliku
+layout.sveltemożemy usunąć wszystko, aby zachować tylko statyczną zawartość, niezwiązaną z i18n:src/+layout.svelteKopiuj kodSkopiuj kod do schowka
Następnie utwórz nową stronę i layout w grupie
[[locale=locale]]:src/routes/[[locale=locale]]/+layout.tsKopiuj kodSkopiuj kod do schowka
src/routes/[[locale=locale]]/+layout.svelteKopiuj kodSkopiuj kod do schowka
src/routes/[[locale=locale]]/+page.tsKopiuj kodSkopiuj kod do schowka
src/routes/[[locale=locale]]/+page.svelteKopiuj kodSkopiuj kod do schowka
Linki z internacjonalizacją
OpcjonalneDla SEO zaleca się poprzedzanie swoich ścieżek lokalizacją (np.
/en/about,/fr/about). Ten komponent automatycznie dodaje prefiks lokalizacji do każdego linku.src/lib/components/LocalizedLink.svelteKopiuj kodSkopiuj kod do schowka
Jeśli używasz
gotoz SvelteKit, możesz zastosować tę samą logikę zgetLocalizedUrl, aby nawigować do zlokalizowanego URL:typescriptKopiuj kodSkopiuj kod do schowka
Przełącznik języka
OpcjonalneAby umożliwić użytkownikom zmianę języka, zaktualizuj URL.
src/lib/components/LanguageSwitcher.svelteKopiuj kodSkopiuj kod do schowka
Dodaj backend proxy
OpcjonalneAby dodać backend proxy do swojej aplikacji SvelteKit, możesz użyć funkcji
intlayerProxydostarczonej przez wtyczkęvite-intlayer. Ta wtyczka automatycznie wykryje najlepszy locale dla użytkownika na podstawie URL, ciasteczek i preferencji językowych przeglądarki.Od wersji Intlayer v9,
intlayerProxy()jest wbudowany bezpośrednio w wtyczkęintlayer()i domyślnie włączony za pomocą opcjirouting.enableProxy(truedomyślnie). Rejestrowanie go oddzielnie, jak pokazano poniżej, jest teraz opcjonalne — jest zachowywane dla zgodności wstecznej i dla konfiguracji, które wymagają kontroli kolejności wtyczek. Ustawrouting.enableProxy: false, aby zrezygnować. Zobacz uwagi do wydania v9.vite.config.tsKopiuj kodSkopiuj kod do schowka
Konfiguracja edytora intlayer / CMS
OpcjonalneAby skonfigurować edytor intlayer, należy postępować zgodnie z dokumentacją edytora intlayer.
Aby skonfigurować CMS intlayer, należy postępować zgodnie z dokumentacją CMS intlayer.
Aby móc wizualizować selektor edytora intlayer, musisz użyć składni komponentu w swojej zawartości intlayer.
Component.svelteKopiuj kodSkopiuj kod do schowka
Wyodrębnij zawartość swoich komponentów
OpcjonalneJeśli masz istniejącą bazę kodu, transformacja tysięcy plików może być czasochłonna.
Aby ułatwić ten proces, Intlayer proponuje kompilator / ekstraktor, aby przetransformować komponenty i wyodrębnić zawartość.
Aby go skonfigurować, możesz dodać sekcję
compilerw plikuintlayer.config.ts:intlayer.config.tsKopiuj kodSkopiuj kod do schowka
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Reszta Twojej konfiguracji compiler: { /** * Wskazuje, czy kompilator powinien być włączony. */ enabled: true, /** * Definiuje ścieżkę plików wyjściowych */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Wskazuje, czy komponenty powinny zostać zapisane po transformacji. W ten sposób kompilator można uruchomić tylko raz, aby przetransformować aplikację, a następnie go usunąć. */ saveComponents: false, /** * Prefiks klucza słownika */ dictionaryKeyPrefix: "", }, }; export default config;Uruchom ekstraktor, aby przetransformować komponenty i wyodrębnić zawartość
bashKopiuj kodSkopiuj kod do schowka
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.Zaktualizuj
vite.config.ts, aby dołączyć wtyczkęintlayerCompiler:vite.config.tsKopiuj kodSkopiuj kod do schowka
bashKopiuj kodSkopiuj kod do schowka
Konfiguracja Git
Zaleca się ignorowanie plików generowanych przez Intlayer.
Skopiuj kod do schowka
Idź dalej
- Edytor wizualny: Zintegruj Intlayer Visual Editor, aby edytować tłumaczenia bezpośrednio z interfejsu użytkownika.
- CMS: Zewnętrz zarządzanie treścią, korzystając z Intlayer CMS.
