withGTConfig()
withGTConfig() 的 API 参考,前身为 initGT()
概述
withGTConfig()
是配置 gt-next
库的主要方式。
它直接包装一个 NextConfig
对象。
遗留
initGT()
是配置 gt-next
库的遗留方式。它返回一个函数回调,然后在 NextConfig
对象上调用。
两个函数的参数相同,唯一的区别是 withGTProps
需要同时传入 NextConfig
。
使用 withGTConfig()
来启用翻译功能不是必须的,但建议配置库以满足您的需求。
使用 withGTConfig()
来:
- 配置支持的语言和默认语言环境(即回退语言)。
- 设置访问 GT 服务的 API 密钥和项目 ID。
- 设置加载行为。
- 配置超时设置。
- 设置自定义端点。
- 自定义翻译行为、缓存和请求批处理。
必须在 next.config.js
文件中使用 withGTConfig()
来启用翻译功能。
参考
必需的属性
Prop | Type | Default |
---|---|---|
nextConfig? | NextConfig | - |
推荐的属性
Prop | Type | Default |
---|---|---|
defaultLocale?? | string | locales[0] || 'en' |
locales?? | string[] | undefined |
description?? | string | undefined |
属性 | 描述 |
---|---|
defaultLocale | 应用程序的默认语言环境。当未指定时,英语将作为后备语言。 |
locales | 应用程序支持的语言环境的独占列表。如果收到不支持的请求,将重定向到列表中浏览器的下一个首选语言。如果找不到匹配项,将回退到 defaultLocale 。 |
description | 网站的自然语言描述,用于帮助翻译。 |
高级属性
Prop | Type | Default |
---|---|---|
projectId?? | string | - |
apiKey?? | string | - |
devApiKey?? | string | - |
preferredModelProvider?? | "anthropic" | "openai" | - |
runtimeUrl?? | string | - |
cacheUrl?? | string | - |
cacheExpiryTime?? | number | 60000 |
renderSettings?? | RenderSettings | - |
maxConcurrentRequests?? | number | 100 |
batchInterval?? | number | 50 |
maxBatchSize?? | number | 25 |
i18n?? | string | - |
dictionary?? | string | - |
Prop | 描述 |
---|---|
projectId | 项目 ID,可以在此处或作为环境变量包含。 |
apiKey | 虽然不推荐,但可以在此处包含的 API 密钥。也可以作为环境变量包含。 |
devApiKey | 虽然不推荐,但可以在此处包含的开发 API 密钥。也可以作为环境变量包含。 |
preferredModelProvider | 您的首选 AI 模型提供商。目前仅启用 Anthropic 或 OpenAI。将此留空,我们将根据每次翻译确定最佳提供商。在高使用量期间或提供商被禁用时,我们不能保证使用您的首选提供商。 |
runtimeUrl | GT API 的基本 URL。要禁用自动翻译,请将其设置为空字符串。 |
cacheUrl | 存储缓存翻译的 URL。可以自定义指向自定义缓存服务器。 |
cacheExpiryTime | 本地缓存翻译过期前的时间(以毫秒为单位)。 |
renderSettings | 指定运行时翻译加载行为的对象。 |
maxConcurrentRequests | 允许向 GT API 发出的最大并发翻译请求数。 |
maxBatchSize | 在发送请求之前要批处理在一起的最大翻译数量。 |
batchInterval | 批处理翻译请求之间的间隔(以毫秒为单位)。有助于控制请求发送的速率。 |
i18n | 自定义 getLocale() 函数的可选配置文件路径。如果作为字符串提供,它将被解析为路径。否则,使用默认值(推荐)。 |
dictionary | 字典的可选配置文件路径。与 i18n 类似,它接受一个字符串来指定自定义路径。默认支持放置在根目录或 src 文件夹中的名为 dictionary.js (或 .jsx 、.ts 、.tsx 等)的字典。 |
返回
一个函数 (NextConfig) => NextConfig
,用于增强带有指定 GT 设置的 Next.js 配置对象。
异常
如果缺少 projectId
且使用默认 URL,或者需要 API 密钥但缺失,则抛出 Error
。
渲染设置
渲染设置控制翻译在加载时的行为。 这仅适用于在运行时发生的翻译。 如果翻译已被缓存,响应时间太短,不足以证明加载行为的合理性。
Prop | Type | Default |
---|---|---|
method? | "skeleton" | "replace" | "default" | default |
timout? | number | 8000 |
属性 | 描述 |
---|---|
method | 用于渲染页面的方法。选项有 skeleton 、replace 和 default 。 |
timeout | 方法超时前的时间(以毫秒为单位)。默认是 8000 毫秒。 |
渲染方法
skeleton
: 渲染一个片段。replace
: 在等待时以默认语言渲染内容。default
: 对于相同语言的地区(例如en-US
和en-GB
),行为类似于 replace。对于不同语言的地区(例如en-US
和fr
),行为类似于 skeleton。
超时
超时仅适用于运行时翻译,或需要按需执行的翻译,因为它们尚未被缓存。
默认情况下,超时设置为 8 秒。 这一设计决策是为了方便使用免费计划的 vercel 用户,他们的无服务器函数默认超时为 10 秒。
示例
支持的语言环境
此示例将 gt-next
配置为默认语言环境为英语 (en-US
)。
它仅支持西班牙语 (es
) 和法语 (fr
) 的翻译,并提供上下文感知翻译的描述。
如果没有匹配的语言环境,网站将回退到最合适的语言。
它将寻找匹配的语言(即 en-US
和 en-GB
),以及用户在其浏览器中设置的其他首选语言。
如果所有其他方法都失败,则将回退到默认语言。
如果您想支持所有语言,请将 locales
留空。
此外,可以在仪表板上配置语言环境。
渲染设置
此示例将 gt-next
配置为在等待翻译加载时渲染骨架。
如果翻译超过8秒仍未完成,该方法将超时并渲染默认语言内容。
注意事项
withGTConfig()
将 GT 翻译功能集成到您的 Next.js 应用中,必须在根配置文件中使用。- 像
apiKey
和projectId
这样的参数可以直接在配置中设置,也可以作为环境变量。 - 高级参数如
renderSettings
和_batchInterval
允许对翻译行为和性能进行细粒度控制。
下一步
- 将翻译添加到您的 CD 过程。
- 在我们的参考指南中阅读更多关于i18n 配置的信息。