# generaltranslation: General Translation Core SDK: Inicio rápido
URL: https://generaltranslation.com/es/docs/core/quickstart.mdx
---
title: Inicio rápido
description: Guía de inicio rápido para la biblioteca generaltranslation
---
## Descripción general
Esta guía te mostrará los conceptos básicos de uso de la biblioteca generaltranslation.
Veremos la traducción de cadenas y de archivos.
***
## Traduce tu primera cadena
### 1. Obtén tus variables de entorno
Lo primero es crear un `GT_PROJECT_ID` y una `GT_API_KEY`.
Es completamente gratis y te dará acceso a los servicios de traducción.
Ve a la página de [`API Keys`](https://dash.generaltranslation.com/api-keys) y haz clic en `Create API Key`.
Elige un nombre para tu clave de API y haz clic en `Create`.

General Translation ofrece límites gratuitos muy generosos para apoyar proyectos personales, desarrolladores independientes y a la comunidad.
### 2. Inicializa la clase GT
Inicializa la clase [`GT`](/docs/core/class/constructor) y pasa de forma segura tu `GT_PROJECT_ID` y `GT_API_KEY`.
```typescript title="src/index.ts"
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
```
### 3. Traduce tu primera cadena
Llama al método [`translate`](/docs/core/class/methods/translation/translate) para traducir tu cadena.
Pasa la cadena que quieres traducir y la configuración regional de destino.
```typescript title="src/index.ts"
const result = await gt.translate('Hello, world!', 'es'); // Español
if (result.success) {
console.log(result.translation); // "¡Hola, mundo!"
} else {
console.error(`La traducción falló: ${result.error}`);
}
```
Si quieres buscar un código de configuración regional, consulta la página de [configuraciones regionales admitidas](/docs/platform/supported-locales).
***
## Traduce tu primer archivo
Esta guía asume que ya seguiste los pasos 1 y 2 de la guía [Traduce tu
primera cadena](/docs/core/quickstart#translate-your-first-string) y que
tienes un `GT_PROJECT_ID`, `GT_API_KEY` y una instancia de la clase `GT`.
Supongamos que quieres traducir al español un archivo llamado `en.json`.
```json title="en.json"
{
"hello": "Hello",
"world": "World"
}
```
Para traducir un archivo, debes seguir estos cuatro pasos:
1. Carga el archivo
2. Añade el archivo a la cola de traducción
3. Consulta el estado del archivo (opcional)
4. Descarga el archivo traducido.
#### ¿Por qué no hacer una sola llamada? Normalmente, querrás traducir muchos
archivos a la vez. Dividir el proceso en cuatro pasos claros te da mucha
más flexibilidad a la hora de usar la API.
### 1. Carga el archivo
Al cargar archivos, se devuelve una lista de referencias de archivos con el método [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files).
Esto te permite luego poner el archivo en cola para su traducción, consultar su estado y descargarlo traducido.
```typescript title="src/index.ts"
import fs from 'fs';
import path from 'path';
import { FileUpload } from 'generaltranslation';
// (i) Leer el contenido de un archivo
const filePath = path.join(process.cwd(), 'en.json');
const fileContents = fs.readFileSync(filePath, 'utf8');
// (ii) Formatear el contenido del archivo
const fileUpload: FileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
// (iii) Cargar el archivo
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{
sourceLocale: 'en'
}
);
```
Esto devolverá una lista de referencias a archivos:
```ts title="Output"
[
{
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
branchId: '123456789',
fileName: '/Users/demo/en.json',
fileFormat: 'JSON'
}
]
```
### 2. Encola el archivo para traducirlo
El siguiente paso es seleccionar las configuraciones regionales de destino para la traducción mediante el método [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files).
En este caso, traduciremos al español.
```typescript title="src/index.ts"
const fileUploadRef = {
fileId: uploadedFiles[0].fileId,
versionId: uploadedFiles[0].versionId,
branchId: uploadedFiles[0].branchId,
fileName: uploadedFiles[0].fileName,
fileFormat: uploadedFiles[0].fileFormat,
};
const enqueueResult = await gt.enqueueFiles(
[fileUploadRef],
{
sourceLocale: 'en',
targetLocales: ['es'],
});
```
Esto devolverá un resultado con información sobre la tarea:
```ts title="Output"
{
jobId: 'job-123456',
locales: [ 'es' ],
message: 'Creating 1 translation(s).'
}
```
### 3. Comprueba el estado del archivo
Bien, ahora que el archivo se ha cargado, ¿cuándo sabemos que está listo para descargar?
Podemos usar el método [`queryFileData`](/docs/core/class/methods/translation/query-file-data) para comprobar el estado del archivo.
```typescript title="src/index.ts"
const { fileId, versionId, branchId } = uploadedFiles[0];
const status = await gt.queryFileData({
translatedFiles: [{
fileId,
versionId,
branchId,
locale: 'es'
}]
});
```
Si el archivo aún se está traduciendo, `completedAt` será `null`. Cuando termine, contendrá una marca de tiempo.
```ts title="Output"
{
translatedFiles: [
{
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
branchId: '123456789',
locale: 'es',
completedAt: '2024-01-15T12:00:00Z',
...
}
]
}
```
### 4. Descarga el archivo traducido
Por último, puedes descargar el archivo traducido con el método [`downloadFile`](/docs/core/class/methods/translation/download-file).
```typescript title="src/index.ts"
const { fileId, branchId } = uploadedFiles[0];
const content = await gt.downloadFile({
fileId,
branchId,
locale: 'es',
});
```
Esto devolverá el contenido traducido del archivo:
```ts title="Output"
{
"hello": "Hola",
"world": "Mundo"
}
```