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 3 kwietnia 2026.
Przejdź do angielskiej wersji dokumentuHistoria wersji
- "Dodano routing lokalizacji oparty na domenach poprzez konfigurację routing.domains."v8.5.02.04.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
Własne domeny
Intlayer obsługuje routing lokalizacji oparty na domenach, co pozwala na obsługę określonych lokalizacji z dedykowanych nazw hostów. Na przykład chińscy goście mogą być kierowani na intlayer.zh zamiast intlayer.org/zh.
Jak to działa
Mapa domains w routing kojarzy każdą lokalizację z nazwą hosta. Intlayer używa tej mapy w dwóch miejscach:
- Generowanie URL (
getLocalizedUrl): gdy docelowa lokalizacja znajduje się na innej domenie niż bieżąca strona, zwracany jest bezwzględny adres URL (np.https://intlayer.zh/about). Gdy obie domeny się zgadzają, zwracany jest względny adres URL (np./fr/about). - Proxy serwera (Next.js & Vite): przychodzące żądania są przekierowywane lub przepisywane w zależności od domeny, na którą trafiają.
Domeny wyłączne vs współdzielone
Kluczowym rozróżnieniem jest wyłączność:
- Domena wyłączna - tylko jedna lokalizacja jest mapowana na tę nazwę hosta (np.
zh → intlayer.zh). Sama domena identyfikuje lokalizację, więc do ścieżki nie jest dodawany prefiks lokalizacji.https://intlayer.zh/aboutobsługuje chińską treść. - Domena współdzielona - wiele lokalizacji jest mapowanych na tę samą nazwę hosta (np. zarówno
en, jak ifrsą mapowane naintlayer.org). Stosowany jest normalny routing oparty na prefiksach.intlayer.org/fr/aboutobsługuje francuską treść.
Konfiguracja
Lokalizacje, które nie są wymienione w domains, nadal używają standardowego routingu z prefiksem bez żadnego nadpisywania domeny.
Generowanie URL
getLocalizedUrl automatycznie tworzy odpowiedni typ adresu URL w zależności od kontekstu wywołania.
Lokalizacja w tej samej domenie (względny URL)
Lokalizacja w innej domenie (bezwzględny URL)
Obsługa z własnej domeny lokalizacji
Automatyczne wykrywanie bieżącej domeny
Parametr currentDomain jest opcjonalny. Gdy zostanie pominięty, getLocalizedUrl rozstrzyga go w następującej kolejności:
- Nazwa hosta z bezwzględnego wejściowego adresu URL (np.
https://intlayer.org/about→intlayer.org). window.location.hostnamew środowiskach przeglądarkowych.- Jeśli żadna z powyższych opcji nie jest dostępna (SSR bez jawnej opcji), zwracany jest względny adres URL dla lokalizacji w tej samej domenie i nie jest generowany bezwzględny adres URL - jest to bezpieczny mechanizm rezerwowy.
getMultilingualUrls z domenami
getMultilingualUrls wywołuje getLocalizedUrl dla każdej lokalizacji, więc tworzy mieszankę względnych i bezwzględnych adresów URL w zależności od domeny wywołującego:
Te bezwzględne adresy URL są gotowe do użycia w tagach <link rel="alternate" hreflang="..."> dla SEO.
Zachowanie Proxy
Next.js
Middleware intlayerProxy automatycznie obsługuje routing domenowy. Dodaj go do swojego middleware.ts:
Przekierowanie (Redirect) - żądanie trafia do niewłaściwej domeny dla danego prefiksu lokalizacji:
Przepisanie (Rewrite) - żądanie trafia do wyłącznej domeny lokalizacji bez prefiksu:
Vite
Plugin Vite intlayerProxy stosuje tę samą logikę podczas programowania:
Uwaga: w lokalnym programowaniu zazwyczaj znajdujesz się nalocalhost, więc przekierowania międzydomenowe będą wskazywać na domeny produkcyjne, a nie na inny lokalny port. Użyj nadpisania w pliku hosts (np.127.0.0.1 intlayer.zh) lub odwrotnego proxy, jeśli musisz przetestować routing wielodomenowy lokalnie.
Przełącznik lokalizacji (Locale Switcher)
Hook useLocale z next-intlayer automatycznie obsługuje nawigację uwzględniającą domeny. Gdy użytkownik przełącza się na lokalizację w innej domenie, hook wykonuje nawigację po pełnej stronie (window.location.href) zamiast przejścia routera po stronie klienta, ponieważ router Next.js nie może przekraczać granic originu.
Nie jest wymagana żadna dodatkowa konfiguracja - useLocale wewnętrznie wykrywa window.location.hostname i decyduje między router.replace (ta sama domena) a window.location.href (inna domena).
SEO: Linki alternatywne hreflang
Routing oparty na domenach jest powszechnie stosowany wraz z hreflang, aby poinformować wyszukiwarki, który adres URL ma zostać zaindeksowany dla każdego języka. Użyj getMultilingualUrls, aby wygenerować pełny zestaw alternatywnych adresów URL:
To generuje:
Podstawowe narzędzia
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Narzędzie | Opis |
|---|---|
getLocalizedUrl(url, locale, { currentDomain }) | Zwraca względny lub bezwzględny adres URL w zależności od tego, czy docelowa lokalizacja znajduje się w bieżącej domenie. |
getMultilingualUrls(url, { currentDomain }) | Zwraca mapę zlokalizowanych adresów URL z kluczem lokalizacji, mieszając odpowiednio względne i bezwzględne. |
getPrefix(locale, { domains }) | Zwraca pusty prefiks dla lokalizacji z domeną wyłączną, w przeciwnym razie normalny prefiks. |