Jak skonfigurować routing oparty na domenach w Intlayer zamiast ścieżek /[locale]/?
Krótka odpowiedź
Routing oparty na domenach jest prostszy niż routing oparty na ścieżkach (example.com/[locale]/), ponieważ można pominąć całą konfigurację middleware i routingu. Wystarczy wdrożyć aplikację na każdej domenie językowej i ustawić jedną zmienną środowiskową na domenę.
Krok po kroku
- Wdroż aplikację raz na domenę (
example.com,exemple.fr,ejemplo.es, …). - Dla każdego wdrożenia ustaw
LOCALE(oraz standardowe zmienne środowiskowe Intlayer) na lokalizację, którą dana domena ma obsługiwać. - Odwołaj się do tej zmiennej jako
defaultLocalew swoim plikuintlayer.config.[ts|js].
ts
Kopiuj kod
Skopiuj kod do schowka
To wszystko, działa tak samo dla Next.js, Vite + React, Vite + Vue itd.
Co jeśli każda domena trafia do tego samego wdrożenia?
Jeśli wszystkie domeny wskazują na ten sam pakiet aplikacji, musisz wykryć hosta w czasie wykonywania i ręcznie przekazać lokalizację przez providera.
Dla Next.js
tsx
Kopiuj kod
Skopiuj kod do schowka
Dla Vue
ts
Kopiuj kod
Skopiuj kod do schowka
Zamień getLocaleFromHostname() na własną logikę wyszukiwania.
Zaktualizuj swój przełącznik lokalizacji
Przy routingu opartym na domenach, zmiana języka oznacza przejście na inną domenę:
ts
Kopiuj kod
Skopiuj kod do schowka
Zalety routingu opartego na domenach
- Prostsza konfiguracja: Nie ma potrzeby konfigurowania
intlayerProxy,generateStaticParams,react-routeranivue-router - Lepsze SEO: Każdy język ma własną domenę
- Czystsze adresy URL: Brak prefiksu lokalizacji w ścieżce
- Łatwiejsza konserwacja: Każde wdrożenie języka jest niezależne