# General Translation React SDKs (gt-react, gt-next): decodeVars URL: https://generaltranslation.com/ru/docs/react/reference/functions/decode-vars.mdx --- title: decodeVars description: Восстанавливает значения переменных, закодированных с помощью declareVar, в General Translation gt-react. Справочник API для decodeVars. --- Функция `decodeVars` извлекает исходные значения из строк, содержащих маркеры [`declareVar`](/docs/react/reference/functions/declare-var). Поскольку `declareVar` добавляет в исходный текст ICU-совместимые маркеры, они могут мешать логике обработки строк — `decodeVars` их удаляет. *Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`. В примерах используется импорт из `gt-react`; вместо этого импортируйте из пакета вашего фреймворка.* ## Обзор [#overview] Передайте строку, содержащую маркеры `declareVar`, и `decodeVars` вернёт её с исходными значениями на месте маркеров. ```tsx function getGreeting({ name }) { const greeting = 'Hello, ' + declareVar(name); // "Hello, {_gt_, select, other {Brian}}" return decodeVars(greeting); // "Hello, Brian" — как будто declareVar не вызывался } ``` *Примечание: `decodeVars` влияет только на исходные строки, содержащие маркеры `declareVar`. На переведённые строки он не влияет и не является универсальным парсером ICU MessageFormat.* ## Как это работает [#how-it-works] `decodeVars` предназначена для шаблонов ICU MessageFormat, созданных с помощью [`declareVar`](/docs/react/reference/functions/declare-var): она подставляет каждой переменной `_gt_` её исходное значение, в точности сохраняя остальное содержимое. Используйте эту функцию, когда существующей логике обработки строк нужно работать со строкой, содержащей маркеры переменных. ## Параметры [#parameters] | Параметр | Описание | Type | Необязательный | По умолчанию | | -------------------------- | ------------------------------------------------------- | -------- | -------------- | ------------ | | [`icuString`](#icu-string) | Строка, содержащая маркеры ICU из вызовов `declareVar`. | `string` | Нет | — | ### `icuString` [#icu-string] **Тип** `string` · **Обязательно** Строка с маркерами ICU, созданными с помощью [`declareVar`](/docs/react/reference/functions/declare-var). ## Возвращает [#returns] **Тип** `string` Строка без маркеров ICU, содержащая исходные значения переменных. ## Примеры [#examples] ```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`, и не должна использоваться с произвольными строками ICU. * Она не влияет на обработку перевода — только удаляет маркеры для дальнейшей работы со строками.