Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Ustawiono domyślną wartość `onLocaleChange` na `replace`"v8.0.026.01.2026
- "Dodano dokumentację hooka `useLocale` z opcją `onLocaleChange`"v6.2.09.10.2025
- "Inicjalizacja historii"v5.5.1029.06.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
Integracja z Next.js: Dokumentacja hooka useLocale dla next-intlayer
Ta sekcja zawiera szczegółową dokumentację hooka useLocale dostosowanego do aplikacji Next.js w bibliotece next-intlayer. Jest on zaprojektowany do efektywnego zarządzania zmianami lokalizacji oraz routingiem.
Importowanie useLocale w Next.js
Aby użyć hooka useLocale w swojej aplikacji Next.js, zaimportuj go w następujący sposób:
Skopiuj kod do schowka
import { useLocale } from "next-intlayer"; // Używany do zarządzania lokalizacjami i routingiem w Next.jsUżycie
Oto jak zaimplementować hook useLocale w komponencie Next.js:
Skopiuj kod do schowka
"use client";
import type { FC } from "react";
import { Locales } from "intlayer";
import { useLocale } from "next-intlayer";
const LocaleSwitcher: FC = () => {
const { locale, defaultLocale, availableLocales, setLocale } = useLocale();
return (
<div>
<h1>Aktualna lokalizacja: {locale}</h1>
<p>Domyślna lokalizacja: {defaultLocale}</p>
<select value={locale} onChange={(e) => setLocale(e.target.value)}>
{availableLocales.map((loc) => (
<option key={loc} value={loc}>
{loc}
</option>
))}
</select>
</div>
);
};Parametry
Hook useLocale akceptuje następujące parametry:
onLocaleChange: Ciąg znaków określający, jak adres URL powinien być aktualizowany po zmianie lokalizacji. Może przyjmować wartości"replace","push"lub"none".Weźmy przykład:
- Jesteś na
/fr/home - Przechodzisz do
/fr/about - Przełączasz się na
/es/about - Klikasz przycisk "wstecz" w przeglądarce
Zachowanie będzie różne w zależności od wartości
onLocaleChange:"replace"(domyślnie): Zastępuje bieżący adres URL nowym, zlokalizowanym adresem URL, i ustawia cookie. -> Przycisk "wstecz" przeniesie do/es/home"push": Dodaje nowy, zlokalizowany adres URL do historii przeglądarki i ustawia cookie. -> Przycisk "wstecz" przeniesie do/fr/about"none": Aktualizuje tylko lokalizację w kontekście klienta i ustawia cookie, bez zmiany adresu URL. -> Przycisk "wstecz" przeniesie do/fr/home(locale) => void: Ustawia cookie i wywołuje niestandardową funkcję, która zostanie wywołana po zmianie lokalizacji.Opcja
undefinedjest domyślnym zachowaniem, ponieważ zalecamy używanie komponentuLinkdo nawigacji do nowej lokalizacji. Przykład:tsxKopiuj kodSkopiuj kod do schowka
<Link href="/es/about" replace> About</Link>
- Jesteś na
Wartości zwracane
Po wywołaniu hooka useLocale zwraca on obiekt zawierający następujące właściwości:
locale: Bieżąca lokalizacja ustawiona w kontekście React.defaultLocale: Główna lokalizacja zdefiniowana w konfiguracji.availableLocales: Lista wszystkich dostępnych lokalizacji zdefiniowanych w konfiguracji.setLocale: Funkcja do zmiany lokalizacji aplikacji i odpowiedniej aktualizacji adresu URL. Obsługuje zasady dotyczące prefiksów, czy dodać lokalizację do ścieżki, czy nie, w zależności od konfiguracji. WykorzystujeuseRouterznext/navigationdo funkcji nawigacyjnych takich jakpushirefresh.pathWithoutLocale: Właściwość obliczana, która zwraca ścieżkę bez lokalizacji. Jest przydatna do porównywania adresów URL. Na przykład, jeśli bieżąca lokalizacja tofr, a adres URL tofr/my_path, ścieżka bez lokalizacji to/my_path. WykorzystujeusePathnameznext/navigationdo pobrania bieżącej ścieżki.
Podsumowanie
Hook useLocale z next-intlayer jest kluczowym narzędziem do zarządzania lokalizacjami w aplikacjach Next.js. Oferuje zintegrowane podejście do dostosowywania aplikacji do wielu lokalizacji, obsługując przechowywanie lokalizacji, zarządzanie stanem oraz modyfikacje adresów URL w sposób płynny.