# General Translation React SDKs (gt-react, gt-next): useRegionSelector
URL: https://generaltranslation.com/ru/docs/react/reference/hooks/use-region-selector.mdx
---
title: useRegionSelector
description: Создайте собственный переключатель региона с помощью General Translation gt-react. Справочник по API для useRegionSelector.
---
Хук `useRegionSelector` возвращает данные и обработчики, необходимые для создания собственного селектора региона: активный регион, доступные регионы, метаданные региона, а также функции для обновления региона или локали.
*Доступен в `gt-react` и `gt-react-native`. В примерах используется импорт из `gt-react`; вместо этого импортируйте из пакета вашего фреймворка.*
*Примечание: не экспортируется из `gt-next` или `gt-tanstack-start`.*
## Обзор [#overview]
Вызовите `useRegionSelector` и подключите полученные значения к своему интерфейсу.
```tsx
'use client';
import { useRegionSelector } from 'gt-react';
export default function CustomRegionSelector() {
const { region, setRegion, regions, regionData } = useRegionSelector({ // [!code highlight]
customMapping: { US: { name: 'United States', emoji: '🇺🇸' } }, // [!code highlight]
});
return (
);
}
```
*Примечание: `useRegionSelector` только на стороне клиента и должен использоваться внутри [``](/docs/react/reference/components/gt-provider). Если вам не нужен собственный интерфейс, используйте компонент [``](/docs/react/reference/components/region-selector).*
## Как это работает [#how-it-works]
Этот хук возвращает активный регион, упорядоченный список регионов, карту `regionData` с метаданными для отображения, а также сеттеры для региона и локали. Если `regions` не указан, доступные регионы определяются на основе поддерживаемых локалей.
## Параметры [#parameters]
`useRegionSelector` принимает необязательный объект конфигурации.
| Параметр | Описание | Тип | Необязательный | По умолчанию |
| ---------------------------------------------- | -------------------------------------------------------------------------- | ---------- | -------------- | -------------------------- |
| [`regions`](#regions) | Подмножество кодов регионов ISO 3166, которые будут отображаться. | `string[]` | Да | Определяется автоматически |
| [`customMapping`](#custom-mapping) | Пользовательские отображаемые имена, emoji или локали для каждого региона. | `object` | Да | — |
| [`prioritizeCurrentLocaleRegion`](#prioritize) | Перемещает регион текущей локали на первое место. | `boolean` | Да | `true` |
| [`sortRegionsAlphabetically`](#sort) | Сортирует регионы по алфавиту на основе отображаемого имени. | `boolean` | Да | `true` |
### `regions` [#regions]
**Тип** `string[]` · **Необязательно** · **По умолчанию** Определяется автоматически
Коды регионов ISO 3166, которые нужно отображать. Если параметр не указан, регионы определяются на основе поддерживаемых локалей.
### `customMapping` [#custom-mapping]
**Тип** `object` · **Необязательно**
Сопоставление кодов регионов с пользовательскими данными для отображения. Каждое значение может быть строкой (отображаемым именем) или объектом со свойствами `name`, `emoji` и/или `locale`.
### `prioritizeCurrentLocaleRegion` [#prioritize]
**Тип** `boolean` · **Необязательно** · **По умолчанию** `true`
Если `true`, в списке приоритет отдается региону, соответствующему текущей локали.
### `sortRegionsAlphabetically` [#sort]
**Тип** `boolean` · **Необязательно** · **По умолчанию** `true`
Если `true`, регионы сортируются по отображаемому имени в алфавитном порядке.
## Возвращаемое значение [#returns]
**Тип** `object`
| Поле | Описание | Тип |
| -------------- | ------------------------------------------------------------------------------------------- | --------------------------------------- |
| `region` | Код выбранного региона. | `string \| undefined` |
| `setRegion` | Обновляет выбранный регион. | `(region: string \| undefined) => void` |
| `regions` | Доступные коды регионов. | `string[]` |
| `regionData` | Сопоставление кодов регионов с данными для отображения (`code`, `name`, `emoji`, `locale`). | `Map` |
| `locale` | Текущая локаль. | `string` |
| `setLocale` | Обновляет локаль. | `(locale: string) => void` |
| `localeRegion` | Код региона по ISO 3166 для текущей локали. | `string` |
## Примечания [#notes]
* `useRegionSelector` только на стороне клиента.
* Если нужен готовый выпадающий список, используйте [``](/docs/react/reference/components/region-selector).
* Эквивалентный вариант для локали см. в [`useLocaleSelector`](/docs/react/reference/hooks/use-locale-selector).