# General Translation React SDKs (gt-react, gt-next, gt-react-native): useLocaleSelector
URL: https://generaltranslation.com/ru/docs/react/reference/hooks/use-locale-selector.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Создайте собственный переключатель локали. Справочник API по useLocaleSelector.

Хук `useLocaleSelector` предоставляет части для собственного переключателя языка: активную локаль, доступные локали, вспомогательный объект со свойствами локали и setter для изменения локали.

*Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`.*

## Обзор [#overview]

Вызовите `useLocaleSelector` и используйте возвращаемые значения в собственном элементе `<select>` или другом пользовательском интерфейсе.

*В примерах импортируется `gt-react`; вместо этого импортируйте из пакета вашего фреймворка.*

```tsx
'use client';
import { useLocaleSelector } from 'gt-react';

export default function MySelector() {
  const { locale, locales, setLocale, getLocaleProperties } = useLocaleSelector();

  return (
    <select value={locale} onChange={(e) => setLocale(e.target.value)}>
      {locales.map((l) => (
        <option key={l} value={l}>
          {getLocaleProperties(l).nativeNameWithRegionCode}
        </option>
      ))}
    </select>
  );
}
```

*Примечание: `useLocaleSelector` доступен только на стороне клиента. Если вам не нужен собственный интерфейс, используйте компонент [`<LocaleSelector>`](/docs/react/reference/components/locale-selector).*

## Как это работает [#how-it-works]

Этот хук предоставляет всё, что нужно селектору: активную `locale`, список `locales`, `setLocale` для её изменения и `getLocaleProperties` для отображения названий. Передайте подмножество локалей, чтобы ограничить доступные варианты. Поведение при смене локали зависит от фреймворка; см. [Управление локалями](/docs/react/guides/managing-locales#persistence).

## Параметры [#parameters]

| Параметр              | Описание                           | Тип        | Необязательный | По умолчанию              |
| --------------------- | ---------------------------------- | ---------- | -------------- | ------------------------- |
| [`locales`](#locales) | Подмножество предлагаемых локалей. | `string[]` | Да             | Все поддерживаемые локали |

### `locales` [#locales]

**Тип** `string[]` · **Необязательно** · **По умолчанию** Все поддерживаемые

Подмножество поддерживаемых локалей, которое будет доступно. Хук сохраняет порядок явно переданного массива. Если параметр не указан, локали из контекста [`<GTProvider>`](/docs/react/reference/components/gt-provider) сортируются по отображаемому имени на родном языке.

## Возвращает [#returns]

**Тип** `object`

| Поле                  | Описание                                                                          | Тип                                    |
| --------------------- | --------------------------------------------------------------------------------- | -------------------------------------- |
| `locale`              | Текущая локаль.                                                                   | `string`                               |
| `locales`             | Доступные локали.                                                                 | `string[]`                             |
| `setLocale`           | Изменить активную локаль.                                                         | `(locale: string) => void`             |
| `getLocaleProperties` | Получить метаданные локали для отображения с помощью настроенного custom mapping. | `(locale: string) => LocaleProperties` |

## Заметки [#notes]

* `useLocaleSelector` работает только на клиенте.
* Чтобы использовать готовый выпадающий список, воспользуйтесь [`<LocaleSelector>`](/docs/react/reference/components/locale-selector).

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
