# gt-react: General Translation React SDK: Компилятор URL: https://generaltranslation.com/ru/docs/react/concepts/compiler.mdx --- title: Компилятор description: Как CLI `gt` обрабатывает ваши исходные файлы React --- В CLI `gt` есть компилятор, который анализирует ваши исходные файлы React на этапе сборки. Он выявляет распространённые ошибки перевода и при необходимости может автоматически оборачивать JSX в компоненты перевода. ## Возможности ### Обнаружение динамического содержимого Находит динамическое содержимое без обёртки в компонентах перевода: ```jsx // ❌ Неверно — динамическое содержимое не обёрнуто Hello {userName} // ✅ Верно — динамическое содержимое обёрнуто в переменный компонент Hello {userName} ``` ### Проверка вызовов функций Обнаруживает случаи, когда в функции перевода передаются не литеральные аргументы: ```jsx const gt = useGT(); // ❌ Недопустимо — шаблонные литералы и конкатенация gt(`Hello ${name}`) gt("Hello " + name) // ✅ Допустимо — строковые литералы с подстановкой переменных gt("Hello, {name}!", { name }) ``` ## Автоматическая инъекция JSX При включенной автоматической инъекции JSX компилятор сам оборачивает переводимый JSX-текст в компоненты перевода — поэтому вам не нужно вручную добавлять компоненты `` вокруг каждого фрагмента текста. ### Включение автоматической инъекции JSX Добавьте `enableAutoJsxInjection` в файл `gt.config.json`: ```json title="gt.config.json" { "files": { "gt": { "output": "public/_gt/[locale].json", "parsingFlags": { "enableAutoJsxInjection": true } } } } ``` ### До и после Без автоматической инъекции JSX текст нужно оборачивать вручную: ```jsx import { T } from 'gt-react'; function Welcome() { return (

Welcome to our app

); } ``` Когда включена функция автоматической инъекции JSX, вы пишете обычный JSX, а компилятор делает всё остальное: ```jsx function Welcome() { return

Welcome to our app

; } ``` Компилятор обнаруживает переводимый текст и автоматически оборачивает его при запуске `npx gt translate`. ### Что учитывает компилятор * **Компоненты ``, написанные пользователем,** остаются без изменений — компилятор не будет повторно оборачивать ваш код * **Другие компоненты GT**, такие как ``, ``, `` и ``, тоже остаются без изменений * **Строковые атрибуты** (например, `placeholder`, `alt`) не затрагиваются — оборачиваются только дочерние элементы JSX * **Нетекстовое содержимое**, например числа и логические значения, игнорируется