# General Translation React SDKs (gt-react, gt-next, gt-react-native): declareVar
URL: https://generaltranslation.com/ru/docs/react/reference/functions/declare-var.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Помечает непереводимую переменную в производном контенте. Справочник API для declareVar.

Функция `declareVar` помечает динамический контент в контенте [`derive`](/docs/react/reference/functions/derive), которое должно быть исключено из перевода и обрабатываться как переменная во время выполнения. Это строковый эквивалент компонента [`<Var>`](/docs/react/reference/components/var).

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

## Обзор [#overview]

Оберните динамическое значение в функцию, которую анализирует [`derive`](/docs/react/reference/functions/derive). `declareVar` оборачивает его в совместимый с ICU заполнитель, который во время выполнения подставляет исходное значение.

```tsx
function getGreeting(name) {
  return 'Hello, ' + declareVar(name);
  // "Hello, {_gt_, select, other {Brian}}"
}

gt(`${derive(getGreeting(name))}. How are you?`);
// "Hello, Brian. How are you?"
```

*Примечание: используйте `declareVar` только внутри функций, вызываемых из [`derive`](/docs/react/reference/functions/derive). Чтобы удалить маркеры ICU при обработке строк, используйте [`decodeVars`](/docs/react/reference/functions/decode-vars).*

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

Когда значение оборачивается с помощью `declareVar`, происходит следующее:

1. Значение преобразуется в формат ICU-выражения `select`.
2. Оно помечается как динамический контент для обработки при переводе.
3. Оно исключается из вычисления хеша перевода.
4. Исходное значение сохраняется для интерполяции во время выполнения.

На выходе получается строка, совместимая с ICU MessageFormat:

```tsx
declareVar('John'); // → "{_gt_, select, other {John}}"
```

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

| Параметр                | Описание                                                      | Тип                                                | Необязателен | По умолчанию |
| ----------------------- | ------------------------------------------------------------- | -------------------------------------------------- | ------------ | ------------ |
| [`variable`](#variable) | Динамическое значение, которое нужно пометить как переменную. | `string \| number \| boolean \| null \| undefined` | Нет          | —            |
| [`options`](#options)   | Параметры, такие как `$name`.                                 | `object`                                           | Да           | —            |

### `variable` [#variable]

**Тип** `string | number | boolean | null | undefined` · **Обязательно**

Динамическое значение, которое следует пометить как переменную.

### `options` [#options]

**Тип** `object` · **Необязательно**

Параметры переменной. `options.$name` (`string`) задаёт имя переменной для контекста перевода, аналогично пропу `name` у [`<Var>`](/docs/react/reference/components/var).

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

**Тип** `string`

Строка, содержащая ICU-совместимые маркеры, которые сохраняют исходное значение и позволяют восстановить его во время выполнения.

## Примеры [#examples]

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

```tsx title="BasicUsage.tsx"
import { derive, declareVar, gt } from 'gt-react';

function getGreeting(name) {
  return `Hello, ${declareVar(name)}!`;
}

function Component() {
  const name = 'Brian';
  const message = gt(`${derive(getGreeting(name))} Welcome back.`);
  return <p>{message}</p>;
}
```

```tsx title="WithOtherFunctions.tsx"
import { declareVar, derive, useGT } from 'gt-react';

function Component({ name1, name2 }) {
  const gt = useGT();
  const message = gt('Hello, {name1}! My name is ' + derive(declareVar(name2)), { name1 });
  return <p>{message}</p>;
  // «Привет, Brian! Меня зовут Archie»
}
```

## Примечания [#notes]

* Используйте `declareVar` только внутри функций, вызываемых из [`derive`](/docs/react/reference/functions/derive).
* Она добавляет ICU-маркеры, которые могут мешать обработке строк; при необходимости используйте [`decodeVars`](/docs/react/reference/functions/decode-vars), чтобы получить исходные значения.
* Переменные исключаются из перевода и сохраняются во время выполнения.
* Для JSX-варианта см. компонент [`<Var>`](/docs/react/reference/components/var).

## Sitemap

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