# General Translation React SDKs (gt-react, gt-next, gt-react-native): decodeVars
URL: https://generaltranslation.com/ru/docs/react/reference/functions/decode-vars.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Восстанавливает значения переменных, закодированных с помощью declareVar. Справочник API для decodeVars.

Функция `decodeVars` извлекает исходные значения из строк, содержащих маркеры [`declareVar`](/docs/react/reference/functions/declare-var). Поскольку [`declareVar`](/docs/react/reference/functions/declare-var) добавляет в исходный текст ICU-совместимые маркеры, они могут мешать логике обработки строк — `decodeVars` их удаляет.

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

## Обзор [#overview]

Передайте строку, содержащую маркеры [`declareVar`](/docs/react/reference/functions/declare-var), и `decodeVars` вернёт её с исходными значениями на месте маркеров.

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

  return decodeVars(greeting);
  // "Hello, Brian" — как будто declareVar не вызывался
}
```

*Примечание: `decodeVars` влияет только на исходные строки, содержащие маркеры [`declareVar`](/docs/react/reference/functions/declare-var). На переведённые строки он не влияет и не является универсальным парсером ICU MessageFormat.*

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

`decodeVars` предназначена для шаблонов ICU MessageFormat, созданных с помощью [`declareVar`](/docs/react/reference/functions/declare-var): она подставляет каждой переменной `_gt_` её исходное значение, в точности сохраняя остальное содержимое. Используйте эту функцию, когда существующей логике обработки строк нужно работать со строкой, содержащей маркеры переменных.

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

| Параметр                   | Описание                                                                                               | Type     | Необязательный | По умолчанию |
| -------------------------- | ------------------------------------------------------------------------------------------------------ | -------- | -------------- | ------------ |
| [`icuString`](#icu-string) | Строка, содержащая маркеры ICU из вызовов [`declareVar`](/docs/react/reference/functions/declare-var). | `string` | Нет            | —            |

### `icuString` [#icu-string]

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

Строка с маркерами ICU, созданными с помощью [`declareVar`](/docs/react/reference/functions/declare-var).

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

**Тип** `string`

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

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

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

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

const encodedVar = declareVar(name);
// "{_gt_, select, other {Alice}}"
const decodedVar = decodeVars(encodedVar);
// "Alice"
```

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

const name1 = 'Alice';
const name2 = 'Bob';
const encodedVar =
  'Hello, ' + declareVar(name1) + '! My name is ' + declareVar(name2);
// "Hello, {_gt_, select, other {Alice}}! My name is {_gt_, select, other {Bob}}"

const decodedVar = decodeVars(encodedVar);
// "Hello, Alice! My name is Bob"
```

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

* Используйте `decodeVars` только для строк, содержащих маркеры [`declareVar`](/docs/react/reference/functions/declare-var).
* Эта функция предназначена для шаблонов ICU, созданных с помощью [`declareVar`](/docs/react/reference/functions/declare-var), и не должна использоваться с произвольными строками ICU.
* Она не влияет на обработку перевода — только удаляет маркеры для обработки строк.

## Sitemap

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