# generaltranslation: General Translation Core SDK: translate
URL: https://generaltranslation.com/es/docs/core/class/methods/translation/translate.mdx
---
title: translate
description: Referencia de la API del método translate de GT
---
## Resumen
El método `translate` es la función principal de traducción de la biblioteca GT.
Traduce contenido desde la configuración regional de origen a una configuración regional de destino especificada mediante servicios de traducción con IA.
```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!"
```
El método admite varios tipos de contenido, como texto sin formato, formato de mensajes ICU y mensajes de estilo i18next, con metadatos opcionales para mejorar la precisión de la traducción.
**Autenticación obligatoria:**
El método `translate` requiere que tanto `apiKey` (o `devApiKey`) como `projectId` estén configurados en la instancia de GT.
***
## Referencia
### Parámetros
### TranslateManyEntry
El parámetro `source` acepta una cadena simple o un objeto:
```typescript
type TranslateManyEntry = string | { source: Content; metadata?: EntryMetadata };
```
### TranslateOptions
El parámetro `options` puede ser una cadena con una configuración regional (abreviatura de `targetLocale`) o un objeto:
```typescript
type TranslateOptions = {
targetLocale: string;
sourceLocale?: string;
modelProvider?: string;
};
```
### Descripción de los parámetros
| Parámetro | Descripción |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `source` | el contenido que se va a traducir. Una cadena simple o un objeto con `source` (Content) y `metadata` (EntryMetadata) opcional. |
| `options` | Una cadena de configuración regional de destino (p. ej., `'es'`) o un objeto de opciones con `targetLocale`, `sourceLocale` opcional y `modelProvider`. |
| `timeout` | Tiempo de espera opcional de la solicitud en milisegundos. |
### Devuelve
```typescript
Promise
```
* **TranslationResult**: Contiene el contenido traducido y los metadatos
* **TranslationError**: Contiene información sobre el error si la traducción falla
***
## Comportamiento
### Detección del tipo de contenido
El método detecta automáticamente el tipo de contenido según el parámetro `source`:
* **Cadena**: Se interpreta como texto sin formato o como formato de mensaje ICU
* **Elementos JSX**: Se maneja como contenido JSX de estilo React
* **Objetos**: Se procesa como formatos de mensaje estructurados
### Resolución de la configuración regional
* La configuración regional de destino se valida conforme al estándar BCP-47
* Se aplican mapeos personalizados de configuración regional si se configuraron
* Se usan códigos canónicos de configuración regional en las solicitudes a la API
### Abreviatura de las opciones
Puedes pasar una cadena en el parámetro `options` como abreviatura de `{ targetLocale: string }`:
```typescript
// Estos son equivalentes:
await gt.translate('Hello', 'es');
await gt.translate('Hello', { targetLocale: 'es' });
```
***
## Ejemplos
### Traducción sencilla de cadena
```typescript
const result = await gt.translate('Welcome to our application', 'fr');
```
### Con un objeto de opciones
```typescript
const result = await gt.translate('Welcome to our application', {
targetLocale: 'fr',
sourceLocale: 'en',
});
```
### Con metadatos de origen
```typescript
const result = await gt.translate(
{ source: '{count, plural, other {{count} items}}', metadata: { dataFormat: 'ICU', context: 'Item count display' } },
{ targetLocale: 'es' }
);
```
### Con tiempo de espera
```typescript
const result = await gt.translate('Hello, world!', 'es', 5000);
```
***
## Notas
* Traduce una cadena a una configuración regional de destino y devuelve una promesa
* Usa `translateMany` internamente con una sola entrada
## Próximos pasos
* **[Traducir varios elementos con translateMany](/docs/core/class/methods/translation/translate-many)**
* **[Conocer las opciones de EntryMetadata](/docs/core/types/entry-metadata)**
* **[Explorar el tipo TranslationResult](/docs/core/types/translation-result)**