# 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} // Не будет обнаружено ```