withGTConfig
withGTConfig()(原名 initGT())的 API 参考
概述
withGTConfig 是配置 gt-next 库的主要方式。
它会直接对一个 NextConfig 对象进行封装。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
    // 你现有的 next.config.js
}
export default withGTConfig(nextConfig, {
  // 其他配置选项
});旧版
initGT 是配置 gt-next 库的旧方法。它返回一个回调函数,随后会在 NextConfig 对象上被调用。
两个函数的参数相同,唯一的区别是 withGTProps 还需要传入 NextConfig。
使用 withGTConfig 可以:
- 配置支持的语言和默认 locale(即 fallback 语言)。
- 设置 API Keys 和项目 ID 以访问 GT 服务。
- 配置加载行为。
- 配置 timeout(超时)设置。
- 设置自定义端点。
- 自定义翻译行为、缓存与请求合并。
- 通过 SWC 插件配置构建时校验。
必须在你的 next.config.js 文件中使用 withGTConfig 才能启用翻译功能。
参考
默认情况下,withGTConfig 会在与你的 next.config.js 文件相同的目录中查找 gt.config.json 文件。
该 JSON 文件会被加载,并与传递给 withGTConfig 的配置合并。
参见 gt.config.json 参考文档,了解该配置文件的更多信息。
CLI 工具只会从 gt.config.json 文件中读取配置,因此
我们建议将 gt.config.json 文件作为你的应用的权威配置来源。
不在 gt.config.json 文件中的其他配置 options 可直接作为 props 传递给 withGTConfig。
必填 Props
Prop
Type
推荐的 Props
Prop
Type
| Prop | 描述 | 
|---|---|
| defaultLocale | 应用的默认 locale。未指定时,英语将作为备用语言。 | 
| locales | 应用支持的 locale 的排他性列表。若收到不受支持的请求,将重定向到列表中浏览器的下一个偏好语言;若无任何匹配,则回退到 defaultLocale。 | 
| description | 站点的自然语言描述,用于辅助翻译。 | 
高级 Props
Prop
Type
| Prop | Description | 
|---|---|
| projectId | 项目 ID,可在此处提供,或通过环境变量提供。 | 
| apiKey | 虽然不推荐,但可以在此处提供 API key;也可以通过环境变量提供。 | 
| devApiKey | 虽然不推荐,但可以在此处提供开发用的 API key;也可以通过环境变量提供。 | 
| preferredModelProvider | 你的首选 AI 模型提供商。目前仅支持 Anthropic 或 OpenAI。留空时,我们将按“逐条翻译”的方式为你选择最合适的提供商。在高峰期或某个提供商被禁用时,无法保证一定使用你的首选提供商。 | 
| runtimeUrl | GT API 的基础 URL。若要禁用自动翻译,将其设为空字符串。 | 
| cacheUrl | 缓存译文的存储 URL。可自定义为指向自建缓存服务器。 | 
| cacheExpiryTime | 本地缓存译文的过期时间(毫秒)。 | 
| renderSettings | 指定运行时翻译加载行为的对象。 | 
| maxConcurrentRequests | 允许向 GT API 发起的并发翻译请求最大数量。 | 
| maxBatchSize | 发送请求前合并批处理的最大翻译条数。 | 
| batchInterval | 批量翻译请求之间的间隔(毫秒),用于控制请求发送速率。 | 
| dictionary | 字典的可选配置文件路径。与 i18n类似,接受字符串以指定自定义路径。位于项目根目录或src文件夹且命名为dictionary.js(或.jsx、.ts、.tsx等)的 dictionaries 默认受支持。 | 
| dynamicJsxCheckLogLevel | 控制对翻译组件中未包裹动态内容的校验。设置为 "error"会使构建失败,设置为"warn"显示警告,或设置为"off"禁用校验。 | 
| dynamicStringCheckLogLevel | 控制对翻译函数参数的校验,以确保使用字符串字面量。设置为 "error"会使构建失败,设置为"warn"显示警告,或设置为"off"禁用校验。 | 
返回值
一个函数 (NextConfig) => NextConfig,用于将指定的 GT 设置应用到 Next.js 配置对象以进行增强。
异常
在缺少 projectId 且使用默认 URL,或需要 API key 但未提供时,将抛出 Error。
渲染设置
渲染设置用于控制翻译加载时的表现。 这仅适用于运行时进行的翻译。 如果翻译已被缓存,响应足够快,无需任何加载处理。
Prop
Type
| Prop | Description | 
|---|---|
| method | 用于渲染页面的方法。可选值为 skeleton、replace、default。 | 
| timeout | 方法判定为超时前的毫秒数。默认值为 8000 毫秒。 | 
渲染方式
- skeleton:渲染一个片段(fragment)。
- replace:等待期间渲染默认语言的内容。
- default:对于语言相同的 locale(如- en-US和- en-GB),行为与- replace相同;对于语言不同的 locale(如- en-US和- fr),行为与- skeleton相同。
超时
超时仅适用于运行时翻译,即由于未缓存而需要按需执行的翻译。
默认超时为 8 秒。 此设计是为了方便 Vercel 用户,其免费方案中无服务器函数的默认超时为 10 秒。
示例
渲染设置
此示例将 gt-next 配置为在等待翻译加载时渲染骨架屏。
如果翻译加载超过 8 秒,该方法将超时并渲染默认语言内容。
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // 您的其他 Next.js 配置
};
export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});构建时校验
此示例将 SWC 插件配置为把动态内容违规视为构建错误而非警告。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // 您的其他 Next.js 配置
};
export default withGTConfig(nextConfig, {
  // 动态 JSX 违规时构建失败
  dynamicJsxCheckLogLevel: 'error',
  // 动态字符串违规时发出警告  
  dynamicStringCheckLogLevel: 'warn',
});注意事项
- withGTConfig会将 GT 翻译功能集成到你的 Next.js 应用中,必须在根配置文件中使用。
- apiKey和- projectId等参数可以直接在配置中设置,或通过环境变量提供。
- renderSettings和- _batchInterval等高级参数可对翻译行为和性能进行精细化控制。
下一步
这份指南怎么样?

