# 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
* **Нетекстовое содержимое**, например числа и логические значения, игнорируется