# gt-next: General Translation Next.js SDK: withGTConfig URL: https://generaltranslation.com/zh/docs/next/api/config/with-gt-config.mdx --- title: withGTConfig description: withGTConfig() 的 API 参考,原名为 initGT() --- ## 概述 `withGTConfig` 是配置 `gt-next` 库的主要方法。 它会直接包裹一个 `NextConfig` 对象。 ```js title="next.config.mjs" import { withGTConfig } from 'gt-next/config'; const nextConfig = { // 你现有的 next.config.js } export default withGTConfig(nextConfig, { // 其他配置选项 }); ``` **旧版** `initGT` 是配置 `gt-next` 库的旧方式。它会返回一个回调函数,随后用 `NextConfig` 对象调用该函数。 两个函数的参数相同,唯一的区别是 `withGTProps` 还需要额外传入 `NextConfig`。 使用 `withGTConfig` 来: * 配置支持的语言和默认区域设置 (也称为回退语言) 。 * 设置用于访问 GT 服务的 API 密钥和项目 ID。 * 设置加载行为。 * 配置超时设置。 * 设置自定义端点。 * 自定义翻译行为、缓存和请求批处理。 * 通过 SWC 插件配置构建时校验。 必须在 `next.config.js` 文件中使用 `withGTConfig`,才能启用翻译功能。 ## 参考 默认情况下,`withGTConfig` 会在与你的 `next.config.js` 文件相同的目录中查找 `gt.config.json` 文件。 该 JSON 文件会被加载,并与传递给 `withGTConfig` 的配置合并。 有关此配置文件的更多信息,请参阅 [gt.config.json](/docs/next/api/config/gt-config-json) 参考文档。 CLI 工具只会读取 `gt.config.json` 文件中的配置,因此 我们建议将 `gt.config.json` 作为应用配置的唯一可信来源。 `gt.config.json` 文件中未包含的其他配置选项,可以直接作为属性传递给 `withGTConfig`。 ### 必填属性 ### 推荐的 属性 | Prop | Description | | --------------- | --------------------------------------------------------------------------- | | `defaultLocale` | 应用的默认区域设置。未指定时,将回退为英语。 | | `locales` | 应用支持的区域设置专属列表。如果收到不受支持的请求,会重定向到列表中浏览器下一个首选的语言。若找不到匹配项,则回退到 `defaultLocale`。 | | `description` | 站点的自然语言描述,用于帮助改进翻译。 | ### 高级属性 | 属性 | 说明 | | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `projectId` | 项目 ID,可在此处指定,也可通过环境变量提供。 | | `apiKey` | 虽然不推荐,但也可以在此处提供 API 密钥;也可通过环境变量提供。 | | `devApiKey` | 虽然不推荐,但也可以在此处提供开发环境 API 密钥;也可通过环境变量提供。 | | `preferredModelProvider` | 你首选的 AI 模型提供商。目前仅支持 [Anthropic](https://anthropic.com) 或 [OpenAI](https://openai.com)。将此项留空后,我们会针对每次翻译自动选择最佳提供商。在使用高峰期或某个提供商不可用时,无法保证一定会使用你首选的提供商。 | | `runtimeUrl` | GT API 的基础 URL。要禁用自动翻译,请将其设为空字符串。 | | `cacheUrl` | 缓存翻译的存储 URL。可自定义为指向你自己的缓存服务器。 | | `cacheExpiryTime` | 本地缓存的翻译在过期前保留的时间 (毫秒) 。 | | `renderSettings` | 用于指定运行时翻译加载行为的对象。 | | `maxConcurrentRequests` | 允许发送到 GT API 的最大并发翻译请求数。 | | `maxBatchSize` | 发送请求前,单个批次可包含的最大翻译数。 | | `batchInterval` | 批量翻译请求之间的间隔时间 (毫秒) 。有助于控制请求发送速率。 | | `dictionary` | `dictionary` 的可选配置文件路径。与 `i18n` 类似,它接受字符串来指定自定义路径。默认支持位于根目录或 `src` 文件夹中的 `dictionary.js` (或 `.jsx`、`.ts`、`.tsx` 等) 字典文件。 | ### 返回值 一个 `NextConfig` 对象,应用了指定的 GT 设置。 ### 异常 如果缺少 `projectId` 且使用的是默认 URL,或需要 API 密钥但未提供,则会抛出 `Error`。 *** ## 渲染设置 渲染设置用于控制翻译加载期间的行为。 这仅适用于在运行时进行的翻译。 如果翻译已缓存,响应时间通常很短,无需设置加载行为。 | Prop | Description | | --------- | ------------------------------------------------- | | `method` | 用于渲染页面的方法。可选值包括 `skeleton`、`replace` 和 `default`。 | | `timeout` | 该方法超时前的时间 (以毫秒为单位) 。默认值为 8000 毫秒。 | ### 渲染方法 * `skeleton`: 渲染一个片段。 * `replace`: 等待期间渲染默认语言的内容。 * `default`: 对于语言相同的区域设置 (如 `en-US` 和 `en-GB`) ,其行为与 `replace` 相同。对于语言不同的区域设置 (如 `en-US` 和 `fr`) ,其行为与 `skeleton` 相同。 ### 超时 超时仅适用于运行时翻译,或那些因尚未缓存而需要按需执行的翻译。 默认超时时间为 8 秒。 这样设计是为了照顾 Vercel 用户,因为其免费套餐中的无服务器函数默认超时为 10 秒。 *** ## 示例 ### 渲染设置 此示例将 `gt-next` 配置为在等待翻译加载时显示骨架屏。 如果翻译加载时间超过 8 秒,该方法会超时,并渲染默认语言的内容。 ```json title="gt.config.json" { "defaultLocale": "en-US", "locales": ["en-US", "es", "fr"], } ``` ```js title="next.config.mjs" copy import { withGTConfig } from 'gt-next/config'; const nextConfig = { // 你的其他 Next.js 配置 }; export default withGTConfig(nextConfig, { renderSettings: { method: 'skeleton', timeout: 10000, }, }); ``` *** ## 注意事项 * `withGTConfig` 用于将 GT 的翻译功能集成到你的 Next.js 应用中,并且必须在根配置文件中使用。 * `apiKey` 和 `projectId` 等参数既可以直接在配置中设置,也可以通过环境变量设置。 * `renderSettings` 和 `_batchInterval` 等高级参数可让你精细控制翻译行为和性能。 ## 后续步骤 * 将[翻译集成到你的 CD 流程](/docs/next/tutorials/quickdeploy)中。