# 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} // 不会被检测到 ```