# generaltranslation: General Translation Core SDK: translate URL: https://generaltranslation.com/zh/docs/core/class/methods/translation/translate.mdx --- title: translate description: GT translate 方法的 API 参考文档 --- ## 概述 `translate` 方法是 GT 库的主要翻译函数。 它使用 AI 翻译服务,将内容从源区域设置翻译为指定的目标区域设置。 ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.translate('Hello, world!', 'es'); console.log(result); // "¡Hola, mundo!" ``` 该方法支持多种内容类型,包括纯文本、ICU 消息格式以及 i18next 风格的消息,并可选附带元数据,以提高翻译准确性。 **需要身份验证:** `translate` 方法要求在 GT 实例中同时配置 `apiKey` (或 `devApiKey`) 和 `projectId`。 *** ## 参考 ### 参数 ### TranslateManyEntry `source` 参数既可以是普通字符串,也可以是对象: ```typescript type TranslateManyEntry = string | { source: Content; metadata?: EntryMetadata }; ``` ### TranslateOptions `options` 参数可以是区域设置字符串 (即 `targetLocale` 的简写) ,也可以是一个对象: ```typescript type TranslateOptions = { targetLocale: string; sourceLocale?: string; modelProvider?: string; }; ``` ### 参数说明 | 参数 | 说明 | | --------- | ------------------------------------------------------------------------------------- | | `source` | 要翻译的内容。可以是普通字符串,也可以是包含 `source` (Content) 和可选 `metadata` (EntryMetadata) 的对象。 | | `options` | 目标区域设置字符串 (例如 `'es'`) ,或包含 `targetLocale`、可选的 `sourceLocale` 和 `modelProvider` 的选项对象。 | | `timeout` | 可选的请求超时时间,单位为毫秒。 | ### 返回值 ```typescript Promise ``` * **TranslationResult**:包含翻译后的内容和元数据 * **TranslationError**:如果翻译失败,包含错误信息 *** ## 行为 ### 内容类型检测 该方法会根据 `source` 参数自动识别内容类型: * **String**:视为纯文本或 ICU 消息格式 * **JSX Elements**:按 React 风格的 JSX 内容处理 * **Objects**:按结构化消息格式处理 ### 区域设置判定 * 会根据 BCP-47 标准验证目标区域设置 * 如果已配置,则会应用自定义区域设置映射 * API 请求会使用标准区域设置代码 ### 选项简写 你可以将字符串作为 `options` 参数传入,作为 `{ targetLocale: string }` 的简写: ```typescript // 以下两种写法等价: await gt.translate('Hello', 'es'); await gt.translate('Hello', { targetLocale: 'es' }); ``` *** ## 示例 ### 简单字符串翻译 ```typescript const result = await gt.translate('Welcome to our application', 'fr'); ``` ### 使用选项对象 ```typescript const result = await gt.translate('Welcome to our application', { targetLocale: 'fr', sourceLocale: 'en', }); ``` ### 包含源元数据 ```typescript const result = await gt.translate( { source: '{count, plural, other {{count} items}}', metadata: { dataFormat: 'ICU', context: 'Item count display' } }, { targetLocale: 'es' } ); ``` ### 带超时设置 ```typescript const result = await gt.translate('Hello, world!', 'es', 5000); ``` *** ## 说明 * 将给定字符串翻译为目标区域设置,并返回一个 Promise * 底层通过单条目调用 `translateMany` ## 后续步骤 * **[使用 translateMany 翻译多个条目](/docs/core/class/methods/translation/translate-many)** * **[了解 EntryMetadata 选项](/docs/core/types/entry-metadata)** * **[查看 TranslationResult 类型](/docs/core/types/translation-result)**