# gt-next: General Translation Next.js SDK: T URL: https://generaltranslation.com/ru/docs/next/api/components/t.mdx --- title: T description: Справочник API по компоненту T --- ## Обзор Компонент `` — основной способ перевода в `gt-next`. ```jsx Today, I went to {" the store"}

to buy some groceries.

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