Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Ta dokumentacja jest nieaktualna, wersja bazowa została zaktualizowana w 29 sierpnia 2026.
Przejdź do angielskiej wersji dokumentuHistoria wersji
- "Aktualizacja użycia API useIntlayer w Solid do bezpośredniego dostępu do właściwości"v8.9.04.05.2026
- "Inicjalizacja historii"v8.4.1031.03.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
Przetłumacz swoją stronę Vanilla JS używając Intlayer | Międzynarodowienie (i18n)
Spis treści
Dlaczego Interlayer zamiast alternatyw?
W porównaniu do głównych rozwiązań, takich jak i18next czy i18n.js, Intlayer jest rozwiązaniem wyposażonym w zintegrowane optymalizacje, takie jak:
Intlayer jest zoptymalizowany do doskonałej współpracy z Vanilla JavaScript, oferując zarządzanie treścią niezależnie od platformy, obsługę TypeScript i wszystkie funkcje potrzebne do skalowania internacjonalizacji (i18n).
Zamiast ładować ogromne pliki JSON na swoje strony, ładuj tylko niezbędną treść. Intlayer pomaga zmniejszyć rozmiary bundle'a i stron nawet o 50%.
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.
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.
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.
Łą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.
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.
Przewodnik krok po kroku konfiguracji Intlayer w aplikacji Vanilla JS
Instalacja zależności
Zainstaluj niezbędne pakiety za pomocą npm:
bashKopiuj kodSkopiuj kod do schowka
intlayer Główny pakiet dostarczający narzędzia do międzynarodowienia w zakresie zarządzania konfiguracją, tłumaczenia, deklarowania treści, transpilacji oraz poleceń CLI.
vanilla-intlayer Pakiet integrujący Intlayer z czystymi aplikacjami JavaScript / TypeScript. Dostarcza singleton pub/sub (
IntlayerClient) oraz pomocników opartych na callbackach (useIntlayer,useLocaleitp.), dzięki czemu każda część Twojej aplikacji może reagować na zmiany języka bez zależności od frameworka UI.
Eksport bundlingu z CLI
intlayer standalonegeneruje zoptymalizowaną kompilację dzięki usuwaniu nieużywanych kodów (tree-shaking) nieużywanych pakietów, lokalizacji i nieistotnej logiki (takiej jak przekierowania lub prefiksy), specyficznych dla Twojej konfiguracji.Konfiguracja Twojego projektu
Architektura
W tej architekturze rdzeń
intlayerzapewnia interfejsy API JavaScript do deklarowania i używania słowników w standardowych środowiskach JavaScript lub TypeScript bez frameworka frontendowego.bashKopiuj kodSkopiuj kod do schowka
Konfiguracja
Utwórz plik konfiguracyjny, aby skonfigurować języki Twojej aplikacji:
intlayer.config.tsKopiuj kodSkopiuj kod do schowka
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Twoje inne języki ], defaultLocale: Locales.ENGLISH, }, }; export default config;Za pomocą tego pliku konfiguracyjnego możesz ustawić zlokalizowane adresy URL, przekierowania middleware, nazwy ciasteczek, lokalizację i rozszerzenie deklaracji treści, wyłączyć logi Intlayer w konsoli i wiele więcej. Pełną listę dostępnych parametrów znajdziesz w dokumentacji konfiguracji.
Zaimportuj pakiet do HTML
Po wygenerowaniu pakietu
intlayer.js, możesz go zaimportować do swojego pliku HTML:index.htmlKopiuj kodSkopiuj kod do schowka
Pakiet udostępnia
IntlayeriVanillaIntlayerjako obiekty globalne nawindow.Uruchom Intlayer w punkcie wejścia
W swoim
src/main.jswywołajinstallIntlayer()zanim jakakolwiek treść zostanie wyrenderowana, aby globalny singleton języka był gotowy.src/main.jsKopiuj kodSkopiuj kod do schowka
Jeśli chcesz również używać renderera markdown, wywołaj
installIntlayerMarkdown():src/main.jsKopiuj kodSkopiuj kod do schowka
Zadeklaruj swoje treści
Twórz i zarządzaj swoimi deklaracjami treści, aby przechowywać tłumaczenia:
src/app.content.tsKopiuj kodSkopiuj kod do schowka
import { insert, t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "Vite + Vanilla", viteLogoLabel: t({ en: "Vite Logo", fr: "Logo Vite", es: "Logo Vite", }), count: insert( t({ en: "count is {{count}}", fr: "le compte est {{count}}", es: "el recuento es {{count}}", }) ), readTheDocs: t({ en: "Click on the Vite logo to learn more", fr: "Cliquez sur le logo Vite pour en savoir plus", es: "Kliknij na logo Vite, aby dowiedzieć się więcej", }), }, } satisfies Dictionary; export default appContent;Deklaracje treści mogą być definiowane w dowolnym miejscu aplikacji, o ile znajdują się w katalogu
contentDir(domyślnie./src) i pasują do rozszerzenia pliku deklaracji treści (domyślnie.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Więcej szczegółów znajdziesz w dokumentacji deklaracji treści.
Użyj Intlayer w swoim JavaScript
Obiekt
window.VanillaIntlayerdostarcza pomocników API:useIntlayer(key, locale?)zwraca przetłumaczoną treść dla danego klucza.src/main.jsKopiuj kodSkopiuj kod do schowka
Uzyskuj dostęp do wartości liści jako ciągów znaków, owijając je w
String(), co wywołuje metodętoString()węzła i zwraca przetłumaczony tekst.Gdy potrzebujesz wartości dla natywnego atrybutu HTML (np.
alt,aria-label), użyj bezpośrednio.value:javascriptKopiuj kodSkopiuj kod do schowka
Zmień język swojej treści
OpcjonalneAby zmienić język treści, użyj funkcji
setLocaleudostępnianej przezuseLocale.src/locale-switcher.jsKopiuj kodSkopiuj kod do schowka
Przełącz atrybuty języka i kierunku HTML
OpcjonalneZaktualizuj atrybuty
langidirtagu<html>, aby pasowały do bieżącego języka dla dostępności i SEO.src/main.jsKopiuj kodSkopiuj kod do schowka
Leniwe ładowanie słowników na język
OpcjonalneJeśli chcesz leniwie ładować słowniki dla każdego języka, możesz użyć
useDictionaryDynamic. Jest to przydatne, jeśli nie chcesz pakować wszystkich tłumaczeń w początkowym plikuintlayer.js.src/app.jsKopiuj kodSkopiuj kod do schowka
Uwaga:
useDictionaryDynamicwymaga, aby słowniki były dostępne jako oddzielne pliki ESM. Podejście to jest zazwyczaj stosowane, jeśli masz serwer WWW serwujący słowniki.
Konfiguracja TypeScript
Upewnij się, że Twoja konfiguracja TypeScript zawiera automatycznie generowane typy.
Skopiuj kod do schowka
Rozszerzenie VS Code
Aby poprawić wrażenia z programowania z Intlayer, możesz zainstalować oficjalne Rozszerzenie Intlayer dla VS Code.
Zainstaluj z VS Code Marketplace
To rozszerzenie zapewnia:
- Autouzupełnianie dla kluczy tłumaczeń.
- Wykrywanie błędów w czasie rzeczywistym dla brakujących tłumaczeń.
- Podgląd wewnątrz kodu przetłumaczonej treści.
- Szybkie akcje, aby łatwo tworzyć i aktualizować tłumaczenia.
Więcej szczegółów na temat korzystania z rozszerzenia znajdziesz w dokumentacji rozszerzenia Intlayer dla VS Code.
Idź dalej
Aby pójść dalej, możesz zaimplementować edytor wizualny lub wyeksportować swoje treści za pomocą CMS.
Często Zadawane Pytania
Tak. Temu poświęcony jest ten przewodnik. Importujesz paczkę vanilla-intlayer bezpośrednio w swoim pliku HTML, jak pokazuje krok 3, inicjalizujesz ją i odczytujesz treść za pomocą useIntlayer lub getIntlayer.
W znacznie mniejszym stopniu niż tradycyjny katalog runtime, ponieważ strona nigdy nie pobiera języka, którego nie renderuje. Treść jest pobierana w zoptymalizowanych formatach, redukując wagę strony w porównaniu z alternatywami. Zobacz optymalizację bundle'a.
W znacznej mierze tak. Postępuj zgodnie z przewodnikiem migracji z i18next, aby przenieść treść. Możesz także zachować obecne API za pośrednictwem adapterów kompatybilności.
Tak. Wtyczka sync JSON utrzymuje Twoje pliki /messages/{locale}/{namespace}.json jako źródło prawdy i generuje z nich słowniki Intlayer w obu kierunkach. Wtyczka sync PO robi to samo dla katalogów gettext, a pliki per locale pozwalają rozdzielić zawartość według języka zamiast grupować lokalizacje w jednym pliku.
Nie. Uruchom npx intlayer extract, a Intlayer odczyta Twoje pliki źródłowe, wyodrębni ciągi widoczne dla użytkownika i utworzy plik .content obok każdego z nich, dzięki czemu przeglądasz diff zamiast ręcznie kopiować ciągi do katalogu pojedynczo.
W przypadku w pełni zautomatyzowanego procesu Intlayer Compiler robi to samo w czasie kompilacji kodu źródłowego JSX, TSX, Vue i Svelte, generując słowniki przy każdej zmianie, dzięki czemu nie trzeba ręcznie zarządzać kluczami. Działa w oparciu o analizę statyczną, więc ciągi znaków istniejące tylko w czasie wykonywania pozostają poza zasięgiem, a rozróżnienie tekstu dla użytkownika od logiki aplikacji wymaga kilku adnotacji.
Pięć narzędzi, wszystkie opcjonalne:
- Rozszerzenie VS Code: przejście od klucza
useIntlayerdo pliku treści, który go deklaruje, wyodrębnianie treści z komponentu oraz uruchamianie build, fill, test, push i pull z palety poleceń lub dedykowanej karty Intlayer. - Serwer LSP: taka sama świadomość w dowolnym edytorze obsługującym LSP, z funkcjami przejdź do definicji (go to definition), znajdź wszystkie referencje, podglądem przetłumaczonej wartości po najechaniu kursorem, autouzupełnianiem kluczy i pól oraz ostrzeżeniem, gdy klucz nie jest nigdzie zadeklarowany. Rozpoznaje również wywołania
i18next,react-i18next,next-intliuse-intl, co ułatwia migrację. - Serwer MCP: udostępnia dokumentację i CLI Intlayer dla Cursor, VS Code, Claude Desktop, Claude Code i ChatGPT, dzięki czemu asystent odpowiada na podstawie aktualnej dokumentacji zamiast zgadywać i może samodzielnie wykonywać polecenia, takie jak
intlayer fill. - Umiejętności agenta (Agent skills): wyspecjalizowane umiejętności, takie jak
intlayer-config,intlayer-cliiintlayer-content, oraz po jednej dla każdego frameworka, które uczą agenta konfiguracji routingu i typów węzłów treści. - Wtyczka ESLint: reguła
no-raw-textoznacza zakodowane na stałe ciągi tekstowe, z dodatkowymi regułami dla statycznych kluczy słownika i nieużywanej zawartości.
