Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Установлено значение `onLocaleChange` по умолчанию на `replace`"v8.0.026.01.2026
- "Инициализация истории"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Интеграция с Next.js: Документация по хуку useLocale для next-intlayer
Этот раздел содержит подробную документацию по хуку useLocale, предназначенному для приложений Next.js в библиотеке next-intlayer. Он разработан для эффективного управления изменениями локали и маршрутизацией.
Импорт 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 и устанавливает куки. -> Кнопка «назад» вернет вас на/es/home"push": Добавляет новый локализованный URL в историю браузера и устанавливает куки. -> Кнопка «назад» вернет вас на/fr/about"none": Только обновляет локаль в контексте клиента и устанавливает куки без изменения URL. -> Кнопка «назад» вернет вас на/fr/home(locale) => void: Устанавливает куки и вызывает пользовательскую функцию при изменении локали.Опция
undefinedявляется поведением по умолчанию, так как мы рекомендуем использовать компонентLinkдля перехода на новую локаль. Пример:tsxКопировать кодКопировать код в буфер обмена
<Link href="/es/about" replace> О нас</Link>
- Вы находитесь на
Возвращаемые значения
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 без сбоев.