# gt-next: General Translation Next.js SDK: Компилятор
URL: https://generaltranslation.com/ru/docs/next/concepts/compiler.mdx
---
title: Компилятор
description: SWC-плагин gt-next на Rust
---
gt-next включает SWC-плагин на Rust, который анализирует код на этапе сборки, чтобы выявлять распространённые ошибки перевода и повышать производительность.
## Возможности
### Обнаружение динамического контента
Обнаруживает динамический контент без обёртки в компонентах локализации:
```jsx
// ❌ Неверно — динамическое содержимое не обёрнуто
Hello {userName}
// ✅ Верно — динамическое содержимое обёрнуто в компонент переменной
Hello {userName}
```
### Проверка вызовов функций
Обнаруживает аргументы, не являющиеся литералами, переданные в функции перевода:
```jsx
const gt = useGT();
// ❌ Недопустимо — шаблонные строки и конкатенация
gt(`Hello ${name}`)
gt("Hello " + name)
// ✅ Допустимо — строковые литералы с подстановкой переменных
gt("Hello, {name}!", { name })
```
### Генерация хешей на этапе компиляции
Заранее вычисляет хеши переводов для повышения производительности во время выполнения:
```jsx
// Входные данные
Hello world
// Выходные данные (при включении)
Hello world
```
## Конфигурация
Настройте плагин SWC в файле `next.config.js`:
```javascript
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
locales: ['en', 'es'],
swcPluginOptions: {
logLevel: 'silent', // Управление выводом предупреждений
compileTimeHash: false, // Включить генерацию хешей
},
});
```
### Параметры
* **`logLevel`**: Управляет уровнем вывода предупреждений
* `'silent'` - Без предупреждений (по умолчанию для production)
* `'error'` - Показывать как ошибки сборки
* `'warn'` - Показывать как предупреждения (по умолчанию для development)
* `'info'` - Показывать информационные сообщения
* `'debug'` - Показывать всю отладочную информацию
* **`compileTimeHash`**: Включает генерацию хешей на этапе компиляции
* `false` - Отключено (по умолчанию)
* `true` - Генерировать хеши на этапе сборки для повышения производительности
## Ограничения
SWC-плагин обрабатывает файлы по отдельности и не может выявлять нарушения в компонентах, экспортируемых повторно:
```jsx
// Файл A: export { T as Translate } from 'gt-next'
// Файл B: import { Translate } from './A'
Hello {name} // Не будет обнаружено
```