# gt-next: General Translation Next.js SDK: 编译器
URL: https://generaltranslation.com/zh/docs/next/concepts/compiler.mdx
---
title: 编译器
description: gt-next 的 Rust SWC 插件
---
gt-next 包含一个基于 Rust 的 SWC 插件,可在构建时执行分析,以捕获常见的翻译错误并优化性能。
## 功能
### 动态内容检测
检测翻译组件中未包裹的动态内容:
```jsx
// ❌ 无效 - 动态内容未包裹
Hello {userName}
// ✅ 有效 - 动态内容已包裹在变量组件中
Hello {userName}
```
### 函数调用校验
检测传给翻译函数的非字面量参数:
```jsx
const gt = useGT();
// ❌ 无效 - 模板字面量和字符串拼接
gt(`Hello ${name}`)
gt("Hello " + name)
// ✅ 有效 - 带变量替换的字符串字面量
gt("Hello, {name}!", { name })
```
### 编译时哈希生成
预先计算翻译哈希,以提升 runtime 性能:
```jsx
// 输入
Hello world
// 输出(启用时)
Hello world
```
## 配置
在 `next.config.js` 中配置 SWC 插件:
```javascript
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
locales: ['en', 'es'],
swcPluginOptions: {
logLevel: 'silent', // 控制警告输出
compileTimeHash: false, // 启用哈希生成
},
});
```
### 选项
* **`logLevel`**:控制警告输出级别
* `'silent'` - 不显示警告 (生产环境默认)
* `'error'` - 作为构建错误显示
* `'warn'` - 作为警告显示 (开发环境默认)
* `'info'` - 显示信息级别的消息
* `'debug'` - 显示所有调试信息
* **`compileTimeHash`**:启用编译时哈希生成
* `false` - 禁用 (默认)
* `true` - 在构建时生成哈希,以提升性能
## 局限性
SWC 插件按文件逐个处理,因此无法检测经重新导出的组件中的违规用法:
```jsx
// 文件 A: export { T as Translate } from 'gt-next'
// 文件 B: import { Translate } from './A'
Hello {name} // 不会被检测到
```