# gt-node: General Translation Node.js SDK: 配置 gt-node URL: https://generaltranslation.com/zh/docs/node/guides/configuring.mdx --- title: 配置 gt-node description: "如何初始化 General Translation gt-node:本指南涵盖区域设置、凭据以及翻译交付。" related: links: - /docs/node/guides/translating-strings - /docs/node/guides/detecting-locale - /docs/node/guides/storing-translations --- `gt-node` 完全通过你在启动时调用一次的 [`initializeGT`](/docs/node/reference/functions/initialize-gt) 来配置。本指南将介绍需要传入的内容,以及翻译是如何交付的。 *注意:`gt-node` 与 `gt-next` 不同,不会自动读取 `gt.config.json` 或环境变量。请显式传入每个值。* ## 启动时初始化 [#initialize] 在处理任何请求之前,使用你的区域设置和凭据调用一次 `initializeGT`。 ```ts title="server.js" import { initializeGT } from 'gt-node'; initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'], projectId: process.env.GT_PROJECT_ID, }); ``` 为使这些值与 CLI 保持同步,请导入你的 `gt.config.json`,并在调用中展开其中的字段。 ## 添加凭据 [#credentials] 将项目 ID 和 API 密钥设置为环境变量并传入。开发时使用开发密钥,在生产环境中使用生产密钥。 ```ts title="server.js" initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'], projectId: process.env.GT_PROJECT_ID, devApiKey: process.env.NODE_ENV !== 'production' ? process.env.GT_API_KEY : undefined, apiKey: process.env.NODE_ENV === 'production' ? process.env.GT_API_KEY : undefined, }); ``` 在开发环境中,`projectId` 和开发 API 密钥可启用按需翻译和热重载,这样你在开发过程中新增的字符串就会即时翻译。在 Production 环境中,翻译来自预先生成的文件或 CDN。所有选项请参阅 [配置参考](/docs/node/reference/config)。 ## 选择翻译的交付方式 [#delivery] `gt-node` 会以以下其中一种模式解析翻译: * **General Translation CDN:** 提供 `projectId` (不使用自定义加载器) 即可从 GT 的 CDN 拉取翻译。 * **本地文件:** 提供一个 [`loadTranslations`](/docs/react/reference/functions/load-translations) 回调函数,返回某个区域设置的翻译。参见[在本地存储翻译](/docs/node/guides/storing-translations)。 * **自定义端点:** 设置自定义 `cacheUrl` 以从你自己的主机加载翻译,或将其设为 `null` 以禁用远程加载。 ## 处理缺失的翻译 [#missing] 当某个翻译缺失时,`gt-node` 会返回插入了你的变量的源字符串,而不是抛出异常,因此请求始终能够正常渲染。通过 [`getTranslations`](/docs/node/reference/functions/get-translations) 进行的 dictionary lookup 是个例外:未知的 dictionary id 会抛出异常。请确保 `initializeGT` 中的值与 CLI 生成的内容保持一致,这样生产环境就能预先准备好翻译。 ## Next steps - /docs/node/guides/translating-strings - /docs/node/guides/detecting-locale - /docs/node/guides/storing-translations