# gt-react: General Translation React SDK: Переменные компоненты URL: https://generaltranslation.com/ru/docs/react/guides/variables.mdx --- title: Переменные компоненты description: Как использовать переменные компоненты для динамического контента в переводах --- {/* СГЕНЕРИРОВАНО АВТОМАТИЧЕСКИ: Не редактируйте напрямую. Вместо этого измените шаблон в content/docs-templates/. */} Компоненты переменных позволяют безопасно включать динамический контент в компоненты [``](/docs/react/api/components/t). Они форматируют и локализуют данные локально, не отправляя их в API перевода, поэтому отлично подходят для конфиденциальной информации, такой как имена пользователей, номера счетов и финансовые данные. ## Доступные компоненты * [``](/docs/react/api/components/var): Необработанное динамическое содержимое без форматирования * [``](/docs/react/api/components/num): Числа с форматированием по локали * [``](/docs/react/api/components/currency): Денежные значения с символами валют и форматированием * [``](/docs/react/api/components/datetime): Дата и время с учетом правил локали ## Краткое руководство переменные компоненты используются внутри [``](/docs/react/api/components/t) для работы с динамическим содержимым: ```jsx import { T, Var, Num, Currency, DateTime } from 'gt-react'; function UserProfile({ user }) { return (

Welcome back, {user.name}!

You have {user.itemCount} items.

Balance: {user.balance}

Last login: {user.lastLogin}

); } ``` ## Как работают переменные компоненты переменные компоненты решают проблему динамического контента следующим образом: 1. **Оборачивают динамические значения**, чтобы их можно было использовать внутри [``](/docs/react/api/components/t) 2. **Форматируют данные локально** с помощью встроенных API интернационализации браузера 3. **Сохраняют конфиденциальность данных** — контент никогда не отправляется в API перевода 4. **Обеспечивают локализацию** в соответствии с текущей локалью пользователя ```jsx // ❌ Это не работает — динамический контент внутри

Hello {username}

// ✅ Это работает — динамический контент обёрнут

Hello {username}

``` ## Руководство по компонентам ### Var — Необработанное динамическое содержимое Используйте [``](/docs/react/api/components/var) для любого динамического содержимого, которое не требует специального форматирования: ```jsx // Информация о пользователе

Hello, {user.name}!

Your account ID is {user.accountId}

// Условный рендеринг Dashboard: {isAdmin ? : } ``` ### Num — Форматирование чисел Используйте [``](/docs/react/api/components/num) для чисел, которые должны форматироваться в соответствии с правилами локали: ```jsx // Базовое форматирование чисел You have {itemCount} items in your cart. // Автономное использование (эквивалент number.toLocaleString()) {totalItems} // Настраиваемые параметры форматирования Distance: {distance} km ``` ### Currency — Денежные суммы Используйте [``](/docs/react/api/components/currency) для денежных сумм: ```jsx // Базовое форматирование валюты (по умолчанию "USD") Your total is {total}. // Другие валюты Price: {price} // Произвольное форматирование {roundedAmount} ``` ### DateTime — дата и время Используйте [``](/docs/react/api/components/datetime) для отображения даты и времени: ```jsx // Базовое форматирование даты Order placed on {orderDate} // Форматирование времени Last updated: {timestamp} // Произвольный формат даты {eventDate} ``` ## Конфиденциальность и безопасность ### Данные остаются локальными переменные компоненты выполняют всё форматирование локально с помощью браузерных [API Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl). **Никакие динамические данные не отправляются в API перевода**, поэтому они идеально подходят для: * Имен пользователей и личных данных * Номеров аккаунтов и идентификаторов * Финансовых данных и балансов * Конфиденциальных временных меток и дат ```jsx // Безопасно — конфиденциальные данные остаются на стороне клиента Account balance: {balance} Last login: {lastLoginTime} ``` ### Важное исключение Будьте осторожны с вложенными компонентами [``](/docs/react/api/components/t) внутри переменных компонентов: ```jsx // ⚠️ Содержимое внутреннего БУДЕТ отправлено на перевод Hello, world! {/* Это переводится */} {privateData} {/* Это остаётся локальным */} ``` ## Автономное использование переменные компоненты можно использовать вне [``](/docs/react/api/components/t) только для форматирования: ```jsx // Работают аналогично соответствующим методам .toLocale*() {count} // count.toLocaleString() {price} // форматирование цены {date} // date.toLocaleDateString() ``` ## Типичные проблемы ### Игнорирование параметров локали Для [``](/docs/react/api/components/currency) обязательно передавайте проп `currency`, чтобы указать валюту. Это гарантирует, что при отображении значения будут использоваться правильный символ валюты и форматирование: ```jsx // ❌ По умолчанию используется USD — может не соответствовать ожиданиям пользователей The item costs {price} // ✅ Явно укажите валюту The item costs {price} ``` У других компонентов также есть необязательные свойства, позволяющие настроить форматирование: ```jsx // Базовое форматирование {count} товаров в наличии // Пользовательское форматирование {percentage} процент выполнения // Форматирование даты Последнее обновление: {lastUpdate} ``` ## Следующие шаги * [Руководство по компонентам с ветвлением](/docs/react/guides/branches) - Добавьте в переводы условную логику * [Руководство по переводу строк](/docs/react/guides/strings) - Переводите обычный текст без JSX * Справочник API: * [Компонент ``](/docs/react/api/components/var) * [Компонент ``](/docs/react/api/components/num) * [Компонент ``](/docs/react/api/components/currency)