# gt-next: General Translation Next.js SDK: Tx URL: https://generaltranslation.com/ru/docs/next/api/components/tx.mdx --- title: Tx description: Справочник по API для компонента Tx --- ## Обзор Компонент `` переводит содержимое JSX во время выполнения. ```jsx {/* [!code highlight] */} Today, I went to {" the store"}

to buy some groceries.

// [!code highlight] ``` Компонент `` поддерживает перевод как обычного текста, так и сложных JSX-структур. Кроме того, он предоставляет возможности для работы с переменными, множественными формами и переводами с учетом контекста. `` доступен только на сервере. **Перевод во время выполнения:** Переводы `` выполняются во время выполнения. Это означает, что перевод выполняется на лету. *** ## Справочник ### Свойства ### Описания | Свойство | Описание | | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `children` | Содержимое, которое нужно перевести. Это может быть обычный текст или JSX-структуры. | | `context` | Дополнительный контекст для уточнения перевода. Полезно для устранения неоднозначности фраз. | | `locale` | Необязательная локаль для перевода. По умолчанию используется наиболее предпочтительная локаль браузера из тех, которые поддерживает ваше приложение. | | `maxChars` | Необязательное максимальное количество символов в переводе. Библиотека строго соблюдает это ограничение. | *** ## Поведение `` переводит JSX во время выполнения. Это означает, что переводы выполняются на лету, поэтому вы можете переводить контент, который становится известен только во время выполнения. Обратная сторона этого — задержка: ожидание загрузки перевода по запросу значительно замедляет работу. Во время загрузки `` будет возвращать undefined, если только языки не похожи (en-US vs en-GB), хотя это поведение можно настроить с помощью параметров рендеринга. Если произойдет ошибка, `` вернет исходный контент. Мы рекомендуем переводить всё, что можно, на этапе сборки с помощью [``](/docs/next/api/components/t), [`getGT`](/docs/next/api/strings/use-gt) или [`useGT`](/docs/next/api/strings/use-gt), и использовать переводы по запросу, такие как `` и [`tx`](/docs/next/api/strings/tx), только при необходимости. Обязательно следуйте [этому руководству по развертыванию](/docs/next/tutorials/quickdeploy). *** ## Примеры ### Базовое использование Компонент `` переводит свои дочерние элементы во время выполнения. ```jsx title="SimpleTranslation.jsx" copy import { Tx } from 'gt-next/server'; export default function Greeting() { return ( {/* [!code highlight] */} Hello, world! // [!code highlight] ); } ``` ### С переменными Вы можете использовать компонент ``, чтобы помечать дочерние элементы как переменные. Так можно отметить содержимое, которое не должно переводиться. ```jsx title="DynamicGreeting.jsx" copy import { Tx, Var } from 'gt-next/server'; export default function DynamicGreeting(user) { return ( {/* [!code highlight] */} Hello, {user.name} ); } ``` ### С формами множественного числа Компонент `` также поддерживает множественное число с помощью компонента ``. ```jsx title="ItemCount.jsx" copy import { Tx, Plural } from 'gt-next/server'; export default function ItemCount({ count }) { return ( You have an item.} // [!code highlight] other={<>You have items.} // [!code highlight] // [!code highlight] /> ); } ``` ### Ограничения Функция `` переводит только вложенное содержимое. ```jsx title="Example.jsx" copy import { Tx } from 'gt-next/server'; const ValidTranslation = ({ children }) => (
{children}
); const InvalidTranslation = ({ children }) => (
No translation
); export default function Example() { return ( {/* [!code highlight] */}
This is valid!
// будет переведено {/* [!code highlight] */} // будет переведено {/* [!code highlight] */} Hello, world! {/* [!code highlight] */} // не будет переведено
); } ``` **Примечание:** Как правило, переводится любой контент, который *буквально* находится в файле между двумя ``. Если какой-то контент не переводится, вы всегда можете добавить ещё один ``, но вкладывать компоненты `` друг в друга не рекомендуется. *** ## Примечания * Компонент `` предназначен для перевода содержимого приложения во время выполнения. * Используйте компонент `` для перевода обычного текста или JSX-структур, включая переменные и формы множественного числа. ## Следующие шаги * Для перевода на этапе сборки изучите компонент [``](/docs/next/api/components/t). * Более продвинутые возможности см. в [справочнике по ``](/docs/next/guides/t). * Для перевода строк изучите [`tx`](/docs/next/api/strings/tx), [`getGT`](/docs/next/api/strings/get-gt) и [`useGT`](/docs/next/api/strings/use-gt).