# General Translation Platform: translate URL: https://generaltranslation.com/zh/docs/platform/core/reference/gt-class-methods/translation/translate.mdx --- title: translate description: 使用 General Translation 将单个 字符串 或结构化内容条目翻译为目标区域设置。translate 的 API 参考。 --- 将单个 字符串 或结构化内容条目从源区域设置翻译为目标区域设置。这是 [GT](/docs/platform/core/reference/gt-class/constructor) 实例上的主要翻译方法。 ## 概览 [#overview] 在已配置的 [`GT`](/docs/platform/core/reference/gt-class/constructor) 实例上调用 `translate`,即可翻译单个条目。传入要翻译的内容,以及目标区域设置字符串 (简写) 或选项对象。该方法会返回一个 promise,最终解析为 [`TranslationResult`](/docs/platform/core/reference/types/translation-result)。 ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.translate('Hello, world!', 'es'); ``` 签名: ```typescript translate( source: TranslateManyEntry, options: string | TranslateOptions, timeout?: number ): Promise ``` *注意:`translate` 要求 GT 实例中提供 `apiKey` (或 `devApiKey`) 和 `projectId`。它底层实际上是用单个条目调用 [`translateMany`](/docs/platform/core/reference/gt-class-methods/translation/translate-many)。* ## 工作原理 [#how-it-works] * **内容检测。** `source` 会根据其形式以及你提供的 `dataFormat` 元数据,被识别为纯文本、ICU 消息、i18next 风格消息或结构化 JSX 内容。 * **区域设置解析。** 目标区域设置会根据 BCP 47 进行验证。实例上的任何 [`customMapping`](/docs/platform/core/reference/types/custom-mapping) 都会生效,并将规范的区域设置代码发送到 API。 * **选项简写。** 为 `options` 传入字符串是 `{ targetLocale: string }` 的简写,因此 `gt.translate('Hello', 'es')` 与 `gt.translate('Hello', { targetLocale: 'es' })` 是等价的。 ## 参数 [#parameters] | 参数 | 描述 | Type | Optional | Default | | --------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------- | -------- | ------- | | [`source`](#source) | 待翻译内容:一个字符串,或一个包含 `source` 和可选 `metadata` 的对象。 | [`TranslateManyEntry`](/docs/platform/core/reference/types/translate-many-entry) | 否 | — | | [`options`](#options) | 目标区域设置字符串,或一个选项对象。 | `string \| TranslateOptions` | 否 | — | | [`timeout`](#timeout) | 请求超时时间 (以毫秒为单位) 。 | `number` | 是 | — | ### `source` [#source] **类型** [`TranslateManyEntry`](/docs/platform/core/reference/types/translate-many-entry) · **必填** 要翻译的内容。可传入普通字符串,或传入一个对象,其中包含 `source` ([`Content`](/docs/platform/core/reference/types/content)) 以及可选的 `metadata` ([`EntryMetadata`](/docs/platform/core/reference/types/entry-metadata),用于提供上下文、`dataFormat` 和其他翻译提示) 。 ### `options` [#options] **类型** `string | TranslateOptions` · **必填** 目标区域设置字符串,例如 `'es'`,或选项对象: ```typescript type TranslateOptions = { targetLocale: string; // 要翻译成的区域设置 sourceLocale?: string; // 覆盖实例的 sourceLocale modelProvider?: string; // 可选的模型提供商提示 }; ``` ### `timeout` [#timeout] **类型** `number` · **可选** 请求超时时间 (毫秒) 。省略时,使用实例的默认值。 ## 返回 [#returns] **类型** `Promise` 会解析为 [`TranslationResult`](/docs/platform/core/reference/types/translation-result)——这是一种可辨别联合类型,包含成功结果 (带有 `translation` 和 `区域设置`) 以及错误结果 (带有 `error` 和 `code`) 。读取翻译结果前,务必先根据 `success` 进行类型收窄。 ## 示例 [#examples] ```typescript // 简单字符串翻译(区域设置简写) const result = await gt.translate('Welcome to our application', 'fr'); if (result.success) { console.log(result.translation); // "Bienvenue dans notre application" } else { console.error(`Translation failed: ${result.error}`); } ``` ```typescript // 使用选项对象并显式指定源区域设置 const result = await gt.translate('Welcome to our application', { targetLocale: 'fr', sourceLocale: 'en', }); ``` ```typescript // 带有源元数据(ICU 复数 + 上下文) const result = await gt.translate( { source: '{count, plural, other {{count} items}}', metadata: { dataFormat: 'ICU', context: 'Item count display' }, }, { targetLocale: 'es' } ); ```