Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Начальная документация"v9.5.519.09.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Документация хука useLocale
Хук useLocale из astro-intlayer предоставляет доступ к текущей локали запроса, настроенной локали по умолчанию и всем доступным локалям в приложениях Astro.
Он ведет себя согласованно как во frontmatter компонентов .astro, рендеримых на сервере, так и в клиентских блоках <script>.
Использование
Во frontmatter компонентов (Серверный рендеринг)
Копировать код в буфер обмена
В клиентском <script> (Интерактивно)
Копировать код в буфер обмена
Возвращаемые значения
Хук возвращает объект типа UseLocaleResult:
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Свойство | Тип | Описание |
|---|---|---|
locale | DeclaredLocales | Активная локаль. |
defaultLocale | DeclaredLocales | Резервная локаль по умолчанию, настроенная в intlayer.config.ts. |
availableLocales | DeclaredLocales[] | Массив всех поддерживаемых локалей, настроенных для проекта. |
setLocale | (locale: LocalesValues) => void | Функция для обновления локали. (Интерактивна в клиентском <script>, выдает предупреждение при SSR). |
subscribe | (callback: () => void) => () => void | Подписывается на изменения локали на стороне клиента. |
Поведение на сервере и клиенте
- Во время SSR / Серверного рендеринга: Запрос рендерится один раз с фиксированными параметрами. Вызов
setLocale()во время серверного рендеринга не имеет эффекта и выдает предупреждение; переключение локали должно выполняться на клиенте или путем перехода по URL-адресу целевой локали. - В клиентских скриптах:
setLocaleобновляет клиентское хранилище и сохраняет файлы cookie или данные в локальном хранилище в соответствии с конфигурацией Intlayer.
