# gt-next: General Translation Next.js SDK: declareVar URL: https://generaltranslation.com/ru/docs/next/api/strings/declare-var.mdx --- title: declareVar description: Справочник по API для строковой функции declareVar() --- {/* АВТОМАТИЧЕСКИ СГЕНЕРИРОВАНО: Не редактируйте напрямую. Измените template в content/docs-templates/. */} ## Обзор Функция `declareVar` — строковый эквивалент компонента `` при работе с `derive`. Она помечает динамическое содержимое в `derive`, которое нужно исключить из вычисления хеша и обрабатывать как переменные во время выполнения. ```jsx function Component() { function getGreeting(name) { return "Hello, " + declareVar(name); } // Результат: "Hello, {_gt_, select, other {Brian}}" gt(`${derive(getGreeting(name))}. How are you?`); // Результат: "Hello, Brian. How are you?" return

{message}

; } ``` `declareVar` оборачивает динамические данные в совместимый с ICU заполнитель, который во время выполнения преобразуется обратно в исходное значение. Если нужно удалить маркеры ICU, можно использовать [`decodeVars`](/docs/next/api/strings/decode-vars). **Маркеры ICU:** `declareVar` добавляет в исходный текст маркеры, совместимые с ICU. При необходимости используйте `decodeVars`, чтобы извлечь исходное значение для обработки строк. ## Справочник ### Параметры | Name | Type | Description | | --------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `value` | ` value \| string \| number \| boolean\| undefined \| null` | Динамическое значение, которое следует пометить как переменную. | | `options?` | `Object` | Параметры функции `declareVar`. | | `options.$name` | `string` | Имя переменной для контекста перевода. (Аналогично свойству `name` компонента ``) | ### Возвращаемое значение Строка, содержащая совместимые с ICU маркеры, которая сохраняет исходное значение и обрабатывается во время выполнения. *** ## Поведение ### Маркировка переменных Когда `declareVar` оборачивает значение, она: 1. Преобразует значение в формат выражения ICU select 2. Помечает его как динамическое содержимое для обработки перевода 3. Исключает его из расчёта хеша перевода 4. Сохраняет исходное значение для интерполяции во время выполнения ### Формат ICU Функция возвращает строки, совместимые с ICU MessageFormat: ```jsx declareVar("John") // → "{_gt_, select, other {John}}" ``` *** ## Пример ### Базовое использование Помечайте динамическое содержимое внутри статических функций. ```jsx copy import { derive, declareVar, gt } from 'gt-next'; function getGreeting(name) { return `Hello, ${declareVar(name)}!`; } function Component() { const name = "Brian"; const message = gt(`${derive(getGreeting(name))} Welcome back.`); return

{message}

; } ``` ### С другими функциями ICU Вы можете использовать `declareVar` вместе с другими функциями ICU, чтобы создавать более сложные строки. ```jsx copy import { declareVar, derive, useGT } from 'gt-next'; function Component({ name1, name2 }) { const gt = useGT(); const message = gt("Hello, {name1}! My name is " + derive(declareVar(name2)), { name1 }); return

{message}

; // Результат: "Hello, Brian! My name is Archie" } ``` *** ## Примечания * Используйте `declareVar` только внутри функций, вызываемых `derive` * Функция добавляет маркеры ICU, которые могут мешать обработке строк * Используйте `decodeVars`, чтобы при необходимости извлечь исходные значения * Переменные исключаются из перевода и сохраняются во время выполнения ## Следующие шаги * См. [`derive`](/docs/next/api/strings/derive), чтобы создавать в строках статические вызовы функций * См. [`decodeVars`](/docs/next/api/strings/decode-vars), чтобы извлекать исходные значения * См. [``](/docs/next/api/components/var) — эквивалент для JSX