# react-native: decodeVars URL: https://generaltranslation.com/ru/docs/react-native/api/strings/decode-vars.mdx --- title: decodeVars description: Справка по API для строковой функции decodeVars() --- {/* СГЕНЕРИРОВАНО АВТОМАТИЧЕСКИ: Не редактируйте напрямую. Вместо этого изменяйте шаблон в content/docs-templates/. */} ## Обзор Поскольку `declareVar` добавляет в исходный текст маркеры, совместимые с ICU, это может вызывать проблемы в уже существующей логике обработки строк. Функция `decodeVars` извлекает исходные значения из строк, содержащих маркеры `declareVar`. ```jsx function getGreeting({ name }) { const greeting = "Hello, " + declareVar(name); // "Hello, {_gt_, select, other {Brian}}" const decodedGreeting = decodeVars(greeting); // "Hello, Brian" <- строка, как будто `declareVar` никогда не использовался return decodedGreeting; } ``` Поскольку `declareVar` влияет только на закодированные строки, его следует использовать только с исходными строками; на переведённые строки он не влияет. **Обработка строк:** Используйте `decodeVars`, если нужно обрабатывать строки, содержащие маркеры `declareVar`, с помощью существующей логики обработки строк. ## Справочник ### Параметры | Имя | Тип | Описание | | ----------- | -------- | ------------------------------------------------------- | | `icuString` | `string` | Строка, содержащая ICU-маркеры из вызовов `declareVar`. | ### Возвращает Строку без маркеров ICU, содержащую исходные значения переменных. *** ## Пример ### Базовое использование Извлекайте исходные значения из строк, содержащих маркеры переменных. ```jsx copy import { declareVar, decodeVars } from 'gt-react-native'; const encodedVar = declareVar(name); // "{_gt_, select, other {Alice}}" const decodedVar = decodeVars(encodedVar); // "Alice" ``` ### Несколько переменных `decodeVars` можно использовать для нескольких переменных. ```jsx copy import { declareVar, decodeVars } from 'gt-react-native'; 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" ``` *** ## Примечания * Используйте `decodeVars` только если вам нужно обрабатывать строки, содержащие маркеры `declareVar` * Эта функция предназначена специально для шаблонов ICU MessageFormat, созданных с помощью `declareVar` * Исходные значения переменных сохраняются в точности в том виде, в каком они были до кодирования * Не влияет на обработку перевода — только удаляет маркеры для работы со строками * `decodeVars` не является универсальным парсером ICU MessageFormat и не должен использоваться для произвольных ICU-строк ## Что дальше * См. [`declareVar`](/docs/react-native/api/strings/declare-var), чтобы помечать динамический контент * См. [`derive`](/docs/react-native/api/strings/derive), чтобы создавать статические вызовы функций * См. [`msg`](/docs/react-native/api/strings/msg), чтобы ознакомиться с шаблонами кодирования и декодирования строк