Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Встановлено `onLocaleChange` за замовчуванням у `replace`"v8.0.026.01.2026
- "Додано документацію для хуку `useLocale` з опцією `onLocaleChange`"v6.2.009.10.2025
- "Ініціалізація історії"v5.5.1029.06.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Інтеграція з Next.js: документація хуку useLocale для next-intlayer
This section offers detailed documentation on the useLocale hook tailored for Next.js applications within the next-intlayer library. It is designed to handle locale changes and routing efficiently.
Імпорт useLocale у Next.js
Щоб використовувати хук useLocale у вашому Next.js застосунку, імпортуйте його, як показано нижче:
Скопіюйте код у буфер обміну
import { useLocale } from "next-intlayer"; // Використовується для керування локалями та маршрутизацією в Next.jsВикористання
Ось як реалізувати хук useLocale у компоненті Next.js:
Скопіюйте код у буфер обміну
"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>Поточна локаль: {locale}</h1>
<p>Локаль за замовчуванням: {defaultLocale}</p>
<select value={locale} onChange={(e) => setLocale(e.target.value)}>
{availableLocales.map((loc) => (
<option key={loc} value={loc}>
{loc}
</option>
))}
</select>
</div>
);
};Параметри
Хук useLocale приймає такі параметри:
onLocaleChange: Рядок, який визначає, як має оновлюватися URL під час зміни локалі. Може бути"replace","push"або"none".Розглянемо приклад:
- Ви перебуваєте на
/fr/home - Ви переходите на
/fr/about - Ви переключаєтесь на
/es/about - Ви натискаєте кнопку "назад" у браузері
Поведінка відрізнятиметься залежно від значення
onLocaleChange:"replace"(за замовчуванням): Замінює поточний URL на новий локалізований URL і встановлює cookie. -> Кнопка «назад» перейде на/es/home"push": Додає новий локалізований URL в історію браузера та встановлює cookie. -> Кнопка «назад» перейде на/fr/about"none": Оновлює лише локаль у клієнтському контексті та встановлює cookie, не змінюючи URL. -> Кнопка «назад» перейде на/fr/home(locale) => void: Встановлює cookie і викликає кастомну функцію, яка буде запущена при зміні локалі.Опція
undefined, поведінка за замовчуванням: ми рекомендуємо використовувати компонентLinkдля навігації на нову локаль. Приклад:tsxКопіювати кодСкопіюйте код у буфер обміну
<Link href="/es/about" replace> Про нас</Link>
- Ви перебуваєте на
Повернуті значення
Коли ви викликаєте хук useLocale, він повертає об'єкт, що містить наступні властивості:
locale: Поточна локаль, як встановлено в контексті React.defaultLocale: Основна локаль, визначена в конфігурації.availableLocales: Список усіх доступних локалей, визначених у конфігурації.setLocale: Функція для зміни локалі застосунку та відповідного оновлення URL. Вона враховує правила префіксів, чи додавати локаль у шлях залежно від конфігурації. ВикористовуєuseRouterзnext/navigationдля навігаційних функцій, таких якpushіrefresh.pathWithoutLocale: обчислювана властивість, яка повертає шлях без локалі. Корисна для порівняння URL-адрес. Наприклад, якщо поточна локаль,fr, а URL,fr/my_path, то шлях без локалі буде/my_path. ВикористовуєusePathnameзnext/navigationдля отримання поточного шляху.
Висновок
Хук useLocale з next-intlayer, це ключовий інструмент для керування локалями в додатках Next.js. Він пропонує інтегрований підхід для адаптації вашого застосунку до кількох локалей, безшовно обробляючи збереження локалі, управління станом та модифікації URL.